diff options
| author | Jung-uk Kim <jkim@FreeBSD.org> | 2005-08-26 23:39:44 +0000 |
|---|---|---|
| committer | Jung-uk Kim <jkim@FreeBSD.org> | 2005-08-26 23:39:44 +0000 |
| commit | c94d6dbee5f1408c8792b9664a2d5ab6a5b6413e (patch) | |
| tree | cb054ea634c314bf9cc43478cf8381d5b140ba19 /sys/dev | |
| parent | 001f040a036ba5c580d6b81222e5d9ef821994f8 (diff) | |
Notes
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/pci/pci_pci.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index 29a82e1f5909b..2795f02efdd97 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -186,6 +186,24 @@ pcib_attach_common(device_t dev) case 0x060513d7: /* Toshiba ???? */ sc->flags |= PCIB_SUBTRACTIVE; break; + + /* Compaq R3000 BIOS sets wrong subordinate bus number. */ + case 0x00dd10de: + { + char *cp; + + cp = getenv("smbios.planar.maker"); + if (cp == NULL || strncmp(cp, "Compal", 6) != 0) + break; + cp = getenv("smbios.planar.product"); + if (cp == NULL || strncmp(cp, "08A0", 4) != 0) + break; + if (sc->subbus < 0xa) { + pci_write_config(dev, PCIR_SUBBUS_1, 0xa, 1); + sc->subbus = pci_read_config(dev, PCIR_SUBBUS_1, 1); + } + break; + } } /* |
