From 97fb4f576c1731a2d2e73240d77a928039451deb Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Tue, 30 Jul 2002 19:03:35 +0000 Subject: fill in pci_bus and pci_device for USB --- ldetect.spec | 5 ++++- usb.c | 20 ++++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/ldetect.spec b/ldetect.spec index 463bdcd..5f969f2 100644 --- a/ldetect.spec +++ b/ldetect.spec @@ -1,7 +1,7 @@ # !! DON'T MODIFY HERE, MODIFY IN THE CVS !! %define name ldetect %define version 0.4.4 -%define release 1mdk +%define release 2mdk Name: %{name} Version: %{version} @@ -53,6 +53,9 @@ rm -rf $RPM_BUILD_ROOT %_libdir/* %changelog +* Tue Jul 30 2002 Pixel 0.4.4-2mdk +- fill in pci_bus and pci_device for USB + * Thu Jul 25 2002 Thierry Vignaud 0.4.4-1mdk - fix "(null) description" bug: don't skip entries where module has already be set by pci.c workaround diff --git a/usb.c b/usb.c index a92b871..73c5a8a 100644 --- a/usb.c +++ b/usb.c @@ -42,14 +42,26 @@ extern struct pciusb_entries usb_probe(void) { return r; } - for(r.nb = line = 0; fgets(buf, sizeof(buf) - 1, f) && r.nb < psizeof(t); line++) { - if (buf[0] == 'P') { + for(r.nb = 0, line = 1; fgets(buf, sizeof(buf) - 1, f) && r.nb < psizeof(t); line++) { + if (buf[0] == 'T') { + unsigned short pci_bus, pci_device; e = &t[r.nb++]; pciusb_initialize(e); - if (sscanf(buf, "P: Vendor=%hx ProdID=%hx", &e->vendor, &e->device) != 2) { + if (sscanf(buf, "T: Bus=%02hd Lev=%*02d Prnt=%*02d Port=%*02d Cnt=%*02d Dev#=%3hd Spd=%*3s MxCh=%*2d", &pci_bus, &pci_device) == 2) { + e->pci_bus = pci_bus; + e->pci_device = pci_device; + } else { + fprintf(stderr, "%s %d: unknown ``T'' line\n", proc_usb_path, line); + } + + } else if (buf[0] == 'P') { + unsigned short vendor, device; + if (sscanf(buf, "P: Vendor=%hx ProdID=%hx", &vendor, &device) == 2) { + e->vendor = vendor; + e->device = device; + } else { fprintf(stderr, "%s %d: unknown ``P'' line\n", proc_usb_path, line); - pciusb_initialize(e); } } else if (e && buf[0] == 'I' && e->class_ == 0) { int class_, sub, prot = 0; -- cgit v1.2.1