On Thu, 8 Nov 2012, Sebastian Andrzej Siewior wrote: > 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 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. > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > --- > v1..v2: > - leave the indent for "ep15in-int" as-is > - fix up comment for pxa250 so does not continue the previous > comment > drivers/usb/gadget/dummy_hcd.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c > index b09dfa1..02a5dcb 100644 > --- a/drivers/usb/gadget/dummy_hcd.c > +++ b/drivers/usb/gadget/dummy_hcd.c > @@ -138,10 +138,7 @@ static const char ep0name[] = "ep0"; > static const char *const ep_name[] = { > ep0name, /* everyone has ep0 */ > > - /* act like a net2280: high speed, six configurable endpoints */ > - "ep-a", "ep-b", "ep-c", "ep-d", "ep-e", "ep-f", > - > - /* or like pxa250: fifteen fixed function endpoints */ > + /* act like a pxa250: fifteen fixed function endpoints */ > "ep1in-bulk", "ep2out-bulk", "ep3in-iso", "ep4out-iso", "ep5in-int", > "ep6in-bulk", "ep7out-bulk", "ep8in-iso", "ep9out-iso", "ep10in-int", > "ep11in-bulk", "ep12out-bulk", "ep13in-iso", "ep14out-iso", > @@ -149,6 +146,10 @@ static const char *const ep_name[] = { > > /* or like sa1100: two fixed function endpoints */ > "ep1out-bulk", "ep2in-bulk", > + > + /* and now some generic EPs so we have enough in multi config */ > + "ep3out", "ep4in", "ep5out", "ep6out", "ep7in", "ep8out", "ep9in", > + "ep10out", "ep11out", "ep12in", "ep13out", "ep14in", "ep15out", > }; > #define DUMMY_ENDPOINTS ARRAY_SIZE(ep_name) Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html