Commit 1a3a090e authored by Jeff Garzik's avatar Jeff Garzik

[libata promise] revert broken taskfile delivery change

The ->tf_load and ->exec_command driver hooks were changed to assume
that PIO was the only type of taskfile ever delivered to these functions.
This will be true... in the future, but not today.  In other drivers
this change was not needed, but Promise executes commands differently
due to its "ATA packet" hardware features, so the Promise drivers need
this change reverted.

Diagnosis and initial fix by Brad Campbell <brad@wasp.net.au>
parent 3d61e387
...@@ -457,14 +457,14 @@ static void pdc_dma_start(struct ata_queued_cmd *qc) ...@@ -457,14 +457,14 @@ static void pdc_dma_start(struct ata_queued_cmd *qc)
static void pdc_tf_load_mmio(struct ata_port *ap, struct ata_taskfile *tf) static void pdc_tf_load_mmio(struct ata_port *ap, struct ata_taskfile *tf)
{ {
if (tf->protocol == ATA_PROT_PIO) if (tf->protocol != ATA_PROT_DMA)
ata_tf_load_mmio(ap, tf); ata_tf_load_mmio(ap, tf);
} }
static void pdc_exec_command_mmio(struct ata_port *ap, struct ata_taskfile *tf) static void pdc_exec_command_mmio(struct ata_port *ap, struct ata_taskfile *tf)
{ {
if (tf->protocol == ATA_PROT_PIO) if (tf->protocol != ATA_PROT_DMA)
ata_exec_command_mmio(ap, tf); ata_exec_command_mmio(ap, tf);
} }
......
...@@ -826,14 +826,14 @@ static void pdc_eng_timeout(struct ata_port *ap) ...@@ -826,14 +826,14 @@ static void pdc_eng_timeout(struct ata_port *ap)
static void pdc_tf_load_mmio(struct ata_port *ap, struct ata_taskfile *tf) static void pdc_tf_load_mmio(struct ata_port *ap, struct ata_taskfile *tf)
{ {
if (tf->protocol == ATA_PROT_PIO) if (tf->protocol != ATA_PROT_DMA)
ata_tf_load_mmio(ap, tf); ata_tf_load_mmio(ap, tf);
} }
static void pdc_exec_command_mmio(struct ata_port *ap, struct ata_taskfile *tf) static void pdc_exec_command_mmio(struct ata_port *ap, struct ata_taskfile *tf)
{ {
if (tf->protocol == ATA_PROT_PIO) if (tf->protocol != ATA_PROT_DMA)
ata_exec_command_mmio(ap, tf); ata_exec_command_mmio(ap, tf);
} }
......
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