summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2009-10-26 08:41:10 +0000
committermav <mav@FreeBSD.org>2009-10-26 08:41:10 +0000
commitc4078470d7eefc5dd2cb53c10f0fa44bdd957f5f (patch)
tree8810ff99946ecbf624d991e59ab27c2e344567d7
parent18f719f38d9093b08c7bb43eb656732a965182a9 (diff)
downloadFreeBSD-src-c4078470d7eefc5dd2cb53c10f0fa44bdd957f5f.zip
FreeBSD-src-c4078470d7eefc5dd2cb53c10f0fa44bdd957f5f.tar.gz
Fix SATA on nVidia MCP55 chipset. It needs some short time to allow BAR(5)
memory access. PR: amd64/128686, amd64/132372, amd64/139156 MFC after: 3 days
-rw-r--r--sys/dev/ata/chipsets/ata-nvidia.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/ata/chipsets/ata-nvidia.c b/sys/dev/ata/chipsets/ata-nvidia.c
index 95be37c..bb76316 100644
--- a/sys/dev/ata/chipsets/ata-nvidia.c
+++ b/sys/dev/ata/chipsets/ata-nvidia.c
@@ -165,7 +165,8 @@ ata_nvidia_chipinit(device_t dev)
/* enable control access */
pci_write_config(dev, 0x50, pci_read_config(dev, 0x50, 1) | 0x04,1);
-
+ /* MCP55 seems to need some time to allow r_res2 read. */
+ DELAY(10);
if (ctlr->chip->cfg1 & NVQ) {
/* clear interrupt status */
ATA_OUTL(ctlr->r_res2, offset, 0x00ff00ff);
OpenPOWER on IntegriCloud