Lines Matching defs:ata_bio
149 static int mvsata_bio_ready(struct mvsata_port *, struct ata_bio *, int,
225 .ata_bio = mvsata_bio,
993 struct ata_bio *ata_bio = &xfer->c_bio;
998 drvp->drive, ata_bio->blkno, ata_bio->bcount));
1001 ata_bio->flags |= ATA_POLL;
1002 if (ata_bio->flags & ATA_POLL)
1005 (ata_bio->flags & ATA_SINGLE) == 0)
1008 xfer->c_databuf = ata_bio->databuf;
1009 xfer->c_bcount = ata_bio->bcount;
1021 struct ata_bio *ata_bio = &xfer->c_bio;
1042 if (xfer->c_skip == 0 || (ata_bio->flags & ATA_SINGLE) != 0) {
1043 if (ata_bio->flags & ATA_SINGLE)
1054 blkdiff -= ata_bio->blkno;
1059 ata_bio->blkno =
1064 ata_bio->flags |= ATA_SINGLE;
1074 ata_bio->nblks = nblks;
1075 ata_bio->nbytes = xfer->c_bcount;
1106 ata_bio->error = ERR_DMA;
1107 ata_bio->r_error = 0;
1115 if (ata_bio->flags & ATA_LBA48) {
1119 } else if (ata_bio->flags & ATA_LBA) {
1120 sect = (ata_bio->blkno >> 0) & 0xff;
1121 cyl = (ata_bio->blkno >> 8) & 0xffff;
1122 head = (ata_bio->blkno >> 24) & 0x0f;
1125 int blkno = ata_bio->blkno;
1134 ata_bio->nblks = uimin(nblks, drvp->multi);
1135 ata_bio->nbytes = ata_bio->nblks * drvp->lp->d_secsize;
1136 KASSERT(nblks == 1 || (ata_bio->flags & ATA_SINGLE) == 0);
1137 if (ata_bio->nblks > 1)
1138 cmd = (ata_bio->flags & ATA_READ) ?
1141 cmd = (ata_bio->flags & ATA_READ) ?
1167 if (mvsata_bio_ready(mvport, ata_bio, xfer->c_drive,
1183 if (ata_bio->flags & ATA_LBA48)
1185 ata_bio->blkno, nblks, 0, WDSD_LBA);
1191 } else if (ata_bio->nblks > 1) {
1194 if (ata_bio->nblks > nblks) {
1195 ata_bio->nblks = nblks;
1196 ata_bio->nbytes = xfer->c_bcount;
1200 if ((ata_bio->flags & ATA_READ) == 0) {
1211 ata_bio->error = TIMEOUT;
1215 ata_bio->error = ERROR;
1216 ata_bio->r_error = ATACH_ERR(tfd);
1222 (char *)xfer->c_databuf + xfer->c_skip, ata_bio->nbytes);
1232 if ((ata_bio->flags & ATA_POLL) != 0) {
1244 ata_bio->error = TIMEOUT;
1272 struct ata_bio *ata_bio = &xfer->c_bio;
1281 if (tfd > 0 && ata_bio->error == NOERROR) {
1283 ata_bio->error = ERROR;
1285 ata_bio->error = TIMEOUT;
1286 ata_bio->r_error = ATACH_ERR(tfd);
1309 ata_bio->error = TIMEOUT;
1335 ata_bio->error = TIMEOUT;
1342 if (ata_bio->error == NOERROR)
1344 if (ata_bio->error == ERR_DMA) {
1353 if (ata_bio->error != NOERROR) {
1361 if ((ata_bio->flags & ATA_READ) != 0) {
1366 ata_bio->error = TIMEOUT;
1372 (char *)xfer->c_databuf + xfer->c_skip, ata_bio->nbytes);
1376 ata_bio->blkno += ata_bio->nblks;
1377 ata_bio->blkdone += ata_bio->nblks;
1378 xfer->c_skip += ata_bio->nbytes;
1379 xfer->c_bcount -= ata_bio->nbytes;
1383 if ((ata_bio->flags & ATA_POLL) == 0) {
1394 ata_bio->error = NOERROR;
1406 struct ata_bio *ata_bio = &xfer->c_bio;
1420 ata_bio->flags |= ATA_ITSDONE;
1426 ata_bio->error = ERR_NODEV;
1429 ata_bio->error = ERR_RESET;
1432 ata_bio->error = REQUEUE;
1439 ata_bio->r_error = WDCE_ABRT;
1451 struct ata_bio *ata_bio = &xfer->c_bio;
1453 bool iserror = (ata_bio->error != NOERROR);
1470 ata_bio->bcount = xfer->c_bcount;
1475 ata_bio->flags |= ATA_ITSDONE;
1482 mvsata_bio_ready(struct mvsata_port *mvport, struct ata_bio *ata_bio, int drive,
1540 if (ata_bio->flags & ATA_LBA)
1572 ata_bio->error = TIMEOUT;
1579 ata_bio->error = ERR_DF;
1581 ata_bio->r_error = ATACH_ERR(tfd);
1582 ata_bio->error = ERROR;
1583 aprint_error("error (%x)\n", ata_bio->r_error);
2641 struct ata_bio *ata_bio = &xfer->c_bio;
2652 mvport->port, ata_bio->blkno, ata_bio->nbytes, ata_bio->flags));
2667 rv = mvsata_dma_bufload(mvport, xfer->c_slot, databuf, ata_bio->nbytes,
2668 ata_bio->flags);
2720 struct ata_bio *ata_bio;
2804 ata_bio = &xfer->c_bio;
2805 ata_bio->error = NOERROR;
2807 ata_bio->error = ERR_DMA;
2809 mvsata_dma_bufunload(mvport, quetag, ata_bio->flags);
3550 struct ata_bio *ata_bio = &xfer->c_bio;
3554 rw = (ata_bio->flags & ATA_READ) ? CRQB_CDIR_READ : CRQB_CDIR_WRITE;
3555 cmd = (ata_bio->flags & ATA_READ) ? WDCC_READDMA : WDCC_WRITEDMA;
3556 if (ata_bio->flags & (ATA_LBA|ATA_LBA48)) {
3561 blkno = ata_bio->blkno;
3562 if (ata_bio->flags & ATA_LBA48)
3565 head |= ((ata_bio->blkno >> 24) & 0xf);
3576 if (ata_bio->flags & ATA_LBA48)
3578 CRQB_ATACOMMAND_SECTORCOUNT, ata_bio->nblks >> 8));
3580 CRQB_ATACOMMAND_SECTORCOUNT, ata_bio->nblks));
3590 if (ata_bio->flags & ATA_LBA48)
3592 CRQB_ATACOMMAND_FEATURES, ata_bio->nblks >> 8));
3594 CRQB_ATACOMMAND_FEATURES, ata_bio->nblks));
3598 if (ata_bio->flags & ATA_LBA48) {