diff -urN linux-2.6.5-a/drivers/scsi/sata_promise.c linux-2.6.5-b/drivers/scsi/sata_promise.c
--- linux-2.6.5-a/drivers/scsi/sata_promise.c 2004-05-29 19:53:40.000000000 +0400
+++ linux-2.6.5-b/drivers/scsi/sata_promise.c 2004-05-29 19:41:47.000000000 +0400
@@ -1180,14 +1180,14 @@
static void pdc_tf_load_mmio(struct ata_port *ap, struct ata_taskfile *tf)
{
- if (tf->protocol != ATA_PROT_DMA)
+ if (tf->protocol == ATA_PROT_PIO)
ata_tf_load_mmio(ap, tf);
}
static void pdc_exec_command_mmio(struct ata_port *ap, struct ata_taskfile *tf)
{
- if (tf->protocol != ATA_PROT_DMA)
+ if (tf->protocol == ATA_PROT_PIO)
ata_exec_command_mmio(ap, tf);
}