Module Name: src
Committed By: dyoung
Date: Mon Mar 22 22:39:49 UTC 2010
Modified Files:
src/sys/dev/pci: viaide.c
Log Message:
Activate PCI memory-mapped I/O access in the PCI Control and Status
Register if the PCI BAR is the memory-mapped type. The driver used to
decide whether to activate memory-mapped access by testing the truth of
pci_attach_args.pa_memt; that isn't MI, and it doesn't make sense.
To generate a diff of this commit:
cvs rdiff -u -r1.68 -r1.69 src/sys/dev/pci/viaide.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/viaide.c
diff -u src/sys/dev/pci/viaide.c:1.68 src/sys/dev/pci/viaide.c:1.69
--- src/sys/dev/pci/viaide.c:1.68 Wed Feb 24 22:38:01 2010
+++ src/sys/dev/pci/viaide.c Mon Mar 22 22:39:48 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: viaide.c,v 1.68 2010/02/24 22:38:01 dyoung Exp $ */
+/* $NetBSD: viaide.c,v 1.69 2010/03/22 22:39:48 dyoung Exp $ */
/*
* Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: viaide.c,v 1.68 2010/02/24 22:38:01 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: viaide.c,v 1.69 2010/03/22 22:39:48 dyoung Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -851,18 +851,6 @@
pciide_mapreg_dma(sc, pa);
aprint_verbose("\n");
- /*
- * Enable memory-space access if it isn't already there.
- */
- if (pa->pa_memt && (pa->pa_flags & PCI_FLAGS_MEM_ENABLED) == 0) {
- pcireg_t csr;
-
- pa->pa_flags |= PCI_FLAGS_MEM_ENABLED;
- csr = pci_conf_read(pa->pa_pc, pa->pa_tag, PCI_COMMAND_STATUS_REG);
- pci_conf_write(pa->pa_pc, pa->pa_tag, PCI_COMMAND_STATUS_REG,
- csr | PCI_COMMAND_MEM_ENABLE);
- }
-
if (sc->sc_dma_ok) {
sc->sc_wdcdev.sc_atac.atac_cap |= ATAC_CAP_UDMA | ATAC_CAP_DMA;
sc->sc_wdcdev.irqack = pciide_irqack;
@@ -890,6 +878,20 @@
NULL, &satasize);
break;
case PCI_MAPREG_MEM_TYPE_32BIT:
+ /*
+ * Enable memory-space access if it isn't already there.
+ */
+ if ((pa->pa_flags & PCI_FLAGS_MEM_ENABLED) == 0) {
+ pcireg_t csr;
+
+ pa->pa_flags |= PCI_FLAGS_MEM_ENABLED;
+ csr = pci_conf_read(pa->pa_pc, pa->pa_tag,
+ PCI_COMMAND_STATUS_REG);
+ pci_conf_write(pa->pa_pc, pa->pa_tag,
+ PCI_COMMAND_STATUS_REG,
+ csr | PCI_COMMAND_MEM_ENABLE);
+ }
+
ret = pci_mapreg_map(pa, PCI_MAPREG_START + 0x14,
PCI_MAPREG_TYPE_MEM | PCI_MAPREG_MEM_TYPE_32BIT,
0, &sc->sc_ba5_st, &sc->sc_ba5_sh,