diff options
author | peter <peter@FreeBSD.org> | 1999-05-08 14:55:18 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1999-05-08 14:55:18 +0000 |
commit | e0489f13c5e242f7ffb59ddfc8c7e4bd7a3bb8e8 (patch) | |
tree | 9263df2c62432e64b13d7f9b1e28d90f465b84a4 /sys | |
parent | 23385f9acd8c1f141547e790efb244179bb22a3d (diff) | |
download | FreeBSD-src-e0489f13c5e242f7ffb59ddfc8c7e4bd7a3bb8e8.zip FreeBSD-src-e0489f13c5e242f7ffb59ddfc8c7e4bd7a3bb8e8.tar.gz |
Fix a couple of newbus merge problems:
Restore 0x710110b9 ("AcerLabs M15x3 Power Management Unit") - but only
if NALPM == 0.
Restore 0x00051166 ("Ross (?) host to PCI bridge") so that
fixbushigh_Ross() gets called.
Delete generic_pci_bridge(), it's been replaced by other mechanisms (see
the isab and pcib match/probes and the pci_bridge_type() function)
Diffstat (limited to 'sys')
-rw-r--r-- | sys/pci/pcisupport.c | 45 |
1 files changed, 12 insertions, 33 deletions
diff --git a/sys/pci/pcisupport.c b/sys/pci/pcisupport.c index 14880cf..87ac713 100644 --- a/sys/pci/pcisupport.c +++ b/sys/pci/pcisupport.c @@ -1,6 +1,6 @@ /************************************************************************** ** -** $Id: pcisupport.c,v 1.102 1999/05/07 04:04:42 julian Exp $ +** $Id: pcisupport.c,v 1.103 1999/05/07 18:03:27 peter Exp $ ** ** Device driver for DEC/INTEL PCI chipsets. ** @@ -77,38 +77,6 @@ struct condmsg { const char *text; }; -static char* -generic_pci_bridge (pcici_t tag) -{ - char *descr, tmpbuf[120]; - unsigned classreg = pci_conf_read (tag, PCI_CLASS_REG); - - if ((classreg & PCI_CLASS_MASK) == PCI_CLASS_BRIDGE) { - - unsigned id = pci_conf_read (tag, PCI_ID_REG); - - switch (classreg >> 16 & 0xff) { - case 0: strcpy(tmpbuf, "Host to PCI"); break; - case 1: strcpy(tmpbuf, "PCI to ISA"); break; - case 2: strcpy(tmpbuf, "PCI to EISA"); break; - case 4: strcpy(tmpbuf, "PCI to PCI"); break; - case 5: strcpy(tmpbuf, "PCI to PCMCIA"); break; - case 7: strcpy(tmpbuf, "PCI to CardBus"); break; - default: - snprintf(tmpbuf, sizeof(tmpbuf), - "PCI to 0x%x", classreg>>16 & 0xff); - break; - } - snprintf(tmpbuf+strlen(tmpbuf), sizeof(tmpbuf)-strlen(tmpbuf), - " bridge (vendor=%04x device=%04x)", - id & 0xffff, (id >> 16) & 0xffff); - descr = malloc (strlen(tmpbuf) +1, M_DEVBUF, M_WAITOK); - strcpy(descr, tmpbuf); - return descr; - } - return 0; -} - /* * XXX Both fixbushigh_orion() and fixbushigh_i1225() are bogus in that way, * that they store the highest bus number to scan in this device's config @@ -1157,6 +1125,17 @@ chip_match(device_t dev) /* id is '10b9" but the register always shows "10b9". -Foxfair */ case 0x154110b9: return("AcerLabs M1541 (Aladdin-V) PCI host bridge"); + case 0x710110b9: +#if NALPM > 0 + return NULL; +#else + return ("AcerLabs M15x3 Power Management Unit"); +#endif + + /* Ross (?) -- vendor 0x1166 */ + case 0x00051166: + fixbushigh_Ross(tag); + return ("Ross (?) host to PCI bridge"); /* NEC -- vendor 0x1033 */ |