summaryrefslogtreecommitdiffstats
path: root/pciusb.c
diff options
context:
space:
mode:
authorOlivier Blin <oblin@mandriva.com>2009-03-27 18:11:40 +0000
committerOlivier Blin <oblin@mandriva.com>2009-03-27 18:11:40 +0000
commit0586405abbeb51b5e427e766e8e599e3045f102b (patch)
treeb93132cdc12cdd9c2a950aaf9c9516f125425f00 /pciusb.c
parentd5330a61866c21575f074423a382d33642ff3adb (diff)
downloadldetect-0586405abbeb51b5e427e766e8e599e3045f102b.tar
ldetect-0586405abbeb51b5e427e766e8e599e3045f102b.tar.gz
ldetect-0586405abbeb51b5e427e766e8e599e3045f102b.tar.bz2
ldetect-0586405abbeb51b5e427e766e8e599e3045f102b.tar.xz
ldetect-0586405abbeb51b5e427e766e8e599e3045f102b.zip
use /sys/bus/usb/devices instead of /sys/class/usb_device (disabled in kernel) to find modalias (this breaks ABI because we now need to keep port number)
Diffstat (limited to 'pciusb.c')
-rw-r--r--pciusb.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/pciusb.c b/pciusb.c
index ecbe74a..ef9af7a 100644
--- a/pciusb.c
+++ b/pciusb.c
@@ -114,8 +114,8 @@ static void find_usb_modules_through_aliases(struct pciusb_entry *e) {
struct dirent *dent;
asprintf(&usb_prefix, "%d-", e->pci_bus);
- /* usbdev<busnum>.<devnum> */
- asprintf(&sysfs_path, "/sys/class/usb_device/usbdev%d.%d/device", e->pci_bus, e->pci_device);
+ /* USB port is indexed from 0 in procfs, from 1 in sysfs */
+ asprintf(&sysfs_path, "/sys/bus/usb/devices/%d-%d", e->pci_bus, e->usb_port + 1);
dir = opendir(sysfs_path);
if (!dir)
@@ -233,6 +233,7 @@ extern void pciusb_initialize(struct pciusb_entry *e) {
e->pci_bus = 0xffff;
e->pci_device = 0xffff;
e->pci_function = 0xffff;
+ e->usb_port = 0xffff;
e->module = NULL;
e->text = NULL;
e->class = NULL;