summaryrefslogtreecommitdiff
path: root/sys/dev/pci/pccbb.c
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2008-07-20 18:58:08 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2008-07-20 18:58:08 +0000
commitd9298e5b6c0f7706da132898e9488ad1eaa700df (patch)
tree370eb97c7f9dce260feb2ac09fd676776ac34739 /sys/dev/pci/pccbb.c
parent94acd454650df65b0bf1c604c521193c6a7b4fd9 (diff)
On TI cardbus bridges, enable PCI interrupt routing if the device has not
been initialized by the firmware. This was probably the intention of the origional code, however, it used the wrong default value for the register in question. Add TI PCI1510 to the list of 12XX-compatible bridges. "be brave" deraadt@
Diffstat (limited to 'sys/dev/pci/pccbb.c')
-rw-r--r--sys/dev/pci/pccbb.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/pci/pccbb.c b/sys/dev/pci/pccbb.c
index 3e20f703e91..e30f8443613 100644
--- a/sys/dev/pci/pccbb.c
+++ b/sys/dev/pci/pccbb.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pccbb.c,v 1.60 2008/05/22 19:23:04 mk Exp $ */
+/* $OpenBSD: pccbb.c,v 1.61 2008/07/20 18:58:07 kettenis Exp $ */
/* $NetBSD: pccbb.c,v 1.96 2004/03/28 09:49:31 nakayama Exp $ */
/*
@@ -285,6 +285,8 @@ struct yenta_chipinfo {
PCCBB_PCMCIA_IO_RELOC | PCCBB_PCMCIA_MEM_32},
{ MAKEID(PCI_VENDOR_TI, PCI_PRODUCT_TI_PCI1451), CB_TI12XX,
PCCBB_PCMCIA_IO_RELOC | PCCBB_PCMCIA_MEM_32},
+ { MAKEID(PCI_VENDOR_TI, PCI_PRODUCT_TI_PCI1510), CB_TI12XX,
+ PCCBB_PCMCIA_IO_RELOC | PCCBB_PCMCIA_MEM_32},
{ MAKEID(PCI_VENDOR_TI, PCI_PRODUCT_TI_PCI7XX1), CB_TI12XX,
PCCBB_PCMCIA_IO_RELOC | PCCBB_PCMCIA_MEM_32},
@@ -745,7 +747,7 @@ pccbb_chipinit(sc)
* The TI125X parts have a different register.
*/
reg = pci_conf_read(pc, tag, PCI12XX_MFUNC);
- if (reg == 0) {
+ if (reg == PCI12XX_MFUNC_DEFAULT) {
reg &= ~PCI12XX_MFUNC_PIN0;
reg |= PCI12XX_MFUNC_PIN0_INTA;
if ((pci_conf_read(pc, tag, PCI_SYSCTRL) &