From ab4dae83b57827a6e0c1ce7cda528c2d80d2e956 Mon Sep 17 00:00:00 2001 From: imp Date: Thu, 24 May 2001 04:24:22 +0000 Subject: 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. --- sys/pccard/pcic_pci.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'sys/pccard/pcic_pci.c') 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; } -- cgit v1.1