Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev

* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
  ahci: disable FPDMA auto-activate optimization on NVIDIA AHCI
This commit is contained in:
Linus Torvalds 2010-02-24 21:12:11 -08:00
commit 7491612c7d

View file

@ -3082,8 +3082,16 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
ahci_save_initial_config(pdev, hpriv);
/* prepare host */
if (hpriv->cap & HOST_CAP_NCQ)
pi.flags |= ATA_FLAG_NCQ | ATA_FLAG_FPDMA_AA;
if (hpriv->cap & HOST_CAP_NCQ) {
pi.flags |= ATA_FLAG_NCQ;
/* Auto-activate optimization is supposed to be supported on
all AHCI controllers indicating NCQ support, but it seems
to be broken at least on some NVIDIA MCP79 chipsets.
Until we get info on which NVIDIA chipsets don't have this
issue, if any, disable AA on all NVIDIA AHCIs. */
if (pdev->vendor != PCI_VENDOR_ID_NVIDIA)
pi.flags |= ATA_FLAG_FPDMA_AA;
}
if (hpriv->cap & HOST_CAP_PMP)
pi.flags |= ATA_FLAG_PMP;