[PATCH] libata-dev: wait idle after reading the last data block
authorAlbert Lee <albertcc@tw.ibm.com>
Sat, 25 Mar 2006 10:18:15 +0000 (18:18 +0800)
committerJeff Garzik <jeff@garzik.org>
Wed, 29 Mar 2006 22:22:36 +0000 (17:22 -0500)
Some CD-ROM drives are slow to clear DRQ, after the last data block
is read by PIO. Use ata_wait_idle() after reading the last data block.

Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/scsi/libata-core.c

index 59cb129..5fdc314 100644 (file)
@@ -3710,7 +3710,7 @@ fsm_start:
                            (!(qc->tf.flags & ATA_TFLAG_WRITE))) {
                                /* all data read */
                                ata_altstatus(ap);
-                               status = ata_chk_status(ap);
+                               status = ata_wait_idle(ap);
                                goto fsm_start;
                        }
                }