On Mon, Dec 17, 2001 at 12:48:50PM -0800, David Brownell wrote: > > > Not true at all. If a driver knows where a device is, it can do more > > > things. Currently no Linux driver cares about topology, but that might > > > change in 2.5. > > In part because the topology info is not really available ... :)
static int usb_make_path(struct usb_device *dev, char *buf, int maxlen) { struct usb_device *pdev = dev->parent; char *tmp, *port; int i; if (!(port = kmalloc(maxlen, GFP_KERNEL))) return -1; if (!(tmp = kmalloc(maxlen, GFP_KERNEL))) return -1; *port = 0; while (pdev) { for (i = 0; i < pdev->maxchild; i++) if (pdev->children[i] == dev) break; if (pdev->children[i] != dev) return -1; strcpy(tmp, port); sprintf(port, strlen(port) ? "%d.%s" : "%d", i + 1, tmp); dev = pdev; pdev = dev->parent; } sprintf(buf, "usb%d:%s", dev->bus->busnum, port); return 0; } ... could be added somewhere. > > The new HID drivers do care and pass that info to the input core. And > > it'll be very useful, namely for multihead and other fun stuff. > > Hmm, how do the HID drivers pass that info along? As a string. Example from my system: vojtech@twilight:~$ cat /proc/bus/input/devices I: Bus=0003 Vendor=046d Product=c004 Version=0120 N: Name="Logitech USB-PS/2 Mouse" P: Phys=usb1:2.2/input0 D: Drivers=mouse0 event1 B: EV=e B: KEY=70000 0 0 0 0 0 0 0 0 B: REL=3 B: ABS=100 0 I: Bus=0003 Vendor=0430 Product=0005 Version=0101 N: Name="0430:0005" P: Phys=usb1:2.3/input0 D: Drivers=kbd event0 B: EV=120002 B: KEY=10000 0 3e00000 7ff ffbeffdf ffffffff ffffffff fffffffe B: LED=1f The input drivers also create topology strings for non-USB devices, like isa0060/serio0/input0 for keyboard, etc. For USB it really should look like pci00:07.2/usb0:2.2/input0, but that's yet to implement. I hope this will integrate nicely with Mochel's work. > I've got some hub patches pending; should I add some code > to have the hub driver save that topology info in usb_device? > Right now it calculates it for a diagnostic, but discards it after > printing it. > > - Dave > > -- Vojtech Pavlik SuSE Labs _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel