summaryrefslogtreecommitdiff
path: root/sys/dev/pci/pccbb.c
diff options
context:
space:
mode:
authorAaron Campbell <aaron@cvs.openbsd.org>2000-09-24 23:10:49 +0000
committerAaron Campbell <aaron@cvs.openbsd.org>2000-09-24 23:10:49 +0000
commit78c650613e2a86aeeecf550cb0e1a879f926fc29 (patch)
treeb3b11de4c1b03dfcc5034d218f4f86e199068128 /sys/dev/pci/pccbb.c
parentdaa5b128d46cec446353f4c4762724f8c7c5f80e (diff)
For the Toshiba TOPIC95B CardBus controller, we must clear the socket and slot
control registers at shutdown else we hang. Fixes it on my laptop, should help out espie@ on his Toshiba system too.
Diffstat (limited to 'sys/dev/pci/pccbb.c')
-rw-r--r--sys/dev/pci/pccbb.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/dev/pci/pccbb.c b/sys/dev/pci/pccbb.c
index 0269453df6a..d9b07be18db 100644
--- a/sys/dev/pci/pccbb.c
+++ b/sys/dev/pci/pccbb.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pccbb.c,v 1.6 2000/07/25 00:04:59 mickey Exp $ */
+/* $OpenBSD: pccbb.c,v 1.7 2000/09/24 23:10:48 aaron Exp $ */
/* $NetBSD: pccbb.c,v 1.42 2000/06/16 23:41:35 cgd Exp $ */
/*
@@ -370,6 +370,10 @@ pccbb_shutdown(void *arg)
PCI_COMMAND_MASTER_ENABLE);
pci_conf_write(sc->sc_pc, sc->sc_tag, PCI_COMMAND_STATUS_REG, command);
+ if (sc->sc_chipset == CB_TOPIC95B) {
+ pci_conf_write(sc->sc_pc, sc->sc_tag, TOPIC_SOCKET_CTRL, 0);
+ pci_conf_write(sc->sc_pc, sc->sc_tag, TOPIC_SLOT_CTRL, 0);
+ }
}
void