Hi Mike, have you had a chance to try out this patch yet? On Tue, Jan 26, 2010 at 10:33 PM, Robert Hancock <hancockrwd@xxxxxxxxx> wrote: > Mike Cui reported that his system with an NVIDIA MCP79 (aka MCP7A) chipset > stopped working with 2.6.32. The problem appears to be that 2.6.32 now enables > the FPDMA auto-activate optimization in the ahci driver. The drive works fine > with this enabled on an Intel AHCI so this appears to be a chipset bug. > Since MCP79 is a fairly recent NVIDIA chipset and we don't have any info on > whether any other NVIDIA chipsets have this issue, disable FPDMA AA optimization > on all NVIDIA AHCI controllers for now. > > Should address http://bugzilla.kernel.org/show_bug.cgi?id=14922 > > Signed-off-by: Robert Hancock <hancockrwd@xxxxxxxxx> > > --- > > Mike, can you test this out and make sure this resolves the problem for you? > > diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c > index b8bea10..47e57dc 100644 > --- a/drivers/ata/ahci.c > +++ b/drivers/ata/ahci.c > @@ -3067,8 +3067,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; > -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html