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:
commit
7491612c7d
|
@ -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);
|
ahci_save_initial_config(pdev, hpriv);
|
||||||
|
|
||||||
/* prepare host */
|
/* prepare host */
|
||||||
if (hpriv->cap & HOST_CAP_NCQ)
|
if (hpriv->cap & HOST_CAP_NCQ) {
|
||||||
pi.flags |= ATA_FLAG_NCQ | ATA_FLAG_FPDMA_AA;
|
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)
|
if (hpriv->cap & HOST_CAP_PMP)
|
||||||
pi.flags |= ATA_FLAG_PMP;
|
pi.flags |= ATA_FLAG_PMP;
|
||||||
|
|
Loading…
Reference in a new issue