]> git.karo-electronics.de Git - linux-beck.git/commit
usb: gadget: dummy: fix enumeration with g_multi
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Tue, 20 Nov 2012 12:23:15 +0000 (13:23 +0100)
committerFelipe Balbi <balbi@ti.com>
Thu, 13 Dec 2012 09:58:46 +0000 (11:58 +0200)
commit1d16638e3b9cc195bac18a8fcbca748f33c1bc24
treebdebb704aa49f6aa3cccbd00ffee256d4832295b
parente3f1dbd21ddfaa22649b93212d5ac4b052c1e4a7
usb: gadget: dummy: fix enumeration with g_multi

If we do have endpoints named like "ep-a" then bEndpointAddress is
counted internally by the gadget framework.

If we do have endpoints named like "ep-1" then bEndpointAddress is
assigned from the digit after "ep-".

If we do have both, then it is likely that after we used up the
"generic" endpoints we will use the digits and thus assign one
bEndpointAddress to multiple endpoints.

This theory can be proofed by using the completely enabled g_multi.
Without this patch, the mass storage won't enumerate and times out
because it shares endpoints with RNDIS.

This patch also adds fills up the endpoints list so we have in total
endpoints 1 to 15 in + out available while some of them are restricted
to certain types like BULK or ISO. Without this change the nokia gadget
won't load because the system does not provide enough (BULK) endpoints
but it did before ep-a - ep-f were removed.

Cc: stable@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/dummy_hcd.c