Commit 4cc980b3 authored by Albert Lee's avatar Albert Lee Committed by Jeff Garzik

libata: move ata_altstatus() to pio data xfer functions

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: default avatarAlbert Lee <albertcc@tw.ibm.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 0bc2a79a
...@@ -4614,6 +4614,8 @@ static void ata_pio_sectors(struct ata_queued_cmd *qc) ...@@ -4614,6 +4614,8 @@ static void ata_pio_sectors(struct ata_queued_cmd *qc)
ata_pio_sector(qc); ata_pio_sector(qc);
} else } else
ata_pio_sector(qc); ata_pio_sector(qc);
ata_altstatus(qc->ap); /* flush */
} }
/** /**
...@@ -4788,6 +4790,7 @@ static void atapi_pio_bytes(struct ata_queued_cmd *qc) ...@@ -4788,6 +4790,7 @@ static void atapi_pio_bytes(struct ata_queued_cmd *qc)
VPRINTK("ata%u: xfering %d bytes\n", ap->print_id, bytes); VPRINTK("ata%u: xfering %d bytes\n", ap->print_id, bytes);
__atapi_pio_bytes(qc, bytes); __atapi_pio_bytes(qc, bytes);
ata_altstatus(ap); /* flush */
return; return;
...@@ -4959,7 +4962,6 @@ int ata_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc, ...@@ -4959,7 +4962,6 @@ int ata_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc,
*/ */
ap->hsm_task_state = HSM_ST; ap->hsm_task_state = HSM_ST;
ata_pio_sectors(qc); ata_pio_sectors(qc);
ata_altstatus(ap); /* flush */
} else } else
/* send CDB */ /* send CDB */
atapi_send_cdb(ap, qc); atapi_send_cdb(ap, qc);
...@@ -5040,7 +5042,6 @@ int ata_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc, ...@@ -5040,7 +5042,6 @@ int ata_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc,
if (!(qc->tf.flags & ATA_TFLAG_WRITE)) { if (!(qc->tf.flags & ATA_TFLAG_WRITE)) {
ata_pio_sectors(qc); ata_pio_sectors(qc);
ata_altstatus(ap);
status = ata_wait_idle(ap); status = ata_wait_idle(ap);
} }
...@@ -5060,13 +5061,11 @@ int ata_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc, ...@@ -5060,13 +5061,11 @@ int ata_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc,
if (ap->hsm_task_state == HSM_ST_LAST && if (ap->hsm_task_state == HSM_ST_LAST &&
(!(qc->tf.flags & ATA_TFLAG_WRITE))) { (!(qc->tf.flags & ATA_TFLAG_WRITE))) {
/* all data read */ /* all data read */
ata_altstatus(ap);
status = ata_wait_idle(ap); status = ata_wait_idle(ap);
goto fsm_start; goto fsm_start;
} }
} }
ata_altstatus(ap); /* flush */
poll_next = 1; poll_next = 1;
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment