Lines Matching refs:csb
1076 struct fdcsb *csb; in fdrecalseek() local
1083 csb = &fcp->c_csb; in fdrecalseek()
1084 csb->csb_cmd[1] = (uchar_t)unit; in fdrecalseek()
1086 *csb->csb_cmd = FO_RECAL; in fdrecalseek()
1087 csb->csb_ncmds = 2; in fdrecalseek()
1088 csb->csb_timer = 28; in fdrecalseek()
1090 *csb->csb_cmd = FO_SEEK; in fdrecalseek()
1091 csb->csb_cmd[2] = (uchar_t)arg; in fdrecalseek()
1092 csb->csb_ncmds = 3; in fdrecalseek()
1093 csb->csb_timer = 10; in fdrecalseek()
1095 csb->csb_nrslts = 2; /* 2 for SENSE INTERRUPTS */ in fdrecalseek()
1096 csb->csb_opflags = CSB_OFINRPT; in fdrecalseek()
1097 csb->csb_maxretry = skretry; in fdrecalseek()
1098 csb->csb_dmahandle = NULL; in fdrecalseek()
1099 csb->csb_handle_bound = 0; in fdrecalseek()
1100 csb->csb_dmacookiecnt = 0; in fdrecalseek()
1101 csb->csb_dmacurrcookie = 0; in fdrecalseek()
1102 csb->csb_dmawincnt = 0; in fdrecalseek()
1103 csb->csb_dmacurrwin = 0; in fdrecalseek()
1109 if (!(*csb->csb_rslt & S0_SEKEND) || in fdrecalseek()
1110 (*csb->csb_rslt & S0_ICMASK) || in fdrecalseek()
1111 ((*csb->csb_rslt & S0_ECHK) && arg < 0) || in fdrecalseek()
1112 csb->csb_cmdstat) in fdrecalseek()
1130 struct fdcsb *csb; in fdrw() local
1140 csb = &fcp->c_csb; in fdrw()
1143 csb->csb_opflags = CSB_OFDMARD | CSB_OFINRPT; in fdrw()
1144 *csb->csb_cmd = FO_MT | FO_MFM | FO_SK | FO_RDDAT; in fdrw()
1147 csb->csb_opflags = CSB_OFDMAWT | CSB_OFINRPT; in fdrw()
1148 *csb->csb_cmd = FO_MT | FO_MFM | FO_WRDAT; in fdrw()
1150 csb->csb_cmd[1] = (uchar_t)(unit | ((head & 0x1) << 2)); in fdrw()
1151 csb->csb_cmd[2] = (uchar_t)cyl; in fdrw()
1152 csb->csb_cmd[3] = (uchar_t)head; in fdrw()
1153 csb->csb_cmd[4] = (uchar_t)sector; in fdrw()
1155 &csb->csb_cmd[5]); in fdrw()
1156 csb->csb_cmd[6] = (uchar_t)max(fjp->fj_chars->fdc_secptrack, sector); in fdrw()
1157 csb->csb_cmd[7] = fjp->fj_attr->fda_gapl; in fdrw()
1158 csb->csb_cmd[8] = 0xFF; in fdrw()
1160 csb->csb_ncmds = 9; in fdrw()
1161 csb->csb_nrslts = 7; in fdrw()
1162 csb->csb_timer = 36; in fdrw()
1164 csb->csb_maxretry = 1; in fdrw()
1166 csb->csb_maxretry = rwretry; in fdrw()
1168 csb->csb_dmahandle = NULL; in fdrw()
1169 csb->csb_handle_bound = 0; in fdrw()
1170 csb->csb_dmacookiecnt = 0; in fdrw()
1171 csb->csb_dmacurrcookie = 0; in fdrw()
1172 csb->csb_dmawincnt = 0; in fdrw()
1173 csb->csb_dmacurrwin = 0; in fdrw()
1177 0, &csb->csb_dmahandle) != DDI_SUCCESS) { in fdrw()
1187 rval = ddi_dma_mem_alloc(csb->csb_dmahandle, len, &fdc_accattr, in fdrw()
1199 rval = ddi_dma_addr_bind_handle(csb->csb_dmahandle, NULL, aligned_buf, in fdrw()
1200 len, dmar_flags, DDI_DMA_SLEEP, 0, &csb->csb_dmacookie, in fdrw()
1201 &csb->csb_dmacookiecnt); in fdrw()
1204 csb->csb_dmawincnt = 1; in fdrw()
1205 csb->csb_handle_bound = 1; in fdrw()
1207 csb->csb_handle_bound = 1; in fdrw()
1208 if (ddi_dma_numwin(csb->csb_dmahandle, &csb->csb_dmawincnt) != in fdrw()
1227 if (csb->csb_dmahandle) { in fdrw()
1228 if (csb->csb_handle_bound) { in fdrw()
1229 if (ddi_dma_unbind_handle(csb->csb_dmahandle) != in fdrw()
1233 csb->csb_handle_bound = 0; in fdrw()
1238 ddi_dma_free_handle(&csb->csb_dmahandle); in fdrw()
1239 csb->csb_dmahandle = NULL; in fdrw()
1249 struct fdcsb *csb; in fdtrkformat() local
1262 csb = &fcp->c_csb; in fdtrkformat()
1264 csb->csb_opflags = CSB_OFDMAWT | CSB_OFINRPT; in fdtrkformat()
1266 *csb->csb_cmd = FO_FRMT | FO_MFM; in fdtrkformat()
1267 csb->csb_cmd[1] = (head << 2) | unit; in fdtrkformat()
1269 &csb->csb_cmd[2]); in fdtrkformat()
1270 csb->csb_cmd[3] = numsctr = fjp->fj_chars->fdc_secptrack; in fdtrkformat()
1271 csb->csb_cmd[4] = fjp->fj_attr->fda_gapf; in fdtrkformat()
1272 csb->csb_cmd[5] = (uchar_t)filldata; in fdtrkformat()
1274 csb->csb_npcyl = (uchar_t)(cyl * fjp->fj_chars->fdc_steps); in fdtrkformat()
1276 csb->csb_dmahandle = NULL; in fdtrkformat()
1277 csb->csb_handle_bound = 0; in fdtrkformat()
1278 csb->csb_dmacookiecnt = 0; in fdtrkformat()
1279 csb->csb_dmacurrcookie = 0; in fdtrkformat()
1280 csb->csb_dmawincnt = 0; in fdtrkformat()
1281 csb->csb_dmacurrwin = 0; in fdtrkformat()
1282 csb->csb_ncmds = 6; in fdtrkformat()
1283 csb->csb_nrslts = 7; in fdtrkformat()
1284 csb->csb_timer = 32; in fdtrkformat()
1285 csb->csb_maxretry = rwretry; in fdtrkformat()
1296 0, &csb->csb_dmahandle) != DDI_SUCCESS) { in fdtrkformat()
1306 rval = ddi_dma_mem_alloc(csb->csb_dmahandle, fmdatlen, &fdc_accattr, in fdtrkformat()
1323 *dp++ = csb->csb_cmd[2]; in fdtrkformat()
1327 rval = ddi_dma_addr_bind_handle(csb->csb_dmahandle, NULL, aligned_buf, in fdtrkformat()
1329 DDI_DMA_SLEEP, 0, &csb->csb_dmacookie, &csb->csb_dmacookiecnt); in fdtrkformat()
1332 csb->csb_dmawincnt = 1; in fdtrkformat()
1333 csb->csb_handle_bound = 1; in fdtrkformat()
1335 csb->csb_handle_bound = 1; in fdtrkformat()
1336 if (ddi_dma_numwin(csb->csb_dmahandle, &csb->csb_dmawincnt) != in fdtrkformat()
1352 if (csb->csb_dmahandle) { in fdtrkformat()
1353 if (csb->csb_handle_bound) { in fdtrkformat()
1354 if (ddi_dma_unbind_handle(csb->csb_dmahandle) != in fdtrkformat()
1358 csb->csb_handle_bound = 0; in fdtrkformat()
1363 ddi_dma_free_handle(&csb->csb_dmahandle); in fdtrkformat()
1364 csb->csb_dmahandle = NULL; in fdtrkformat()
1374 struct fdcsb *csb; in fdrawioctl() local
1390 csb = &fcp->c_csb; in fdrawioctl()
1394 csb->csb_cmd[i] = fdrp->fdr_cmd[i]; in fdrawioctl()
1395 csb->csb_ncmds = (uchar_t)fdrp->fdr_cnum; in fdrawioctl()
1397 csb->csb_maxretry = 0; /* let the application deal with errors */ in fdrawioctl()
1398 csb->csb_opflags = CSB_OFRAWIOCTL; in fdrawioctl()
1399 csb->csb_nrslts = 0; in fdrawioctl()
1400 csb->csb_timer = 50; in fdrawioctl()
1408 csb->csb_opflags |= CSB_OFINRPT; in fdrawioctl()
1412 csb->csb_npcyl = *(uchar_t *)(fdrp->fdr_addr) * in fdrawioctl()
1417 csb->csb_opflags |= CSB_OFDMAWT | CSB_OFRESLT | CSB_OFINRPT; in fdrawioctl()
1418 csb->csb_nrslts = 7; in fdrawioctl()
1427 csb->csb_opflags |= CSB_OFDMARD | CSB_OFRESLT | CSB_OFINRPT; in fdrawioctl()
1428 csb->csb_nrslts = 7; in fdrawioctl()
1433 csb->csb_opflags |= CSB_OFRESLT | CSB_OFINRPT; in fdrawioctl()
1434 csb->csb_nrslts = 7; in fdrawioctl()
1439 csb->csb_nrslts = 1; in fdrawioctl()
1445 csb->csb_nrslts = 2; in fdrawioctl()
1457 csb->csb_dmahandle = NULL; in fdrawioctl()
1458 csb->csb_handle_bound = 0; in fdrawioctl()
1459 csb->csb_dmacookiecnt = 0; in fdrawioctl()
1460 csb->csb_dmacurrcookie = 0; in fdrawioctl()
1461 csb->csb_dmawincnt = 0; in fdrawioctl()
1462 csb->csb_dmacurrwin = 0; in fdrawioctl()
1464 if (csb->csb_opflags & (CSB_OFDMARD | CSB_OFDMAWT)) { in fdrawioctl()
1466 DDI_DMA_SLEEP, 0, &csb->csb_dmahandle) != DDI_SUCCESS) { in fdrawioctl()
1476 rval = ddi_dma_mem_alloc(csb->csb_dmahandle, in fdrawioctl()
1490 rval = ddi_dma_addr_bind_handle(csb->csb_dmahandle, NULL, in fdrawioctl()
1492 DDI_DMA_SLEEP, 0, &csb->csb_dmacookie, in fdrawioctl()
1493 &csb->csb_dmacookiecnt); in fdrawioctl()
1496 csb->csb_dmawincnt = 1; in fdrawioctl()
1497 csb->csb_handle_bound = 1; in fdrawioctl()
1499 csb->csb_handle_bound = 1; in fdrawioctl()
1500 if (ddi_dma_numwin(csb->csb_dmahandle, in fdrawioctl()
1501 &csb->csb_dmawincnt) != DDI_SUCCESS) { in fdrawioctl()
1516 (CE_CONT, "cmd: %x %x %x %x %x %x %x %x %x %x\n", csb->csb_cmd[0], in fdrawioctl()
1517 csb->csb_cmd[1], csb->csb_cmd[2], csb->csb_cmd[3], in fdrawioctl()
1518 csb->csb_cmd[4], csb->csb_cmd[5], csb->csb_cmd[6], in fdrawioctl()
1519 csb->csb_cmd[7], csb->csb_cmd[8], csb->csb_cmd[9])); in fdrawioctl()
1522 csb->csb_ncmds, csb->csb_opflags, (void *)fdrp->fdr_addr, in fdrawioctl()
1543 (CE_CONT, "rslt: %x %x %x %x %x %x %x %x %x %x\n", csb->csb_rslt[0], in fdrawioctl()
1544 csb->csb_rslt[1], csb->csb_rslt[2], csb->csb_rslt[3], in fdrawioctl()
1545 csb->csb_rslt[4], csb->csb_rslt[5], csb->csb_rslt[6], in fdrawioctl()
1546 csb->csb_rslt[7], csb->csb_rslt[8], csb->csb_rslt[9])); in fdrawioctl()
1549 for (i = 0; i <= (int)csb->csb_nrslts; i++) in fdrawioctl()
1550 fdrp->fdr_result[i] = csb->csb_rslt[i]; in fdrawioctl()
1554 if (csb->csb_dmahandle) { in fdrawioctl()
1555 if (csb->csb_handle_bound) { in fdrawioctl()
1556 if (ddi_dma_unbind_handle(csb->csb_dmahandle) != in fdrawioctl()
1560 csb->csb_handle_bound = 0; in fdrawioctl()
1565 ddi_dma_free_handle(&csb->csb_dmahandle); in fdrawioctl()
1566 csb->csb_dmahandle = NULL; in fdrawioctl()
1705 fdcreadid(struct fdcntlr *fcp, struct fdcsb *csb) in fdcreadid() argument
1709 readidcmd[1] = csb->csb_cmd[1]; in fdcreadid()
2075 struct fdcsb *csb = &fcp->c_csb; in fdmotort() local
2090 (csb->csb_xstate == FXS_MTRON || csb->csb_xstate == FXS_HDST || in fdmotort()
2091 csb->csb_xstate == FXS_DKCHGX)) in fdmotort()
2117 struct fdcsb *csb = &fcp->c_csb; in fdc_dmae_isr() local
2121 if (csb->csb_dmahandle && !csb->csb_cmdstat) { in fdc_dmae_isr()
2122 if (++csb->csb_dmacurrcookie < csb->csb_dmacookiecnt) { in fdc_dmae_isr()
2123 ddi_dma_nextcookie(csb->csb_dmahandle, in fdc_dmae_isr()
2124 &csb->csb_dmacookie); in fdc_dmae_isr()
2125 return (&csb->csb_dmacookie); in fdc_dmae_isr()
2126 } else if (++csb->csb_dmacurrwin < csb->csb_dmawincnt) { in fdc_dmae_isr()
2127 if (ddi_dma_getwin(csb->csb_dmahandle, in fdc_dmae_isr()
2128 csb->csb_dmacurrwin, &off, &len, in fdc_dmae_isr()
2129 &csb->csb_dmacookie, in fdc_dmae_isr()
2130 &csb->csb_dmacookiecnt) != DDI_SUCCESS) { in fdc_dmae_isr()
2133 csb->csb_dmacurrcookie = 0; in fdc_dmae_isr()
2134 return (&csb->csb_dmacookie); in fdc_dmae_isr()
2158 struct fdcsb *csb; in fdc_exec() local
2166 csb = &fcp->c_csb; in fdc_exec()
2167 unit = csb->csb_drive; in fdc_exec()
2170 if (csb->csb_opflags & CSB_OFINRPT) { in fdc_exec()
2171 if (*csb->csb_cmd == FO_RECAL) in fdc_exec()
2172 csb->csb_npcyl = 0; in fdc_exec()
2173 else if ((*csb->csb_cmd & ~FO_MFM) != FO_FRMT) in fdc_exec()
2174 csb->csb_npcyl = in fdc_exec()
2175 csb->csb_cmd[2] * fjp->fj_chars->fdc_steps; in fdc_exec()
2176 csb->csb_xstate = FXS_START; in fdc_exec()
2178 csb->csb_xstate = FXS_DOIT; in fdc_exec()
2179 csb->csb_retrys = 0; in fdc_exec()
2180 csb->csb_ourtrys = 0; in fdc_exec()
2182 if (csb->csb_dmahandle) { in fdc_exec()
2189 if ((*csb->csb_cmd & ~FO_MFM) == FO_FRMT && in fdc_exec()
2190 (4 * csb->csb_cmd[3]) != csb->csb_dmacookie.dmac_size) { in fdc_exec()
2232 (CE_WARN, "diskette %d changed!!!", csb->csb_drive)); in fdc_exec()
2241 if (*csb->csb_cmd == FO_SDRV) { in fdc_exec()
2261 switch (csb->csb_cmd[0] & 0x1f) { in fdc_exec()
2279 bzero(csb->csb_rslt, 10); in fdc_exec()
2280 csb->csb_cmdstat = 0; in fdc_exec()
2282 if (csb->csb_dmahandle) { in fdc_exec()
2284 dmaereq.der_command = (csb->csb_opflags & CSB_OFDMAWT) ? in fdc_exec()
2292 if (ddi_dmae_prog(fcp->c_dip, &dmaereq, &csb->csb_dmacookie, in fdc_exec()
2303 if (!csb->csb_nrslts) { in fdc_exec()
2332 if (csb->csb_cmdstat && *csb->csb_cmd != FO_SDRV) { in fdc_exec()
2339 if (csb->csb_xstate == FXS_END) in fdc_exec()
2340 csb->csb_xstate = FXS_START; in fdc_exec()
2341 if (fdc_dma_attr.dma_attr_sgllen > 1 && csb->csb_dmahandle) { in fdc_exec()
2346 if (ddi_dma_getwin(csb->csb_dmahandle, in fdc_exec()
2347 csb->csb_dmacurrwin, &off, &len, in fdc_exec()
2348 &csb->csb_dmacookie, in fdc_exec()
2349 &csb->csb_dmacookiecnt) != DDI_SUCCESS) { in fdc_exec()
2354 csb->csb_dmacurrcookie = 0; in fdc_exec()
2372 struct fdcsb *csb = &fcp->c_csb; in fdcheckdisk() local
2387 save_cmd = *csb->csb_cmd; in fdcheckdisk()
2388 save_cd1 = csb->csb_cmd[1]; in fdcheckdisk()
2389 save_npcyl = csb->csb_npcyl; in fdcheckdisk()
2390 save_xstate = csb->csb_xstate; in fdcheckdisk()
2392 *csb->csb_cmd = FO_SEEK; in fdcheckdisk()
2393 csb->csb_cmd[1] = (uchar_t)unit; in fdcheckdisk()
2394 csb->csb_npcyl = (uchar_t)newcyl; in fdcheckdisk()
2402 csb->csb_xstate = FXS_DKCHGX; in fdcheckdisk()
2407 csb->csb_xstate = FXS_SEEK; in fdcheckdisk()
2433 *csb->csb_cmd = save_cmd; in fdcheckdisk()
2434 csb->csb_cmd[1] = save_cd1; in fdcheckdisk()
2435 csb->csb_npcyl = save_npcyl; in fdcheckdisk()
2436 csb->csb_xstate = save_xstate; in fdcheckdisk()
2444 struct fdcsb *csb = &fcp->c_csb; in fdrecover() local
2450 (CE_NOTE, "fdrecover unit %d", csb->csb_drive)); in fdrecover()
2452 unit = csb->csb_drive; in fdrecover()
2456 csb->csb_rslt[1] |= 0x08; in fdrecover()
2458 (CE_WARN, "fd unit %d: %s timed out", csb->csb_drive, in fdrecover()
2459 fdcmds[*csb->csb_cmd & 0x1f].cmdname)); in fdrecover()
2462 if (csb->csb_status & S0_SEKEND) in fdrecover()
2465 switch (csb->csb_oldxs) { in fdrecover()
2470 "fd unit %d: %s error: st0=0x%x pcn=%d", csb->csb_drive, in fdrecover()
2471 fdcmds[*csb->csb_cmd & 0x1f].cmdname, in fdrecover()
2472 *csb->csb_rslt, csb->csb_rslt[1])); in fdrecover()
2473 if (csb->csb_retrys++ < skretry && in fdrecover()
2474 !(csb->csb_opflags & CSB_OFRAWIOCTL)) in fdrecover()
2479 if (!(csb->csb_status & S0_SEKEND)) in fdrecover()
2480 csb->csb_xstate = FXS_HDST; in fdrecover()
2484 if (csb->csb_opflags & (CSB_OFDMARD | CSB_OFDMAWT)) { in fdrecover()
2496 csb->csb_drive, in fdrecover()
2497 fdcmds[*csb->csb_cmd & 0x1f].cmdname, in fdrecover()
2498 csb->csb_dmacookie.dmac_size, residual)); in fdrecover()
2500 if (csb->csb_rslt[1] == S1_OVRUN) in fdrecover()
2505 if (++csb->csb_ourtrys <= OURUN_TRIES) { in fdrecover()
2509 csb->csb_drive, in fdrecover()
2510 fdcmds[*csb->csb_cmd & 0x1f].cmdname)); in fdrecover()
2517 csb->csb_ourtrys = 0; in fdrecover()
2520 !(csb->csb_opflags & CSB_OFRAWIOCTL)) { in fdrecover()
2525 if (csb->csb_rslt[1] & S1_CRCER) in fdrecover()
2527 if (csb->csb_rslt[1] & S1_OVRUN) in fdrecover()
2529 if (csb->csb_rslt[1] & (S1_NODATA | S1_MADMK)) in fdrecover()
2531 if (csb->csb_rslt[1] & 0x08) in fdrecover()
2537 if (csb->csb_retrys++ < csb->csb_maxretry && in fdrecover()
2538 (*csb->csb_cmd & ~FO_MFM) != FO_FRMT) { in fdrecover()
2539 if (csb->csb_opflags & in fdrecover()
2545 csb->csb_drive, in fdrecover()
2546 fdcmds[*csb->csb_cmd & in fdrecover()
2548 *csb->csb_rslt, csb->csb_rslt[1], in fdrecover()
2549 csb->csb_rslt[2])); in fdrecover()
2551 if ((csb->csb_retrys & 1) && in fdrecover()
2552 csb->csb_xstate == FXS_END) in fdrecover()
2553 csb->csb_xstate = FXS_DOIT; in fdrecover()
2554 else if (csb->csb_retrys == 3) in fdrecover()
2555 csb->csb_xstate = FXS_RESTART; in fdrecover()
2558 if (csb->csb_rslt[1] & S1_CRCER) in fdrecover()
2560 else if (csb->csb_rslt[1] & S1_OVRUN) in fdrecover()
2562 else if (csb->csb_rslt[1] & (S1_NODATA | S1_MADMK)) in fdrecover()
2564 else if (csb->csb_rslt[1] & 0x08) in fdrecover()
2569 csb->csb_drive, in fdrecover()
2570 fdcmds[*csb->csb_cmd & 0x1f].cmdname, failure, in fdrecover()
2571 *csb->csb_rslt, csb->csb_rslt[1], csb->csb_rslt[2]); in fdrecover()
2575 csb->csb_drive, in fdrecover()
2576 fdcmds[*csb->csb_cmd & 0x1f].cmdname, in fdrecover()
2577 *csb->csb_rslt, csb->csb_rslt[1], in fdrecover()
2578 csb->csb_rslt[2])); in fdrecover()
2585 csb->csb_drive, fdcmds[*csb->csb_cmd & 0x1f].cmdname, in fdrecover()
2586 *csb->csb_rslt, csb->csb_rslt[1], csb->csb_rslt[2])); in fdrecover()
2598 struct fdcsb *csb; in fdc_intr() local
2608 csb = &fcp->c_csb; in fdc_intr()
2631 csb->csb_drive, csb->csb_xstate, state)); in fdc_intr()
2643 (!(state & 0x0f) || ((1 << csb->csb_drive) & state))) { in fdc_intr()
2662 if (csb->csb_dmahandle && !csb->csb_cmdstat && in fdc_intr()
2667 ((csb->csb_dmacurrcookie < in fdc_intr()
2668 (csb->csb_dmacookiecnt - 1)) || in fdc_intr()
2669 (csb->csb_dmacurrwin) < (csb->csb_dmawincnt - 1))) { in fdc_intr()
2675 if (++csb->csb_dmacurrcookie < in fdc_intr()
2676 csb->csb_dmacookiecnt) { in fdc_intr()
2677 ddi_dma_nextcookie(csb->csb_dmahandle, in fdc_intr()
2678 &csb->csb_dmacookie); in fdc_intr()
2679 } else if (++csb->csb_dmacurrwin < in fdc_intr()
2680 csb->csb_dmawincnt) { in fdc_intr()
2681 if (ddi_dma_getwin(csb->csb_dmahandle, in fdc_intr()
2682 csb->csb_dmacurrwin, &off, &blklen, in fdc_intr()
2683 &csb->csb_dmacookie, in fdc_intr()
2684 &csb->csb_dmacookiecnt) != in fdc_intr()
2690 csb->csb_dmacurrcookie = 0; in fdc_intr()
2694 &csb->csb_dmacookie, fcp->c_dmachan) != in fdc_intr()
2706 csb->csb_cmd[2] = csb->csb_rslt[3]; in fdc_intr()
2707 csb->csb_cmd[3] = csb->csb_rslt[4]; in fdc_intr()
2708 csb->csb_cmd[4] = csb->csb_rslt[5]; in fdc_intr()
2709 csb->csb_cmd[1] = (csb->csb_cmd[1] & ~0x04) | in fdc_intr()
2710 (csb->csb_cmd[3] << 2); in fdc_intr()
2712 csb->csb_xstate = FXS_START; in fdc_intr()
2723 csb->csb_cmdstat = EIO; in fdc_intr()
2749 csb->csb_drive, state)); in fdc_intr()
2770 struct fdcsb *csb; in fdwatch() local
2787 csb = &fcp->c_csb; in fdwatch()
2790 csb->csb_drive, csb->csb_xstate)); in fdwatch()
2797 csb->csb_xstate = FXS_KILL; in fdwatch()
2804 csb->csb_xstate = FXS_END; in fdwatch()
2809 csb->csb_cmdstat = EIO; in fdwatch()
2826 struct fdcsb *csb = &fcp->c_csb; in fdc_statemach() local
2833 unit = csb->csb_drive; in fdc_statemach()
2836 csb->csb_oldxs = csb->csb_xstate; in fdc_statemach()
2837 switch (csb->csb_xstate) { in fdc_statemach()
2841 time = drv_usectohz(100000 * (unsigned int)csb->csb_timer); in fdc_statemach()
2850 csb->csb_xstate = FXS_MTRON; in fdc_statemach()
2861 if (fcp->c_curpcyl[unit] != -1 && *csb->csb_cmd != FO_RECAL) in fdc_statemach()
2867 csb->csb_cmdstat = EIO; in fdc_statemach()
2868 csb->csb_xstate = FXS_RESET; in fdc_statemach()
2872 csb->csb_xstate = FXS_RCAL; in fdc_statemach()
2878 if (csb->csb_opflags & CSB_OFRAWIOCTL && in fdc_statemach()
2879 *csb->csb_cmd == FO_RECAL) { in fdc_statemach()
2881 csb->csb_status = 0; in fdc_statemach()
2890 (void) fdc_result(fcp, csb->csb_rslt, 2); in fdc_statemach()
2895 if ((csb->csb_status = ((*csb->csb_rslt ^ S0_SEKEND) & in fdc_statemach()
2899 csb->csb_drive, *csb->csb_rslt)); in fdc_statemach()
2901 csb->csb_cmdstat = EIO; in fdc_statemach()
2902 csb->csb_xstate = FXS_RESET; in fdc_statemach()
2905 if (unit != (*csb->csb_rslt & 3) || csb->csb_rslt[1]) { in fdc_statemach()
2906 csb->csb_status = S0_SEKEND; in fdc_statemach()
2909 fcp->c_curpcyl[unit] = csb->csb_rslt[1]; in fdc_statemach()
2910 if (*csb->csb_cmd == FO_RECAL) in fdc_statemach()
2913 if (*csb->csb_cmd != FO_SEEK && in fdc_statemach()
2914 csb->csb_npcyl == fcp->c_curpcyl[unit]) in fdc_statemach()
2916 fcp->c_sekdir[unit] = csb->csb_npcyl - fcp->c_curpcyl[unit]; in fdc_statemach()
2920 (void) fdcseek(fcp, csb->csb_cmd[1], csb->csb_npcyl); in fdc_statemach()
2925 csb->csb_xstate = FXS_SEEK; in fdc_statemach()
2930 time = drv_usectohz(100000 * csb->csb_timer); in fdc_statemach()
2939 if ((csb->csb_npcyl == 0 || fcp->c_sekdir[unit] >= 0) && in fdc_statemach()
2940 (int)csb->csb_cmd[2] < (fjp->fj_chars->fdc_ncyl - 1)) in fdc_statemach()
2941 backoff = csb->csb_npcyl + 1; in fdc_statemach()
2943 backoff = csb->csb_npcyl - 1; in fdc_statemach()
2944 (void) fdcseek(fcp, csb->csb_cmd[1], backoff); in fdc_statemach()
2949 csb->csb_xstate = FXS_RESEEK; in fdc_statemach()
2958 (void) fdc_result(fcp, csb->csb_rslt, 2); in fdc_statemach()
2963 if ((csb->csb_status = ((*csb->csb_rslt ^ S0_SEKEND) & in fdc_statemach()
2966 (void) fdcseek(fcp, csb->csb_cmd[1], csb->csb_npcyl); in fdc_statemach()
2971 csb->csb_xstate = FXS_SEEK; in fdc_statemach()
2978 if (csb->csb_opflags & CSB_OFRAWIOCTL) { in fdc_statemach()
2979 fcp->c_curpcyl[unit] = csb->csb_npcyl; in fdc_statemach()
2980 csb->csb_status = 0; in fdc_statemach()
2989 (void) fdc_result(fcp, csb->csb_rslt, 2); in fdc_statemach()
2994 if ((csb->csb_status = ((*csb->csb_rslt ^ S0_SEKEND) & in fdc_statemach()
2997 if (unit != (*csb->csb_rslt & 3) || in fdc_statemach()
2998 csb->csb_rslt[1] != csb->csb_npcyl) { in fdc_statemach()
2999 csb->csb_status = S0_SEKEND; in fdc_statemach()
3002 fcp->c_curpcyl[unit] = csb->csb_rslt[1]; in fdc_statemach()
3011 csb->csb_xstate = FXS_HDST; in fdc_statemach()
3015 if (*csb->csb_cmd == FO_SEEK) in fdc_statemach()
3017 if ((*csb->csb_cmd & ~FO_MFM) == FO_FRMT) in fdc_statemach()
3019 fdcreadid(fcp, csb); in fdc_statemach()
3020 csb->csb_xstate = FXS_RDID; in fdc_statemach()
3024 (void) fdc_result(fcp, csb->csb_rslt, 7); in fdc_statemach()
3029 if ((csb->csb_status = (*csb->csb_rslt & in fdc_statemach()
3032 if (csb->csb_cmd[2] != csb->csb_rslt[3]) { in fdc_statemach()
3034 csb->csb_status = S0_SEKEND; in fdc_statemach()
3041 time = drv_usectohz(100000 * csb->csb_timer); in fdc_statemach()
3046 if (fdc_docmd(fcp, csb->csb_cmd, csb->csb_ncmds) == -1) { in fdc_statemach()
3049 csb->csb_xstate = FXS_RESET; in fdc_statemach()
3050 csb->csb_cmdstat = EIO; in fdc_statemach()
3053 csb->csb_xstate = FXS_DOWT; in fdc_statemach()
3057 (void) fdc_result(fcp, csb->csb_rslt, csb->csb_nrslts); in fdc_statemach()
3062 if (*csb->csb_cmd == FO_SDRV) { in fdc_statemach()
3063 csb->csb_status = in fdc_statemach()
3064 (*csb->csb_rslt ^ (S3_DRRDY | S3_2SIDE)) & in fdc_statemach()
3067 csb->csb_status = *csb->csb_rslt & in fdc_statemach()
3071 if (csb->csb_status) in fdc_statemach()
3072 csb->csb_cmdstat = EIO; in fdc_statemach()
3073 csb->csb_xstate = FXS_END; in fdc_statemach()
3090 csb->csb_xstate = FXS_RESET; in fdc_statemach()
3106 csb->csb_xstate = FXS_END; in fdc_statemach()
3115 csb->csb_drive, csb->csb_oldxs, csb->csb_xstate)); in fdc_statemach()
3116 return (csb->csb_xstate); in fdc_statemach()