Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7491612c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
  ahci: disable FPDMA auto-activate optimization on NVIDIA AHCI
parents baac35c4 453d3131
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -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;