Module Name: src
Committed By: snj
Date: Fri Jan 15 04:21:59 UTC 2010
Modified Files:
src/doc [netbsd-5]: CHANGES-5.1
src/sys/dev/pci [netbsd-5]: auich.c
Log Message:
Revert ticket 1218.
To generate a diff of this commit:
cvs rdiff -u -r1.1.2.173 -r1.1.2.174 src/doc/CHANGES-5.1
cvs rdiff -u -r1.127.10.1 -r1.127.10.2 src/sys/dev/pci/auich.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/doc/CHANGES-5.1
diff -u src/doc/CHANGES-5.1:1.1.2.173 src/doc/CHANGES-5.1:1.1.2.174
--- src/doc/CHANGES-5.1:1.1.2.173 Tue Jan 12 09:11:09 2010
+++ src/doc/CHANGES-5.1 Fri Jan 15 04:21:58 2010
@@ -1,4 +1,4 @@
-# $NetBSD: CHANGES-5.1,v 1.1.2.173 2010/01/12 09:11:09 snj Exp $
+# $NetBSD: CHANGES-5.1,v 1.1.2.174 2010/01/15 04:21:58 snj Exp $
A complete list of changes from the NetBSD 5.0 release to the NetBSD 5.1
release:
@@ -15825,13 +15825,6 @@
if swap is not on the second partition. Fixes PR install/42148.
[cegger, ticket #1217]
-sys/dev/pci/auich.c 1.133
-
- Ensure that the memory or i/o space we need is accessible at attach
- and resume. Rework register mapping code path, using 'goto', so
- duplicate code is reduced. Addresses PR/39652.
- [jakllsch, ticket #1218]
-
sys/dev/usb/uhidev.c 1.46
The Dell DRAC5 gives us a zero-length report immediately following
Index: src/sys/dev/pci/auich.c
diff -u src/sys/dev/pci/auich.c:1.127.10.1 src/sys/dev/pci/auich.c:1.127.10.2
--- src/sys/dev/pci/auich.c:1.127.10.1 Sat Jan 9 01:35:16 2010
+++ src/sys/dev/pci/auich.c Fri Jan 15 04:21:59 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: auich.c,v 1.127.10.1 2010/01/09 01:35:16 snj Exp $ */
+/* $NetBSD: auich.c,v 1.127.10.2 2010/01/15 04:21:59 snj Exp $ */
/*-
* Copyright (c) 2000, 2004, 2005 The NetBSD Foundation, Inc.
@@ -111,7 +111,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: auich.c,v 1.127.10.1 2010/01/09 01:35:16 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: auich.c,v 1.127.10.2 2010/01/15 04:21:59 snj Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -209,11 +209,8 @@
int sc_sts_reg;
/* 440MX workaround */
int sc_dmamap_flags;
- /* flags */
- int sc_iose :1,
- sc_csr_io :1,
- sc_csr_mem :1,
- :29;
+ /* Native mode? */
+ int sc_native_mode;
/* sysctl */
struct sysctllog *sc_log;
@@ -479,55 +476,46 @@
if (d->id == PCIID_ICH4 || d->id == PCIID_ICH5 || d->id == PCIID_ICH6
|| d->id == PCIID_ICH7 || d->id == PCIID_I6300ESB
|| d->id == PCIID_ICH4MODEM) {
+ sc->sc_native_mode = 1;
/*
* Use native mode for Intel 6300ESB and ICH4/ICH5/ICH6/ICH7
*/
-
- sc->sc_csr_mem = 1;
- v = 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,
- v | PCI_COMMAND_MEM_ENABLE);
- pa->pa_flags |= PCI_FLAGS_MEM_ENABLED;
-
if (pci_mapreg_map(pa, ICH_MMBAR, PCI_MAPREG_TYPE_MEM, 0,
- &sc->iot, &sc->mix_ioh, NULL, &sc->mix_size)) {
- goto retry_map;
+ &sc->iot, &sc->mix_ioh, NULL, &sc->mix_size)) {
+ v = pci_conf_read(pa->pa_pc, pa->pa_tag, ICH_CFG);
+ pci_conf_write(pa->pa_pc, pa->pa_tag, ICH_CFG,
+ v | ICH_CFG_IOSE);
+ if (pci_mapreg_map(pa, ICH_NAMBAR, PCI_MAPREG_TYPE_IO,
+ 0, &sc->iot, &sc->mix_ioh, NULL,
+ &sc->mix_size)) {
+ aprint_error_dev(self, "can't map codec i/o space\n");
+ return;
+ }
}
if (pci_mapreg_map(pa, ICH_MBBAR, PCI_MAPREG_TYPE_MEM, 0,
- &sc->iot, &sc->aud_ioh, NULL, &sc->aud_size)) {
- goto retry_map;
+ &sc->iot, &sc->aud_ioh, NULL, &sc->aud_size)) {
+ v = pci_conf_read(pa->pa_pc, pa->pa_tag, ICH_CFG);
+ pci_conf_write(pa->pa_pc, pa->pa_tag, ICH_CFG,
+ v | ICH_CFG_IOSE);
+ if (pci_mapreg_map(pa, ICH_NABMBAR, PCI_MAPREG_TYPE_IO,
+ 0, &sc->iot, &sc->aud_ioh, NULL,
+ &sc->aud_size)) {
+ aprint_error_dev(self, "can't map device i/o space\n");
+ return;
+ }
+ }
+ } else {
+ if (pci_mapreg_map(pa, ICH_NAMBAR, PCI_MAPREG_TYPE_IO, 0,
+ &sc->iot, &sc->mix_ioh, NULL, &sc->mix_size)) {
+ aprint_error_dev(self, "can't map codec i/o space\n");
+ return;
+ }
+ if (pci_mapreg_map(pa, ICH_NABMBAR, PCI_MAPREG_TYPE_IO, 0,
+ &sc->iot, &sc->aud_ioh, NULL, &sc->aud_size)) {
+ aprint_error_dev(self, "can't map device i/o space\n");
+ return;
}
- goto map_done;
- } else
- goto non_native_map;
-
-retry_map:
- sc->sc_iose = 1;
- v = pci_conf_read(pa->pa_pc, pa->pa_tag, ICH_CFG);
- pci_conf_write(pa->pa_pc, pa->pa_tag, ICH_CFG,
- v | ICH_CFG_IOSE);
-
-non_native_map:
- sc->sc_csr_io = 1;
- v = 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,
- v | PCI_COMMAND_IO_ENABLE);
- pa->pa_flags |= PCI_FLAGS_IO_ENABLED;
-
- if (pci_mapreg_map(pa, ICH_NAMBAR, PCI_MAPREG_TYPE_IO, 0,
- &sc->iot, &sc->mix_ioh, NULL, &sc->mix_size)) {
- aprint_error_dev(self, "can't map codec i/o space\n");
- return;
- }
- if (pci_mapreg_map(pa, ICH_NABMBAR, PCI_MAPREG_TYPE_IO, 0,
- &sc->iot, &sc->aud_ioh, NULL, &sc->aud_size)) {
- aprint_error_dev(self, "can't map device i/o space\n");
- return;
}
-
-map_done:
sc->dmat = pa->pa_dmat;
/* enable bus mastering */
@@ -1588,19 +1576,12 @@
struct auich_softc *sc = device_private(dv);
pcireg_t v;
- if (sc->sc_iose) {
+ if (sc->sc_native_mode) {
v = pci_conf_read(sc->sc_pc, sc->sc_pt, ICH_CFG);
pci_conf_write(sc->sc_pc, sc->sc_pt, ICH_CFG,
v | ICH_CFG_IOSE);
}
- v = pci_conf_read(sc->sc_pc, sc->sc_pt, PCI_COMMAND_STATUS_REG);
- if (sc->sc_csr_io)
- v |= PCI_COMMAND_IO_ENABLE;
- if (sc->sc_csr_mem)
- v |= PCI_COMMAND_MEM_ENABLE;
- pci_conf_write(sc->sc_pc, sc->sc_pt, PCI_COMMAND_STATUS_REG, v);
-
auich_reset_codec(sc);
DELAY(1000);
(sc->codec_if->vtbl->restore_ports)(sc->codec_if);