• Krzysztof Opasiak's avatar
    usb: gadget: udc-core: Rescan pending list on driver unbind · 0d95b60e
    Krzysztof Opasiak authored
    commit 8236800d upstream.
    
    Since:
    
    commit 855ed04a ("usb: gadget: udc-core: independent registration
    of gadgets and gadget drivers")
    
    if we load gadget module but there is no free udc available
    then it will be stored on a pending gadgets list.
    
    $ modprobe g_zero.ko
    $ modprobe g_ether.ko
    [] udc-core: couldn't find an available UDC - added [g_ether] to list
    of pending drivers
    
    We scan this list each time when new UDC appears in system.
    But we can get a free UDC each time after gadget unbind.
    This commit add scanning of that list directly after unbinding
    gadget from udc.
    
    Thanks to this, when we unload first gadget:
    
    $ rmmod g_zero.ko
    
    gadget which is pending is automatically
    attached to that UDC (if name matches).
    
    Fixes: 855ed04a  ("usb: gadget: udc-core: independent registration of gadgets and gadget drivers")
    Signed-off-by: default avatarKrzysztof Opasiak <k.opasiak@samsung.com>
    Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    0d95b60e
core.c 41.6 KB