• Robert Baldyga's avatar
    usb: gadget: s3c-hsotg: fix disconnect handling · d18f7116
    Robert Baldyga authored
    This patch moves s3c_hsotg_disconnect function call from USBSusp interrupt
    handler to SET_ADDRESS request handler.
    
    It's because disconnected state can't be detected directly, because this
    hardware doesn't support Disconnected interrupt for device mode. For both
    Suspend and Disconnect events there is one interrupt USBSusp, but calling
    s3c_hsotg_disconnect from this interrupt handler causes config reset in
    composite layer, which is not undesirable for Suspended state.
    
    For this reason s3c_hsotg_disconnect is called from SET_ADDRESS request
    handler, which occurs always after disconnection, so we do disconnect
    immediately before we are connected again. It's probably only way we
    can do handle disconnection correctly.
    Signed-off-by: default avatarRobert Baldyga <r.baldyga@samsung.com>
    Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
    Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
    d18f7116
s3c-hsotg.c 94.4 KB