• Veeraiyan Chidambaram's avatar
    usb: renesas_usbhs: add suspend event support in gadget mode · f2b06c95
    Veeraiyan Chidambaram authored
    When R-Car Gen3 USB 2.0 is in Gadget mode, 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 host detach, extend the DVSQ_MASK to cover the
    Suspended bit of the DVSQ[2:0] bitfield from the Interrupt Status
    Register 0 (INTSTS0) register and perform appropriate action in the
    DVST interrupt handler (usbhsg_irq_dev_state).
    
    Without this commit, disconnection of the phone from R-Car H3 ES2.0
    Salvator-X CN9 port is not recognized and reverse role switch does
    not 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'.
    Signed-off-by: default avatarVeeraiyan Chidambaram <veeraiyan.chidambaram@in.bosch.com>
    Signed-off-by: default avatarEugeniu Rosca <erosca@de.adit-jv.com>
    Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
    f2b06c95
mod_gadget.c 28.4 KB