diff options
author | imp <imp@FreeBSD.org> | 2001-05-24 04:24:22 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2001-05-24 04:24:22 +0000 |
commit | ab4dae83b57827a6e0c1ce7cda528c2d80d2e956 (patch) | |
tree | 4c4552405e1b04e98bc9d7ee987af1fc7638757e | |
parent | 85de757366f537a26a6400585ffe3f4e4218d608 (diff) | |
download | FreeBSD-src-ab4dae83b57827a6e0c1ce7cda528c2d80d2e956.zip FreeBSD-src-ab4dae83b57827a6e0c1ce7cda528c2d80d2e956.tar.gz |
Do what we should have done a long time ago:
o If the class is PCIC_BRIDGE, subclass is PCIS_BRIDGE_PCMCIA and
programming interface is 0, assume that it is a generic PCMCIA PCI
chip we can program. I don't think there are any of these that
we don't know about, but you never know.
o If the class is PCIC_BRIDGE, subclass is PCIS_BRIDGE_CARDBUS and
programming interface is 0, assume that it is a YENTA cardbus bridge
that we know how to cope with. There are likely some cardbus bridges
that haven't it made it in here yet.
-rw-r--r-- | sys/pccard/pcic_pci.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/pccard/pcic_pci.c b/sys/pccard/pcic_pci.c index 9c8afb7..3b74304 100644 --- a/sys/pccard/pcic_pci.c +++ b/sys/pccard/pcic_pci.c @@ -219,6 +219,8 @@ static int pcic_pci_probe(device_t dev) { u_int32_t device_id; + u_int8_t subclass; + u_int8_t progif; char *desc; device_id = pci_get_devid(dev); @@ -307,6 +309,14 @@ pcic_pci_probe(device_t dev) break; default: + if (pci_get_class(dev) == PCIC_BRIDGE) { + subclass = pci_get_subclass(dev); + progif = pci_get_progif(dev); + if (subclass == PCIS_BRIDGE_PCMCIA && progif == 0) + desc = "Generic PCI-PCMCIA Bridge"; + if (subclass == PCIS_BRIDGE_CARDBUS && progif == 0) + desc = "YENTA PCI-CARDBUS Bridge"; + } break; } |