diff options
Diffstat (limited to 'drivers/ide/amd74xx.c')
-rw-r--r-- | drivers/ide/amd74xx.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/ide/amd74xx.c b/drivers/ide/amd74xx.c index 81ec73134eda..c6bcd3014a29 100644 --- a/drivers/ide/amd74xx.c +++ b/drivers/ide/amd74xx.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * IDE driver for Linux. | 3 | * IDE driver for Linux. |
4 | * | 4 | * |
5 | * Copyright (c) 2000-2002 Vojtech Pavlik | 5 | * Copyright (c) 2000-2002 Vojtech Pavlik |
6 | * Copyright (c) 2007 Bartlomiej Zolnierkiewicz | 6 | * Copyright (c) 2007-2008 Bartlomiej Zolnierkiewicz |
7 | * | 7 | * |
8 | * Based on the work of: | 8 | * Based on the work of: |
9 | * Andre Hedrick | 9 | * Andre Hedrick |
@@ -263,6 +263,15 @@ static int __devinit amd74xx_probe(struct pci_dev *dev, const struct pci_device_ | |||
263 | d.udma_mask = ATA_UDMA5; | 263 | d.udma_mask = ATA_UDMA5; |
264 | } | 264 | } |
265 | 265 | ||
266 | /* | ||
267 | * It seems that on some nVidia controllers using AltStatus | ||
268 | * register can be unreliable so default to Status register | ||
269 | * if the device is in Compatibility Mode. | ||
270 | */ | ||
271 | if (dev->vendor == PCI_VENDOR_ID_NVIDIA && | ||
272 | ide_pci_is_in_compatibility_mode(dev)) | ||
273 | d.host_flags |= IDE_HFLAG_BROKEN_ALTSTATUS; | ||
274 | |||
266 | printk(KERN_INFO "%s %s: UDMA%s controller\n", | 275 | printk(KERN_INFO "%s %s: UDMA%s controller\n", |
267 | d.name, pci_name(dev), amd_dma[fls(d.udma_mask) - 1]); | 276 | d.name, pci_name(dev), amd_dma[fls(d.udma_mask) - 1]); |
268 | 277 | ||