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
1 changed files with 10 additions and 2 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue