Lennart Sorensen
2018-02-20 16:34:09 UTC
I'm trying to disentangle some driver issues so that I can backport a module
for a colleague with a weird peripheral. Can anybody tell me what the "b"
field here is, and in particular the significance of the number (3 or 5 in
the example below)?
alias: hid:b0003g*v0000056Ep0000010D
alias: hid:b0003g*v0000056Ep0000010C
alias: hid:b0003g*v0000056Ep000000FF
alias: hid:b0003g*v0000056Ep000000FE
alias: hid:b0005g*v0000056Ep00000061
I'd assumed from udev/hwdb that it was a bus identifier applicable to
something that was actually plugged in, but I'm curious to see it varying on
a virgin system that's never seen the peripheral in question.
Well the kernel source code says:for a colleague with a weird peripheral. Can anybody tell me what the "b"
field here is, and in particular the significance of the number (3 or 5 in
the example below)?
alias: hid:b0003g*v0000056Ep0000010D
alias: hid:b0003g*v0000056Ep0000010C
alias: hid:b0003g*v0000056Ep000000FF
alias: hid:b0003g*v0000056Ep000000FE
alias: hid:b0005g*v0000056Ep00000061
I'd assumed from udev/hwdb that it was a bus identifier applicable to
something that was actually plugged in, but I'm curious to see it varying on
a virgin system that's never seen the peripheral in question.
return scnprintf(buf, PAGE_SIZE, "hid:b%04Xg%04Xv%08Xp%08X\n",
hdev->bus, hdev->group, hdev->vendor, hdev->product);
Also:
switch (hdev->bus) {
case BUS_USB:
bus = "USB";
break;
case BUS_BLUETOOTH:
bus = "BLUETOOTH";
break;
case BUS_I2C:
bus = "I2C";
break;
default:
bus = "<UNKNOWN>";
}
So it appears to be a bus type. 3 is USB, 5 is BLUETOOTH according to input.h
--
Len Sorensen
Len Sorensen