exynos-linux-stable/drivers/usb/renesas_usbhs
Veeraiyan Chidambaram cb65ba75a5 usb: renesas_usbhs: add suspend event support in gadget mode
[ Upstream commit 39abcc84846bbc0538f13c190b6a9c7e36890cd2 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-01-04 13:39:14 +01:00
..
common.c usb: renesas_usbhs: fix usbhsc_resume() for !USBHSF_RUNTIME_PWCTRL 2017-07-27 15:08:01 -07:00
common.h usb: renesas_usbhs: add suspend event support in gadget mode 2020-01-04 13:39:14 +01:00
fifo.c usb: renesas_usbhs: gadget: Fix usb_ep_set_{halt,wedge}() behavior 2019-10-17 13:42:39 -07:00
fifo.h usb: renesas_usbhs: gadget: Fix usb_ep_set_{halt,wedge}() behavior 2019-10-17 13:42:39 -07:00
Kconfig usb: renesas_usbhs: Use ARCH_RENESAS 2016-02-20 20:21:53 -08:00
Makefile usb: renesas_usbhs: add R-Car Gen3 power control 2016-03-04 15:14:28 +02:00
mod.c usb: renesas_usbhs: fix clearing the {BRDY,BEMP}STS condition 2016-09-05 13:39:23 +03:00
mod.h
mod_gadget.c usb: renesas_usbhs: add suspend event support in gadget mode 2020-01-04 13:39:14 +01:00
mod_host.c usb: renesas_usbhs: mod_host: don't print on ENOMEM 2016-08-30 19:17:39 +02:00
pipe.c usb: renesas_usbhs: gadget: Fix usb_ep_set_{halt,wedge}() behavior 2019-10-17 13:42:39 -07:00
pipe.h usb: renesas_usbhs: gadget: Fix usb_ep_set_{halt,wedge}() behavior 2019-10-17 13:42:39 -07:00
rcar2.c usb: renesas_usbhs: Remove unneeded #include <linux/platform_data/gpio-rcar.h> 2015-10-20 16:03:36 +02:00
rcar2.h usb: renesas_usbhs: add R-Car Gen. 2 init and power control 2014-07-16 10:06:32 -05:00
rcar3.c usb: renesas_usbhs: Fix UGCTRL2 value for R-Car Gen3 2017-08-16 13:43:21 -07:00
rcar3.h usb: renesas_usbhs: add R-Car Gen3 power control 2016-03-04 15:14:28 +02:00