As you can see, the differences are very small.
In my git tree I worked around it by adding the USB ID to the ignore list
if the Keene driver is enabled, and ensuring that the Keene driver is
disabled by default.
But is there a better method to do this? At least the iProduct strings are
different, is that something that can be tested in hid-core.c?
Regards,
Hans
As you can see, the differences are very small.
In my git tree I worked around it by adding the USB ID to the ignore
list
if the Keene driver is enabled, and ensuring that the Keene driver is
disabled by default.
But is there a better method to do this? At least the iProduct strings
are
different, is that something that can be tested in hid-core.c?
Regards,
Hans
As you can see, the differences are very small.
In my git tree I worked around it by adding the USB ID to the ignore
list
if the Keene driver is enabled, and ensuring that the Keene driver is
disabled by default.
But is there a better method to do this? At least the iProduct strings
are
different, is that something that can be tested in hid-core.c?
Regards,
Hans
Attached the new lsusb outputs, this time with the report descriptor.
Note that if I plug in the Keene transmitter, then no input device is
created:
Jan 13 14:25:12 tschai kernel: [ 1686.020166] usb 7-4: new full-speed USB device number 3 using ohci_hcd
Jan 13 14:25:12 tschai kernel: [ 1686.248735] generic-usb 0003:046D:0A0E.0009: hiddev0,hidraw4: USB HID v1.10 Device [HOLTEK B-LINK USB Audio ] on usb-0000:00:16.0-4/input2
Compare that to what happens when the audiohub is plugged in:
Jan 13 14:25:49 tschai kernel: [ 1722.820125] usb 3-4: new high-speed USB device number 6 using ehci_hcd
Jan 13 14:25:49 tschai kernel: [ 1722.973529] hub 3-4:1.0: USB hub found
Jan 13 14:25:49 tschai kernel: [ 1722.973960] hub 3-4:1.0: 4 ports detected
Jan 13 14:25:49 tschai kernel: [ 1723.250629] usb 3-4.4: new full-speed USB device number 7 using ehci_hcd
Jan 13 14:25:49 tschai kernel: [ 1723.390888] input: HOLTEK AudioHub Speaker as /devices/pci0000:00/0000:00:16.2/usb3/3-4/3-4.4/3-4.4:1.2/input/input12
Jan 13 14:25:49 tschai kernel: [ 1723.391176] generic-usb 0003:046D:0A0E.000A: input,hidraw4: USB HID v1.10 Device [HOLTEK AudioHub Speaker] on usb-0000:00:16.2-4.4/input2
I'm no expert on usb and HID, so I hope someone can point me to a better solution.
Regards,
Hans
The HID Report descriptors could be interesting as they differ. You can
look at them in:
/sys/kernel/debug/hid/*/rdesc
I guess one option would be to make this a "regular" HID driver like
those in drivers/hid/hid-*.c (and just set the v4l things up if the
descriptor is as expected, otherwise let standard HID-input handle
them), but there is the issue of where to place the driver, then, as it
can't be both in drivers/hid and drivers/media...
Probably the easy way out is to simply add the device into
drivers/hid/hid-core.c:hid_ignore(), by checking e.g.
vendor+product+name, and hope all "B-LINK USB Audio" devices are FM
transmitters (the name suggests that may not necessarily be the case,
though). Report descriptor contents are not available at hid_ignore()
point yet.
In my git tree I worked around it by adding the USB ID to the ignore list
if the Keene driver is enabled, and ensuring that the Keene driver is
disabled by default.
But is there a better method to do this? At least the iProduct strings are
different, is that something that can be tested in hid-core.c?
Regards,
Hans
The HID Report descriptors could be interesting as they differ. You can
look at them in:
/sys/kernel/debug/hid/*/rdesc
I guess one option would be to make this a "regular" HID driver like
those in drivers/hid/hid-*.c (and just set the v4l things up if the
descriptor is as expected, otherwise let standard HID-input handle
them), but there is the issue of where to place the driver, then, as it
can't be both in drivers/hid and drivers/media...
Probably the easy way out is to simply add the device into
drivers/hid/hid-core.c:hid_ignore(), by checking e.g.
vendor+product+name, and hope all "B-LINK USB Audio" devices are FM
transmitters (the name suggests that may not necessarily be the case,
though). Report descriptor contents are not available at hid_ignore()
point yet.
I've done this and this works fine.
I googled for "B-LINK USB Audio" and found only references to the Keene
transmitter.
Here is my patch for drivers/hid that solves this issue:
[RFC PATCH] hid-core: ignore the Keene FM transmitter.
The Keene FM transmitter USB device has the same USB ID as
the Logitech AudioHub Speaker, but it should ignore the hid.
Check if the name is that of the Keene device.
Signed-off-by: Hans Verkuil <redacted>
---
drivers/hid/hid-core.c | 10 ++++++++++
drivers/hid/hid-ids.h | 1 +
2 files changed, 11 insertions(+), 0 deletions(-)
[RFC PATCH] hid-core: ignore the Keene FM transmitter.
The Keene FM transmitter USB device has the same USB ID as
the Logitech AudioHub Speaker, but it should ignore the hid.
Check if the name is that of the Keene device.
Signed-off-by: Hans Verkuil <redacted>
---
drivers/hid/hid-core.c | 10 ++++++++++
drivers/hid/hid-ids.h | 1 +
2 files changed, 11 insertions(+), 0 deletions(-)