Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/pci Make sure PIRQD enable bit is set. From FreeBSD.
details: https://anonhg.NetBSD.org/src/rev/6590ff50f78e
branches: trunk
changeset: 481266:6590ff50f78e
user: augustss <augustss%NetBSD.org@localhost>
date: Tue Jan 25 11:26:06 2000 +0000
description:
Make sure PIRQD enable bit is set. From FreeBSD.
diffstat:
sys/dev/pci/uhci_pci.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diffs (32 lines):
diff -r b1f7678ce36b -r 6590ff50f78e sys/dev/pci/uhci_pci.c
--- a/sys/dev/pci/uhci_pci.c Tue Jan 25 09:36:43 2000 +0000
+++ b/sys/dev/pci/uhci_pci.c Tue Jan 25 11:26:06 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: uhci_pci.c,v 1.13 1999/11/20 00:57:08 augustss Exp $ */
+/* $NetBSD: uhci_pci.c,v 1.14 2000/01/25 11:26:06 augustss Exp $ */
/*
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -99,7 +99,7 @@
pci_chipset_tag_t pc = pa->pa_pc;
char const *intrstr;
pci_intr_handle_t ih;
- pcireg_t csr;
+ pcireg_t csr, legsup;
char *vendor;
char *devname = sc->sc.sc_bus.bdev.dv_xname;
char devinfo[256];
@@ -143,6 +143,13 @@
}
printf("%s: interrupting at %s\n", devname, intrstr);
+ /* Verify that the PIRQD enable bit is set, some BIOS's don't do that*/
+ legsup = pci_conf_read(pc, pa->pa_tag, PCI_LEGSUP);
+ if (!(legsup & PCI_LEGSUP_USBPIRQDEN)) {
+ legsup = PCI_LEGSUP_USBPIRQDEN;
+ pci_conf_write(pc, pa->pa_tag, PCI_LEGSUP, legsup);
+ }
+
switch(pci_conf_read(pc, pa->pa_tag, PCI_USBREV) & PCI_USBREV_MASK) {
case PCI_USBREV_PRE_1_0:
sc->sc.sc_bus.usbrev = USBREV_PRE_1_0;
Home |
Main Index |
Thread Index |
Old Index