• Sam Protsenko's avatar
    usb: gadget: composite: Correct recovery path for register · 8038f6d2
    Sam Protsenko authored
    
    
    In case when usb_composite_register() failed once (for whatever reason),
    it will fail further even if all conditions are correct. Example:
    
        => fastboot 2
        Invalid Controller Index
        couldn't find an available UDC
        g_dnl_register: failed!, error: -19
        exit not allowed from main input shell.
    
        => fastboot 0
        g_dnl_register: failed!, error: -22
        exit not allowed from main input shell.
    
    Despite that 0 is correct index for USB controller, "fastboot 0" command
    will fail, because "composite" structure wasn't cleared properly on
    previous fail (on "fastboot 2" command).
    
    This patch fixes that erroneous behavior, allowing us to use composite
    even after previous failure.
    Signed-off-by: default avatarSam Protsenko <semen.protsenko@linaro.org>
    8038f6d2
composite.c 28.8 KB