aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_ali.c
diff options
context:
space:
mode:
authorAlan Cox <alan@linux.intel.com>2009-11-30 08:23:05 -0500
committerJeff Garzik <jgarzik@redhat.com>2009-12-03 02:46:36 -0500
commitd6250a03fa736c1bff4df4601f5af2dc21f2bf9e (patch)
tree81e571bbc77c256d96378a490ec28e1c8b6c05f9 /drivers/ata/pata_ali.c
parentbe315d46156b3db3f4d7eddd1f85549a8a70e962 (diff)
pata_ali: Fix regression with old devices
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>
Diffstat (limited to 'drivers/ata/pata_ali.c')
-rw-r--r--drivers/ata/pata_ali.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/ata/pata_ali.c b/drivers/ata/pata_ali.c
index 1432dc9d0ab8..9434114b2ca8 100644
--- a/drivers/ata/pata_ali.c
+++ b/drivers/ata/pata_ali.c
@@ -453,7 +453,9 @@ static void ali_init_chipset(struct pci_dev *pdev)
453 /* Clear CD-ROM DMA write bit */ 453 /* Clear CD-ROM DMA write bit */
454 tmp &= 0x7F; 454 tmp &= 0x7F;
455 /* Cable and UDMA */ 455 /* Cable and UDMA */
456 pci_write_config_byte(pdev, 0x4B, tmp | 0x09); 456 if (pdev->revision >= 0xc2)
457 tmp |= 0x01;
458 pci_write_config_byte(pdev, 0x4B, tmp | 0x08);
457 /* 459 /*
458 * CD_ROM DMA on (0x53 bit 0). Enable this even if we want 460 * CD_ROM DMA on (0x53 bit 0). Enable this even if we want
459 * to use PIO. 0x53 bit 1 (rev 20 only) - enable FIFO control 461 * to use PIO. 0x53 bit 1 (rev 20 only) - enable FIFO control