All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anssi Hannula <anssi.hannula@iki.fi>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: linux-input@vger.kernel.org,
	linux-media <linux-media@vger.kernel.org>,
	Jiri Kosina <jkosina@suse.cz>
Subject: Re: Two devices, same USB ID: one needs HID, the other doesn't. How to solve this?
Date: Fri, 13 Jan 2012 15:34:49 +0200	[thread overview]
Message-ID: <4F1032F9.8020505@iki.fi> (raw)
In-Reply-To: <201201131142.33779.hverkuil@xs4all.nl>

On 13.01.2012 12:42, Hans Verkuil wrote:
> Hi!

Hi!

Adding Jiri Kosina, the HID maintainer.

> I've made a video4linux driver for the USB Keene FM Transmitter. See:
> 
> http://www.amazon.co.uk/Keene-Electronics-USB-FM-Transmitter/dp/B003GCHPDY/ref=sr_1_1?ie=UTF8&qid=1326450476&sr=8-1
> 
> The driver code is here:
> 
> http://git.linuxtv.org/hverkuil/media_tree.git/shortlog/refs/heads/keene
> 
> Unfortunately this device has exactly the same USB ID as the Logitech AudioHub
> USB speaker (http://www.logitech.com/en-us/439/3503).
> 
> The AudioHub has HID support for volume keys, but the FM transmitter needs
> a custom V4L2 driver instead.
> 
> I've attached the full lsusb -v output of both devices, but this is the diff of
> the two:
> 
> $ diff keene.txt audiohub.txt -u
[...]
> @@ -152,7 +151,7 @@
>            bCountryCode            0 Not supported
>            bNumDescriptors         1
>            bDescriptorType        34 Report
> -          wDescriptorLength      22
> +          wDescriptorLength      31
>           Report Descriptors: 
>             ** UNAVAILABLE **
>        Endpoint Descriptor:
> 
> As you can see, the differences are very small.

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


-- 
Anssi Hannula

  parent reply	other threads:[~2012-01-13 13:49 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-13 10:42 Two devices, same USB ID: one needs HID, the other doesn't. How to solve this? Hans Verkuil
2012-01-13 11:16 ` Andy Walls
2012-01-13 13:29   ` Hans Verkuil
2012-01-13 13:34 ` Anssi Hannula [this message]
2012-01-13 14:21   ` Hans Verkuil
2012-02-02  8:52     ` Jiri Kosina

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F1032F9.8020505@iki.fi \
    --to=anssi.hannula@iki.fi \
    --cc=hverkuil@xs4all.nl \
    --cc=jkosina@suse.cz \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.