aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2010-01-18 12:14:55 -0500
committerJeff Garzik <jgarzik@redhat.com>2010-03-01 14:58:44 -0500
commita2bd62207af4be8f5fe815ff90cc309056407829 (patch)
tree83ce5c7fbc069745ea3c8af72d45cbb04104b9db /drivers/ata
parentd8b3d8cfe6240178ac717e143438bf51364311e4 (diff)
pata_cmd64x: fix PIO setup
Fix incorrect handling of recovery clocks value == 16 resulting in overclocked recovery timings & potentially underclocked active timings. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/pata_cmd64x.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/ata/pata_cmd64x.c b/drivers/ata/pata_cmd64x.c
index 0efb1f58f255..db08c9d1a333 100644
--- a/drivers/ata/pata_cmd64x.c
+++ b/drivers/ata/pata_cmd64x.c
@@ -2,6 +2,7 @@
2 * pata_cmd64x.c - CMD64x PATA for new ATA layer 2 * pata_cmd64x.c - CMD64x PATA for new ATA layer
3 * (C) 2005 Red Hat Inc 3 * (C) 2005 Red Hat Inc
4 * Alan Cox <alan@lxorguk.ukuu.org.uk> 4 * Alan Cox <alan@lxorguk.ukuu.org.uk>
5 * (C) 2009-2010 Bartlomiej Zolnierkiewicz
5 * 6 *
6 * Based upon 7 * Based upon
7 * linux/drivers/ide/pci/cmd64x.c Version 1.30 Sept 10, 2002 8 * linux/drivers/ide/pci/cmd64x.c Version 1.30 Sept 10, 2002
@@ -147,7 +148,9 @@ static void cmd64x_set_timing(struct ata_port *ap, struct ata_device *adev, u8 m
147 /* Now convert the clocks into values we can actually stuff into 148 /* Now convert the clocks into values we can actually stuff into
148 the chip */ 149 the chip */
149 150
150 if (t.recover > 1) 151 if (t.recover == 16)
152 t.recover = 0;
153 else if (t.recover > 1)
151 t.recover--; 154 t.recover--;
152 else 155 else
153 t.recover = 15; 156 t.recover = 15;