Lines Matching defs:drvp
146 wdc_ata_bio(struct ata_drive_datas *drvp, struct ata_xfer *xfer)
148 struct ata_channel *chp = drvp->chnl_softc;
157 if ((drvp->drive_flags & (ATA_DRIVE_DMA | ATA_DRIVE_UDMA)) &&
168 xfer->c_drive = drvp->drive;
182 struct ata_drive_datas *drvp = &chp->ch_drive[xfer->c_drive];
194 drvp->state, drvp->drive_flags, xfer->c_flags, chp->ch_flags),
200 if (__predict_false(drvp->state < READY)) {
239 if ((drvp->drive_flags & ATA_DRIVE_MODE) == 0)
241 wdccommand(chp, drvp->drive, SET_FEATURES, 0, 0, 0,
242 0x08 | drvp->PIO_mode, WDSF_SET_MODE);
251 if (drvp->drive_flags & ATA_DRIVE_UDMA) {
252 wdccommand(chp, drvp->drive, SET_FEATURES, 0, 0, 0,
253 0x40 | drvp->UDMA_mode, WDSF_SET_MODE);
256 if (drvp->drive_flags & ATA_DRIVE_DMA) {
257 wdccommand(chp, drvp->drive, SET_FEATURES, 0, 0, 0,
258 0x20 | drvp->DMA_mode, WDSF_SET_MODE);
273 drvp->lp->d_ncylinders,
274 drvp->lp->d_ntracks - 1, 0, drvp->lp->d_nsectors,
275 (drvp->lp->d_type == DKTYPE_ST506) ?
276 drvp->lp->d_precompcyl / 4 : 0);
284 if (drvp->multi == 1)
287 drvp->multi, 0);
295 drvp->state = READY;
325 drvp->state = 0;
340 struct ata_drive_datas *drvp = &chp->ch_drive[xfer->c_drive];
356 if (drvp->n_xfers <= NXFER)
357 drvp->n_xfers++;
373 nblks = xfer->c_bcount / drvp->lp->d_secsize;
375 if ((drvp->lp->d_flags & D_BADSECT) != 0) {
378 for (i = 0; (blkdiff = drvp->badsect[i]) != -1;
386 drvp->lp->d_secperunit -
387 drvp->lp->d_nsectors - i - 1;
409 sect = blkno % drvp->lp->d_nsectors;
411 blkno /= drvp->lp->d_nsectors;
412 head = blkno % drvp->lp->d_ntracks;
413 blkno /= drvp->lp->d_ntracks;
516 ata_bio->nblks = uimin(nblks, drvp->multi);
517 ata_bio->nbytes = ata_bio->nblks * drvp->lp->d_secsize;
545 (drvp->lp->d_type == DKTYPE_ST506) ?
546 drvp->lp->d_precompcyl / 4 : 0);
550 nblks = xfer->c_bcount / drvp->lp->d_secsize;
568 if (wdc_ata_err(drvp, ata_bio, tfd) != WDC_ATA_ERR)
572 if (wdc_ata_err(drvp, ata_bio, tfd) == WDC_ATA_ERR) {
585 wdc->dataout_pio(chp, drvp->drive_flags,
607 if (wdc_ata_err(drvp, ata_bio, tfd) != WDC_ATA_ERR)
633 struct ata_drive_datas *drvp = &chp->ch_drive[xfer->c_drive];
643 if (drvp->state < READY) {
646 drvp->state);
683 drv_err = wdc_ata_err(drvp, ata_bio, tfd);
725 ata_dmaerr(drvp,
757 wdc->datain_pio(chp, drvp->drive_flags,
855 wdc_ata_err(struct ata_drive_datas *drvp, struct ata_bio *ata_bio, int tfd)
883 wdc_ata_addref(struct ata_drive_datas *drvp)
885 struct ata_channel *chp = drvp->chnl_softc;
891 wdc_ata_delref(struct ata_drive_datas *drvp)
893 struct ata_channel *chp = drvp->chnl_softc;