From: paul.elder@ideasonboard.com
To: Michael Grzeschik <m.grzeschik@pengutronix.de>
Cc: linux-usb@vger.kernel.org, balbi@kernel.org,
laurent.pinchart@ideasonboard.com, kernel@pengutronix.de,
caleb.connolly@ideasonboard.com
Subject: Re: [PATCH 4/7] usb: gadget: uvc: only schedule stream in streaming state
Date: Fri, 1 Oct 2021 11:54:59 +0900 [thread overview]
Message-ID: <20211001025459.GD3032473@pyrite.rasen.tech> (raw)
In-Reply-To: <20210930102717.15720-5-m.grzeschik@pengutronix.de>
Hi Michael,
On Thu, Sep 30, 2021 at 12:27:14PM +0200, Michael Grzeschik wrote:
> This patch ensures that the video pump thread will only be scheduled if
> the uvc is really in streaming state. This way the worker will not have
> to run on an empty queue.
>
> Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
> ---
> drivers/usb/gadget/function/uvc_v4l2.c | 3 ++-
> drivers/usb/gadget/function/uvc_video.c | 4 +++-
> 2 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/gadget/function/uvc_v4l2.c b/drivers/usb/gadget/function/uvc_v4l2.c
> index 4ca89eab61590..67922b1355e69 100644
> --- a/drivers/usb/gadget/function/uvc_v4l2.c
> +++ b/drivers/usb/gadget/function/uvc_v4l2.c
> @@ -169,7 +169,8 @@ uvc_v4l2_qbuf(struct file *file, void *fh, struct v4l2_buffer *b)
> if (ret < 0)
> return ret;
>
> - schedule_work(&video->pump);
> + if (uvc->state == UVC_STATE_STREAMING)
> + schedule_work(&video->pump);
>
> return ret;
> }
> diff --git a/drivers/usb/gadget/function/uvc_video.c b/drivers/usb/gadget/function/uvc_video.c
> index cdfd3726a86ae..ccee35177411d 100644
> --- a/drivers/usb/gadget/function/uvc_video.c
> +++ b/drivers/usb/gadget/function/uvc_video.c
> @@ -215,6 +215,7 @@ uvc_video_complete(struct usb_ep *ep, struct usb_request *req)
> struct uvc_request *ureq = req->context;
> struct uvc_video *video = ureq->video;
> struct uvc_video_queue *queue = &video->queue;
> + struct uvc_device *uvc = video->uvc;
> unsigned long flags;
>
> switch (req->status) {
> @@ -237,7 +238,8 @@ uvc_video_complete(struct usb_ep *ep, struct usb_request *req)
> list_add_tail(&req->list, &video->req_free);
> spin_unlock_irqrestore(&video->req_lock, flags);
>
> - schedule_work(&video->pump);
> + if (uvc->state == UVC_STATE_STREAMING)
> + schedule_work(&video->pump);
> }
>
> static int
> --
> 2.30.2
>
next prev parent reply other threads:[~2021-10-01 2:55 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-30 10:27 [PATCH 0/7] usb: gadget: uvc: smaller fixes for stability Michael Grzeschik
2021-09-30 10:27 ` [PATCH 1/7] usb: gadget: uvc: consistently use define for headerlen Michael Grzeschik
2021-10-01 2:36 ` paul.elder
2021-10-04 22:08 ` Laurent Pinchart
2021-09-30 10:27 ` [PATCH 2/7] usb: gadget: uvc: rename function to be more consistent Michael Grzeschik
2021-10-01 2:41 ` paul.elder
2021-10-04 22:13 ` Laurent Pinchart
2021-09-30 10:27 ` [PATCH 3/7] usb: gadget: uvc: test if ep->desc is valid on ep_queue Michael Grzeschik
2021-10-01 2:47 ` paul.elder
2021-10-04 22:15 ` Laurent Pinchart
2021-09-30 10:27 ` [PATCH 4/7] usb: gadget: uvc: only schedule stream in streaming state Michael Grzeschik
2021-10-01 2:54 ` paul.elder [this message]
2021-10-04 22:21 ` Laurent Pinchart
2021-09-30 10:27 ` [PATCH 5/7] usb: gadget: uvc: only pump video data if necessary Michael Grzeschik
2021-10-01 3:03 ` paul.elder
2021-10-04 22:29 ` Laurent Pinchart
2021-10-17 21:11 ` Michael Grzeschik
2021-09-30 10:27 ` [PATCH 6/7] usb: gadget: uvc: ensure the vdev is unset Michael Grzeschik
2021-10-01 3:07 ` paul.elder
2021-10-04 22:31 ` Laurent Pinchart
2021-09-30 10:27 ` [PATCH 7/7] usb: gadget: udc: ensure the gadget is still available Michael Grzeschik
2021-10-04 22:41 ` Laurent Pinchart
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=20211001025459.GD3032473@pyrite.rasen.tech \
--to=paul.elder@ideasonboard.com \
--cc=balbi@kernel.org \
--cc=caleb.connolly@ideasonboard.com \
--cc=kernel@pengutronix.de \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-usb@vger.kernel.org \
--cc=m.grzeschik@pengutronix.de \
/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.