summaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_cmd64x.c
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2010-01-18 18:15:04 +0100
committerJeff Garzik <jgarzik@redhat.com>2010-03-01 20:58:44 +0100
commitd62f5576efc4886c0f3633c2652c3a924e043be9 (patch)
tree1fd7719d6d2567a69b7844739f9cea6b7093586f /drivers/ata/pata_cmd64x.c
parentpata_cmd64x: fix PIO setup (diff)
downloadlinux-d62f5576efc4886c0f3633c2652c3a924e043be9.tar.xz
linux-d62f5576efc4886c0f3633c2652c3a924e043be9.zip
pata_cmd64x: fix handling of address setup timings
Account for the requirements of the DMA mode currently used by the pair device. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/pata_cmd64x.c')
-rw-r--r--drivers/ata/pata_cmd64x.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/ata/pata_cmd64x.c b/drivers/ata/pata_cmd64x.c
index db08c9d1a333..0235a1d3c2fb 100644
--- a/drivers/ata/pata_cmd64x.c
+++ b/drivers/ata/pata_cmd64x.c
@@ -131,8 +131,14 @@ static void cmd64x_set_timing(struct ata_port *ap, struct ata_device *adev, u8 m
if (pair) {
struct ata_timing tp;
+
ata_timing_compute(pair, pair->pio_mode, &tp, T, 0);
ata_timing_merge(&t, &tp, &t, ATA_TIMING_SETUP);
+ if (pair->dma_mode) {
+ ata_timing_compute(pair, pair->dma_mode,
+ &tp, T, 0);
+ ata_timing_merge(&tp, &t, &t, ATA_TIMING_SETUP);
+ }
}
}