From: Bin Liu <b-liu@ti.com>
To: Paul Elder <paul.elder@ideasonboard.com>
Cc: laurent.pinchart@ideasonboard.com,
kieran.bingham@ideasonboard.com, gregkh@linuxfoundation.org,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
balbi@kernel.org, stern@rowland.harvard.edu, rogerq@ti.com
Subject: [4/6] usb: gadget: add functions to signal udc driver to delay status stage
Date: Thu, 11 Oct 2018 11:10:21 -0500 [thread overview]
Message-ID: <20181011161021.GB8763@uda0271908> (raw)
Hi,
On Tue, Oct 09, 2018 at 10:49:01PM -0400, Paul Elder wrote:
> A usb gadget function driver may or may not want to delay the status
> stage of a control OUT request. An instance it might want to is to
> asynchronously validate the data of a class-specific request.
>
> Add a function usb_ep_delay_status to allow function drivers to choose
> to delay the status stage in the request completion handler. The UDC
> should then check the usb_ep->delayed_status flag and act accordingly to
> delay the status stage.
>
> Also add a function usb_ep_send_response as a wrapper for
> usb_ep->ops->send_response, whose prototype is added as well. This
> function should be called by function drivers to tell the UDC what to
> reply in the status stage that it has requested to be delayed.
>
> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> drivers/usb/gadget/udc/core.c | 35 +++++++++++++++++++++++++++++++++++
> include/linux/usb/gadget.h | 11 +++++++++++
> 2 files changed, 46 insertions(+)
>
> diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c
> index af88b48c1cea..1ec5ce6b43cd 100644
> --- a/drivers/usb/gadget/udc/core.c
> +++ b/drivers/usb/gadget/udc/core.c
> @@ -443,6 +443,41 @@ void usb_ep_fifo_flush(struct usb_ep *ep)
> }
> EXPORT_SYMBOL_GPL(usb_ep_fifo_flush);
>
> +/**
> + * usb_ep_ep_delay_status - set delay_status flag
> + * @ep: the endpoint whose delay_status flag is being set
> + *
> + * This function instructs the UDC to delay the status stage of a control
> + * request. It can only be called from the request completion handler of a
> + * control request.
> + */
> +void usb_ep_delay_status(struct usb_ep *ep)
> +{
> + ep->delayed_status = true;
> +}
> +EXPORT_SYMBOL_GPL(usb_ep_delay_status);
Is usb_ep_set_delay_status() better? I thought it implies get/return
action if a verb is missing in the function name.
Regards,
-Bin.
WARNING: multiple messages have this Message-ID (diff)
From: Bin Liu <b-liu@ti.com>
To: Paul Elder <paul.elder@ideasonboard.com>
Cc: <laurent.pinchart@ideasonboard.com>,
<kieran.bingham@ideasonboard.com>, <gregkh@linuxfoundation.org>,
<linux-usb@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<balbi@kernel.org>, <stern@rowland.harvard.edu>, <rogerq@ti.com>
Subject: Re: [PATCH 4/6] usb: gadget: add functions to signal udc driver to delay status stage
Date: Thu, 11 Oct 2018 11:10:21 -0500 [thread overview]
Message-ID: <20181011161021.GB8763@uda0271908> (raw)
In-Reply-To: <20181010024903.1633-5-paul.elder@ideasonboard.com>
Hi,
On Tue, Oct 09, 2018 at 10:49:01PM -0400, Paul Elder wrote:
> A usb gadget function driver may or may not want to delay the status
> stage of a control OUT request. An instance it might want to is to
> asynchronously validate the data of a class-specific request.
>
> Add a function usb_ep_delay_status to allow function drivers to choose
> to delay the status stage in the request completion handler. The UDC
> should then check the usb_ep->delayed_status flag and act accordingly to
> delay the status stage.
>
> Also add a function usb_ep_send_response as a wrapper for
> usb_ep->ops->send_response, whose prototype is added as well. This
> function should be called by function drivers to tell the UDC what to
> reply in the status stage that it has requested to be delayed.
>
> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> drivers/usb/gadget/udc/core.c | 35 +++++++++++++++++++++++++++++++++++
> include/linux/usb/gadget.h | 11 +++++++++++
> 2 files changed, 46 insertions(+)
>
> diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c
> index af88b48c1cea..1ec5ce6b43cd 100644
> --- a/drivers/usb/gadget/udc/core.c
> +++ b/drivers/usb/gadget/udc/core.c
> @@ -443,6 +443,41 @@ void usb_ep_fifo_flush(struct usb_ep *ep)
> }
> EXPORT_SYMBOL_GPL(usb_ep_fifo_flush);
>
> +/**
> + * usb_ep_ep_delay_status - set delay_status flag
> + * @ep: the endpoint whose delay_status flag is being set
> + *
> + * This function instructs the UDC to delay the status stage of a control
> + * request. It can only be called from the request completion handler of a
> + * control request.
> + */
> +void usb_ep_delay_status(struct usb_ep *ep)
> +{
> + ep->delayed_status = true;
> +}
> +EXPORT_SYMBOL_GPL(usb_ep_delay_status);
Is usb_ep_set_delay_status() better? I thought it implies get/return
action if a verb is missing in the function name.
Regards,
-Bin.
next reply other threads:[~2018-10-11 16:10 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-11 16:10 Bin Liu [this message]
2018-10-11 16:10 ` [PATCH 4/6] usb: gadget: add functions to signal udc driver to delay status stage Bin Liu
-- strict thread matches above, loose matches on Subject: below --
2018-12-14 15:35 [4/6] " Alan Stern
2018-12-14 15:35 ` [PATCH 4/6] " Alan Stern
2018-12-14 3:47 [4/6] " Paul Elder
2018-12-14 3:47 ` [PATCH 4/6] " Paul Elder
2018-11-07 16:23 [4/6] " Alan Stern
2018-11-07 16:23 ` [PATCH 4/6] " Alan Stern
2018-11-07 7:00 [4/6] " Felipe Balbi
2018-11-07 7:00 ` [PATCH 4/6] " Felipe Balbi
2018-11-07 6:53 [4/6] " Felipe Balbi
2018-11-07 6:53 ` [PATCH 4/6] " Felipe Balbi
2018-11-06 15:01 [4/6] " Alan Stern
2018-11-06 15:01 ` [PATCH 4/6] " Alan Stern
2018-11-06 14:51 [4/6] " Alan Stern
2018-11-06 14:51 ` [PATCH 4/6] " Alan Stern
2018-11-06 11:24 [4/6] " Felipe Balbi
2018-11-06 11:24 ` [PATCH 4/6] " Felipe Balbi
2018-11-06 11:17 [4/6] " Felipe Balbi
2018-11-06 11:17 ` [PATCH 4/6] " Felipe Balbi
2018-11-02 19:46 [4/6] " Alan Stern
2018-11-02 19:46 ` [PATCH 4/6] " Alan Stern
2018-11-02 17:10 [4/6] " Laurent Pinchart
2018-11-02 17:10 ` [PATCH 4/6] " Laurent Pinchart
2018-11-02 16:18 [4/6] " Alan Stern
2018-11-02 16:18 ` [PATCH 4/6] " Alan Stern
2018-11-02 14:36 [4/6] " Laurent Pinchart
2018-11-02 14:36 ` [PATCH 4/6] " Laurent Pinchart
2018-11-02 12:44 [4/6] " Laurent Pinchart
2018-11-02 12:44 ` [PATCH 4/6] " Laurent Pinchart
2018-11-01 23:40 [4/6] " Paul Elder
2018-11-01 23:40 ` [PATCH 4/6] " Paul Elder
2018-10-31 23:26 [5/6] usb: musb: gadget: implement send_response Paul Elder
2018-10-31 23:26 ` [PATCH 5/6] " Paul Elder
2018-10-18 14:07 [4/6] usb: gadget: add functions to signal udc driver to delay status stage Alan Stern
2018-10-18 14:07 ` [PATCH 4/6] " Alan Stern
2018-10-18 12:46 [4/6] " Bin Liu
2018-10-18 12:46 ` [PATCH 4/6] " Bin Liu
2018-10-17 23:45 [4/6] " Laurent Pinchart
2018-10-17 23:45 ` [PATCH 4/6] " Laurent Pinchart
2018-10-11 16:07 [5/6] usb: musb: gadget: implement send_response Bin Liu
2018-10-11 16:07 ` [PATCH 5/6] " Bin Liu
2018-10-10 13:42 [1/6] usb: uvc: include videodev2.h in g_uvc.h Laurent Pinchart
2018-10-10 13:42 ` [PATCH 1/6] " Laurent Pinchart
2018-10-10 2:49 [6/6] usb: gadget: uvc: allow ioctl to send response in status stage Paul Elder
2018-10-10 2:49 ` [PATCH 6/6] " Paul Elder
2018-10-10 2:49 [5/6] usb: musb: gadget: implement send_response Paul Elder
2018-10-10 2:49 ` [PATCH 5/6] " Paul Elder
2018-10-10 2:49 [4/6] usb: gadget: add functions to signal udc driver to delay status stage Paul Elder
2018-10-10 2:49 ` [PATCH 4/6] " Paul Elder
2018-10-10 2:49 [3/6] usb: gadget: uvc: package setup and data for control OUT requests Paul Elder
2018-10-10 2:49 ` [PATCH 3/6] " Paul Elder
2018-10-10 2:48 [2/6] usb: gadget: uvc: enqueue usb request in setup handler for control OUT Paul Elder
2018-10-10 2:48 ` [PATCH 2/6] " Paul Elder
2018-10-10 2:48 [1/6] usb: uvc: include videodev2.h in g_uvc.h Paul Elder
2018-10-10 2:48 ` [PATCH 1/6] " Paul Elder
2018-10-10 2:48 [PATCH 0/6] usb: gadget: add mechanism to asynchronously validate data stage of ctrl out request Paul Elder
2018-10-10 12:57 ` Laurent Pinchart
2018-10-11 19:31 ` Bin Liu
2018-10-17 23:42 ` Laurent Pinchart
2018-10-18 12:40 ` Bin Liu
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=20181011161021.GB8763@uda0271908 \
--to=b-liu@ti.com \
--cc=balbi@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=kieran.bingham@ideasonboard.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=paul.elder@ideasonboard.com \
--cc=rogerq@ti.com \
--cc=stern@rowland.harvard.edu \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.