diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-02 15:53:10 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-02 15:53:10 -0800 |
commit | e2e29831cc463f4be61d4e36b8699ae7e071a685 (patch) | |
tree | d5c40f6a328e07edb2db7186bef3a6c932c404fb /drivers/ide/amd74xx.c | |
parent | 9a689bc4f09f8b89f88e65b1b0a2ea780b4f28de (diff) | |
parent | 95964018d53f479529dfdc2b46fe30c0a14a00e0 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
alim15x3: fix sparse warning
ide: remove dead code from drive_is_ready()
ide: fix build for DEBUG_PM
ide: respect current DMA setting during resume
ide: add SAMSUNG SP0822N with firmware WA100-10 to ivb_list[]
amd74xx: workaround unreliable AltStatus register for nVidia controllers
ide: fix the ide_release_lock imbalance
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 81ec73134ed..c6bcd3014a2 100644 --- a/drivers/ide/amd74xx.c +++ b/drivers/ide/amd74xx.c @@ -3,7 +3,7 @@ * IDE driver for Linux. * * Copyright (c) 2000-2002 Vojtech Pavlik - * Copyright (c) 2007 Bartlomiej Zolnierkiewicz + * Copyright (c) 2007-2008 Bartlomiej Zolnierkiewicz * * Based on the work of: * Andre Hedrick @@ -263,6 +263,15 @@ static int __devinit amd74xx_probe(struct pci_dev *dev, const struct pci_device_ d.udma_mask = ATA_UDMA5; } + /* + * It seems that on some nVidia controllers using AltStatus + * register can be unreliable so default to Status register + * if the device is in Compatibility Mode. + */ + if (dev->vendor == PCI_VENDOR_ID_NVIDIA && + ide_pci_is_in_compatibility_mode(dev)) + d.host_flags |= IDE_HFLAG_BROKEN_ALTSTATUS; + printk(KERN_INFO "%s %s: UDMA%s controller\n", d.name, pci_name(dev), amd_dma[fls(d.udma_mask) - 1]); |