linux_dsm_epyc7002/drivers/usb/renesas_usbhs
Veeraiyan Chidambaram 39abcc8484 usb: renesas_usbhs: add suspend event support in gadget mode
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 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: Veeraiyan Chidambaram <veeraiyan.chidambaram@in.bosch.com>
Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Tested-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Link: https://lore.kernel.org/r/1568207756-22325-3-git-send-email-external.veeraiyan.c@de.adit-jv.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-10-04 14:16:54 +02:00
..
common.c usb: renesas_usbhs: use devm_platform_ioremap_resource() to simplify code 2019-10-04 14:09:40 +02:00
common.h usb: renesas_usbhs: add suspend event support in gadget mode 2019-10-04 14:16:54 +02:00
fifo.c USB: more changes for v5.3 merge window 2019-07-03 13:48:54 +02:00
fifo.h USB: renesas_usbhs: Remove redundant license text 2017-11-07 15:45:01 +01:00
Kconfig usb: remove redundant 'default n' from Kconfig-s 2019-05-21 10:06:22 +02:00
Makefile usb: renesas_usbhs: Add support for RZ/A2 2019-05-21 10:25:59 +02:00
mod_gadget.c usb: renesas_usbhs: add suspend event support in gadget mode 2019-10-04 14:16:54 +02:00
mod_host.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
mod.c usb: renesas_usbhs: enable DVSE interrupt 2019-10-04 14:16:54 +02:00
mod.h usb: renesas_usbhs: Avoid to write platform_data's value 2019-06-26 10:33:08 +08:00
pipe.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
pipe.h usb: renesas_usbhs: add usbhs_pipe_clear_without_sequence() function 2017-12-12 13:04:09 +02:00
rcar2.c usb: renesas_usbhs: Use renesas_usbhs_platform_info on of_device_id.data 2019-06-26 10:33:09 +08:00
rcar2.h usb: renesas_usbhs: Use renesas_usbhs_platform_info on of_device_id.data 2019-06-26 10:33:09 +08:00
rcar3.c usb: renesas_usbhs: Use renesas_usbhs_platform_info on of_device_id.data 2019-06-26 10:33:09 +08:00
rcar3.h usb: renesas_usbhs: Use renesas_usbhs_platform_info on of_device_id.data 2019-06-26 10:33:09 +08:00
rza2.c usb: renesas_usbhs: Use renesas_usbhs_platform_info on of_device_id.data 2019-06-26 10:33:09 +08:00
rza.c usb: renesas_usbhs: Use renesas_usbhs_platform_info on of_device_id.data 2019-06-26 10:33:09 +08:00
rza.h usb: renesas_usbhs: Use renesas_usbhs_platform_info on of_device_id.data 2019-06-26 10:33:09 +08:00