On 11/12/2011 08:22 PM, Malcolm Priestley wrote:
On Sat, 2011-11-12 at 18:18 +0200, Antti Palosaari wrote:
On 11/12/2011 05:55 PM, Malcolm Priestley wrote:
Remove get config from probe and move to identify_state.
intf->cur_altsetting->desc.bInterfaceNumber is always expected to be zero, so there
no point in checking for it.
Are you sure? IIRC there is HID remote on interface 1 or 2 or so (some
other than 0). Please double check.
Calling from probe seems to cause a race condition with some USB controllers.
Why?
Is some other module going to claim the device?
Would it not be better use usb_set_interface to set it back to 0?
Rather than failing it back to the user.
Maybe I don't understand what you mean.
But here is the copy&paste from code:
/* interface 0 is used by DVB-T receiver and
interface 1 is for remote controller (HID) */
if (intf->cur_altsetting->desc.bInterfaceNumber == 0) {
As it says (comment in the code), interface 1 is for remote controller.
I added that to prevent call all that attach stuff twice. I have done
such check for some other drivers too where is multiple interfaces.
IIRC .probe() is called once per each interface device has. So it will
call that two times (if there is HID remote activated), resulting same
device appears two times in bad luck.
Just returning 0 for those probes we don't need sounds good approach for me.
Antti
--
http://palosaari.fi/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html