From c5367be1e16a5993672e156a0ed01776ede371e4 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Thu, 25 Feb 2010 07:09:54 -0800 Subject: [PATCH] --- yaml --- r: 180777 b: refs/heads/master c: dbd004291ed31db280a3f2d7a1113a04e5e85af4 h: refs/heads/master i: 180775: e4bf97dc7a23dac4089bd150d4a5b1dd7b8f2966 v: v3 --- [refs] | 2 +- trunk/drivers/ata/ahci.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index bdc33d163d9c..39f8826144a6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c36f74e67fa12202dbcb4ad92c5ac844f9d36b98 +refs/heads/master: dbd004291ed31db280a3f2d7a1113a04e5e85af4 diff --git a/trunk/drivers/ata/ahci.c b/trunk/drivers/ata/ahci.c index b34390347c16..a6a736a7dbf2 100644 --- a/trunk/drivers/ata/ahci.c +++ b/trunk/drivers/ata/ahci.c @@ -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;