Patch 1/2:
 Move ata_altstatus() out from ata_hsm_move() to the pio data xfer functions
like ata_pio_sectors() and atapi_pio_bytes() where it makes more sense.

Signed-off-by: Albert Lee <[EMAIL PROTECTED]>
---
atapi_send_cdb() already calls ata_altstatus() inside.
This patch makes ata_pio_sectors() and atapi_pio_bytes() do the same.

diff -Nrup 00_libata-dev/drivers/ata/libata-core.c 
01_move_altstatus/drivers/ata/libata-core.c
--- 00_libata-dev/drivers/ata/libata-core.c     2007-07-04 11:26:30.000000000 
+0800
+++ 01_move_altstatus/drivers/ata/libata-core.c 2007-07-04 11:32:36.000000000 
+0800
@@ -4524,6 +4524,8 @@ static void ata_pio_sectors(struct ata_q
                        ata_pio_sector(qc);
        } else
                ata_pio_sector(qc);
+
+       ata_altstatus(ap); /* flush */
 }
 
 /**
@@ -4698,6 +4700,7 @@ static void atapi_pio_bytes(struct ata_q
        VPRINTK("ata%u: xfering %d bytes\n", ap->print_id, bytes);
 
        __atapi_pio_bytes(qc, bytes);
+       ata_altstatus(ap); /* flush */
 
        return;
 
@@ -4869,7 +4872,6 @@ fsm_start:
                         */
                        ap->hsm_task_state = HSM_ST;
                        ata_pio_sectors(qc);
-                       ata_altstatus(ap); /* flush */
                } else
                        /* send CDB */
                        atapi_send_cdb(ap, qc);
@@ -4950,7 +4952,6 @@ fsm_start:
 
                                if (!(qc->tf.flags & ATA_TFLAG_WRITE)) {
                                        ata_pio_sectors(qc);
-                                       ata_altstatus(ap);
                                        status = ata_wait_idle(ap);
                                }
 
@@ -4970,13 +4971,11 @@ fsm_start:
                        if (ap->hsm_task_state == HSM_ST_LAST &&
                            (!(qc->tf.flags & ATA_TFLAG_WRITE))) {
                                /* all data read */
-                               ata_altstatus(ap);
                                status = ata_wait_idle(ap);
                                goto fsm_start;
                        }
                }
 
-               ata_altstatus(ap); /* flush */
                poll_next = 1;
                break;
 


-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to