Return ATA register values in the request struct when ATAREQUEST returns.
This commit is contained in:
parent
f89336da41
commit
39c7a710c6
@ -546,10 +546,10 @@ ata_ioctl(struct cdev *dev, u_long cmd, caddr_t addr,
|
||||
bcopy(iocmd->u.request.u.atapi.ccb, request->u.atapi.ccb, 16);
|
||||
}
|
||||
else {
|
||||
request->u.ata.command = iocmd->u.request.u.ata.command;
|
||||
request->u.ata.feature = iocmd->u.request.u.ata.feature;
|
||||
request->u.ata.lba = iocmd->u.request.u.ata.lba;
|
||||
request->u.ata.count = iocmd->u.request.u.ata.count;
|
||||
request->u.ata.command = iocmd->u.request.u.ata.command;
|
||||
request->u.ata.feature = iocmd->u.request.u.ata.feature;
|
||||
request->u.ata.lba = iocmd->u.request.u.ata.lba;
|
||||
request->u.ata.count = iocmd->u.request.u.ata.count;
|
||||
}
|
||||
|
||||
request->timeout = iocmd->u.request.timeout;
|
||||
@ -566,6 +566,10 @@ ata_ioctl(struct cdev *dev, u_long cmd, caddr_t addr,
|
||||
|
||||
ata_queue_request(request);
|
||||
|
||||
iocmd->u.request.u.ata.command = request->u.ata.command;
|
||||
iocmd->u.request.u.ata.feature = request->u.ata.feature;
|
||||
iocmd->u.request.u.ata.lba = request->u.ata.lba;
|
||||
iocmd->u.request.u.ata.count = request->u.ata.count;
|
||||
if (request->result)
|
||||
iocmd->u.request.error = request->result;
|
||||
else {
|
||||
|
@ -303,7 +303,8 @@ ata_end_transaction(struct ata_request *request)
|
||||
request->u.ata.count = ATA_IDX_INB(ch, ATA_COUNT);
|
||||
request->u.ata.lba = ATA_IDX_INB(ch, ATA_SECTOR) |
|
||||
(ATA_IDX_INB(ch, ATA_CYL_LSB) << 8) |
|
||||
(ATA_IDX_INB(ch, ATA_CYL_MSB) << 16);
|
||||
(ATA_IDX_INB(ch, ATA_CYL_MSB) << 16) |
|
||||
((ATA_IDX_INB(ch, ATA_DRIVE) & 0x0f) << 24);
|
||||
}
|
||||
|
||||
/* if we got an error we are done with the HW */
|
||||
|
Loading…
x
Reference in New Issue
Block a user