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,