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 <albertcc@xxxxxxxxxx> --- 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html