[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Module aliases etc.

On Sat, Feb 17, 2018 at 12:05:13PM +0000, Mark Morgan Lloyd wrote:
> 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:

        return scnprintf(buf, PAGE_SIZE, "hid:b%04Xg%04Xv%08Xp%08X\n",
                         hdev->bus, hdev->group, hdev->vendor, hdev->product);


       switch (hdev->bus) {
        case BUS_USB:
                bus = "USB";
        case BUS_BLUETOOTH:
                bus = "BLUETOOTH";
        case BUS_I2C:
                bus = "I2C";
                bus = "<UNKNOWN>";

So it appears to be a bus type.  3 is USB, 5 is BLUETOOTH according to input.h

Len Sorensen

Reply to: