| From d6250a03fa736c1bff4df4601f5af2dc21f2bf9e Mon Sep 17 00:00:00 2001 |
| From: Alan Cox <alan@linux.intel.com> |
| Date: Mon, 30 Nov 2009 13:23:05 +0000 |
| Subject: pata_ali: Fix regression with old devices |
| |
| From: Alan Cox <alan@linux.intel.com> |
| |
| commit d6250a03fa736c1bff4df4601f5af2dc21f2bf9e upstream. |
| |
| Making the new stuff work broke some of the old chipsets. We need to go |
| back to the old set up values for these it seems. Unfortunately even with |
| documentation this is basically a mix of cargoculting and guesswork. |
| |
| Chased down to the exact line by Gianluca. |
| |
| Signed-off-by: Alan Cox <alan@linux.intel.com> |
| Signed-off-by: Jeff Garzik <jgarzik@redhat.com> |
| Cc: Christoph Biedl <linux-kernel.bfrz@manchmal.in-ulm.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/ata/pata_ali.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/ata/pata_ali.c |
| +++ b/drivers/ata/pata_ali.c |
| @@ -453,7 +453,9 @@ static void ali_init_chipset(struct pci_ |
| /* Clear CD-ROM DMA write bit */ |
| tmp &= 0x7F; |
| /* Cable and UDMA */ |
| - pci_write_config_byte(pdev, 0x4B, tmp | 0x09); |
| + if (pdev->revision >= 0xc2) |
| + tmp |= 0x01; |
| + pci_write_config_byte(pdev, 0x4B, tmp | 0x08); |
| /* |
| * CD_ROM DMA on (0x53 bit 0). Enable this even if we want |
| * to use PIO. 0x53 bit 1 (rev 20 only) - enable FIFO control |