• Veeraiyan Chidambaram's avatar
    usb: gadget: udc: renesas_usb3: add suspend event support · e961c47e
    Veeraiyan Chidambaram authored
    In R-Car Gen3 USB 3.0 Function, if host is detached an interrupt
    will be generated and Suspended state bit is set in interrupt status
    register. Interrupt handler will call driver->suspend(composite_suspend)
    if suspended state bit is set. composite_suspend will call
    ffs_func_suspend which will post FUNCTIONFS_SUSPEND and will be consumed
    by user space application via /dev/ep0.
    
    To be able to detect the host detach, USB_INT_1_B2_SPND to cover the
    Suspended bit of the B2_SPND_OUT[9] from the USB Status Register
    (USB_STA) register and perform appropriate action in the
    usb3_irq_epc_int_1 function.
    
    Without this commit, disconnection of the phone from R-Car H3 ES2.0
    Salvator-X CN11 port is not recognized and reverse role switch does
    not happen. If phone is connected again it does not enumerate.
    
    With this commit, disconnection will be recognized and reverse role
    switch will happen by a user space application. If phone is connected
    again it will enumerate properly and will become visible in the
    output of 'lsusb'.
    Reviewed-by: default avatarYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Tested-by: default avatarYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Signed-off-by: default avatarVeeraiyan Chidambaram <veeraiyan.chidambaram@in.bosch.com>
    Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
    e961c47e
renesas_usb3.c 74.2 KB