| From a2bd62207af4be8f5fe815ff90cc309056407829 Mon Sep 17 00:00:00 2001 |
| From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> |
| Date: Mon, 18 Jan 2010 18:14:55 +0100 |
| Subject: pata_cmd64x: fix PIO setup |
| |
| From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> |
| |
| commit a2bd62207af4be8f5fe815ff90cc309056407829 upstream. |
| |
| 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> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/ata/pata_cmd64x.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/ata/pata_cmd64x.c |
| +++ b/drivers/ata/pata_cmd64x.c |
| @@ -2,6 +2,7 @@ |
| * pata_cmd64x.c - CMD64x PATA for new ATA layer |
| * (C) 2005 Red Hat Inc |
| * Alan Cox <alan@lxorguk.ukuu.org.uk> |
| + * (C) 2009-2010 Bartlomiej Zolnierkiewicz |
| * |
| * Based upon |
| * linux/drivers/ide/pci/cmd64x.c Version 1.30 Sept 10, 2002 |
| @@ -147,7 +148,9 @@ static void cmd64x_set_timing(struct ata |
| /* Now convert the clocks into values we can actually stuff into |
| the chip */ |
| |
| - if (t.recover > 1) |
| + if (t.recover == 16) |
| + t.recover = 0; |
| + else if (t.recover > 1) |
| t.recover--; |
| else |
| t.recover = 15; |