From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
To: Veeraiyan Chidambaram <external.veeraiyan.c@de.adit-jv.com>
Cc: "linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
Andrew Gabbasov <andrew_gabbasov@mentor.com>,
"REE erosca@DE.ADIT-JV.COM" <erosca@DE.ADIT-JV.COM>,
Veeraiyan Chidambaram <veeraiyan.chidambaram@in.bosch.com>,
Felipe Balbi <balbi@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Linux-Renesas <linux-renesas-soc@vger.kernel.org>
Subject: RE: [PATCH] usb: gadget: udc: renesas_usb3: add suspend event support
Date: Wed, 4 Sep 2019 12:08:39 +0000 [thread overview]
Message-ID: <TYAPR01MB454435E0431173D3C7F76D65D8B80@TYAPR01MB4544.jpnprd01.prod.outlook.com> (raw)
In-Reply-To: <1567589047-29816-1-git-send-email-external.veeraiyan.c@de.adit-jv.com>
Hi Veeraiyan,
Thank you very much for the patch! I didn't realize that using USB_INT_1_B2_SPND
can resolve such a behavior. I'd like to apply this patch into upstream, but
I have some comments below.
> From: Veeraiyan Chidambaram, Sent: Wednesday, September 4, 2019 6:24 PM
>
> In RCAR3 USB 3.0 Function, if host is detached an interrupt
I'd like to replace "RCAR3" with "R-Car Gen3".
> 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
s/R-Car-H3/R-Car H3/
> 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. If phone is connected again it will enumerate
IIUC, reverse role switch will happen by a user space application.
Is it correct?
> properly and will become visible in the output of 'lsusb'.
>
> Signed-off-by: Veeraiyan Chidambaram <veeraiyan.chidambaram@in.bosch.com>
> ---
> drivers/usb/gadget/udc/renesas_usb3.c | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc/renesas_usb3.c
> index eaa3339b30a2..4ec703e302f5 100644
> --- a/drivers/usb/gadget/udc/renesas_usb3.c
> +++ b/drivers/usb/gadget/udc/renesas_usb3.c
> @@ -767,6 +767,19 @@ static void usb3_irq_epc_int_1_resume(struct renesas_usb3 *usb3)
> usb3_transition_to_default_state(usb3, false);
> }
>
> +static void usb3_irq_epc_int_1_suspend(struct renesas_usb3 *usb3)
> +{
> + usb3_disable_irq_1(usb3, USB_INT_1_B2_SPND);
> +
> + if (usb3->driver &&
> + usb3->driver->suspend &&
> + usb3->gadget.speed != USB_SPEED_UNKNOWN &&
> + usb3->gadget.state != USB_STATE_NOTATTACHED) {
> + usb3->driver->suspend(&usb3->gadget);
> + usb_gadget_set_state(&usb3->gadget, USB_STATE_SUSPENDED);
I'd like to change the conditions like below if it still works on your environment.
This is because I'd like to set the gadget state if other gadget driver except f_fs
is used anyway. After that, a user also can recognize the state by using
/sys/devices/platform/soc/ee020000.usb/udc/ee020000.usb/state even if the use
doesn't use f_fs driver.
if (usb3->gadget.speed != USB_SPEED_UNKNOWN &&
usb3->gadget.state != USB_STATE_NOTATTACHED) {
if (usb3->driver && usb3->driver->suspend)
usb3->driver->suspend(&usb3->gadget);
usb_gadget_set_state(&usb3->gadget, USB_STATE_SUSPENDED);
}
Best regards,
Yoshihiro Shimoda
next prev parent reply other threads:[~2019-09-04 12:08 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-04 9:24 [PATCH] usb: gadget: udc: renesas_usb3: add suspend event support Veeraiyan Chidambaram
2019-09-04 12:08 ` Yoshihiro Shimoda [this message]
2019-09-04 14:31 ` veeraiyan chidambaram
2019-09-04 14:48 ` [PATCH v2] " Veeraiyan Chidambaram
2019-09-05 2:09 ` Yoshihiro Shimoda
2019-09-05 8:52 ` veeraiyan chidambaram
2019-09-05 10:26 ` veeraiyan chidambaram
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=TYAPR01MB454435E0431173D3C7F76D65D8B80@TYAPR01MB4544.jpnprd01.prod.outlook.com \
--to=yoshihiro.shimoda.uh@renesas.com \
--cc=andrew_gabbasov@mentor.com \
--cc=balbi@kernel.org \
--cc=erosca@DE.ADIT-JV.COM \
--cc=external.veeraiyan.c@de.adit-jv.com \
--cc=geert+renesas@glider.be \
--cc=gregkh@linuxfoundation.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=veeraiyan.chidambaram@in.bosch.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).