• Sebastian Andrzej Siewior's avatar
    usb: gadget: dummy: fix enumeration with g_multi · 1d16638e
    Sebastian Andrzej Siewior authored
    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: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
    Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
    1d16638e
dummy_hcd.c 68.9 KB