From: Ricardo Ribalda <ribalda@chromium.org>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Hans de Goede <hdegoede@redhat.com>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Hans Verkuil <hverkuil@xs4all.nl>
Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
Ricardo Ribalda <ribalda@chromium.org>
Subject: [PATCH 4/9] media: uvcvideo: Remove stream->is_streaming field
Date: Wed, 28 May 2025 17:57:59 +0000 [thread overview]
Message-ID: <20250528-uvc-grannular-invert-v1-4-d01581f9cc25@chromium.org> (raw)
In-Reply-To: <20250528-uvc-grannular-invert-v1-0-d01581f9cc25@chromium.org>
The is_streaming field is used by modular PM to know if the device is
currently streaming or not.
With the transition to vb2 and fop helpers, we can use vb2 functions for
the same functionality.
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
---
drivers/media/usb/uvc/uvc_v4l2.c | 12 +++++-------
drivers/media/usb/uvc/uvcvideo.h | 1 -
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c
index 49cc64dd7e2e737f431b9df9df68921d9c543751..65c708b3fb1066bf2e8f12ab7cdf119452ad40f9 100644
--- a/drivers/media/usb/uvc/uvc_v4l2.c
+++ b/drivers/media/usb/uvc/uvc_v4l2.c
@@ -617,7 +617,8 @@ static int uvc_v4l2_release(struct file *file)
uvc_ctrl_cleanup_fh(handle);
- if (handle->is_streaming)
+ if (stream->queue.queue.owner == file->private_data &&
+ uvc_queue_streaming(&stream->queue))
uvc_pm_put(stream->dev);
/* Release the file handle. */
@@ -684,7 +685,7 @@ static int uvc_ioctl_streamon(struct file *file, void *fh,
struct uvc_streaming *stream = handle->stream;
int ret;
- if (handle->is_streaming)
+ if (uvc_queue_streaming(&stream->queue))
return 0;
ret = uvc_pm_get(stream->dev);
@@ -697,8 +698,6 @@ static int uvc_ioctl_streamon(struct file *file, void *fh,
return ret;
}
- handle->is_streaming = true;
-
return 0;
}
@@ -707,16 +706,15 @@ static int uvc_ioctl_streamoff(struct file *file, void *fh,
{
struct uvc_fh *handle = fh;
struct uvc_streaming *stream = handle->stream;
+ bool was_streaming = uvc_queue_streaming(&stream->queue);
int ret;
ret = vb2_ioctl_streamoff(file, fh, type);
if (ret)
return ret;
- if (handle->is_streaming) {
- handle->is_streaming = false;
+ if (was_streaming)
uvc_pm_put(stream->dev);
- }
return 0;
}
diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h
index 3ddbf065a2cbae40ee48cb06f84ca8f0052990c4..f895f690f7cdc1af942d5f3a5f10e9dd1c956a35 100644
--- a/drivers/media/usb/uvc/uvcvideo.h
+++ b/drivers/media/usb/uvc/uvcvideo.h
@@ -626,7 +626,6 @@ struct uvc_fh {
struct uvc_video_chain *chain;
struct uvc_streaming *stream;
unsigned int pending_async_ctrls;
- bool is_streaming;
};
/* ------------------------------------------------------------------------
--
2.49.0.1266.g31b7d2e469-goog
next prev parent reply other threads:[~2025-05-28 17:58 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-28 17:57 [PATCH 0/9] media: uvcvideo: Invert granular PM logic + PM fix Ricardo Ribalda
2025-05-28 17:57 ` [PATCH 1/9] media: uvcvideo: Refactor uvc_queue_streamon Ricardo Ribalda
2025-05-28 17:57 ` [PATCH 2/9] media: uvcvideo: Refactor uvc_v4l2_compat_ioctl32 Ricardo Ribalda
2025-05-28 17:57 ` [PATCH 3/9] media: uvcvideo: Use vb2 ioctl and fop helpers Ricardo Ribalda
2025-05-28 17:57 ` Ricardo Ribalda [this message]
2025-05-28 17:58 ` [PATCH 5/9] media: uvcvideo: Turn on the camera if V4L2_EVENT_SUB_FL_SEND_INITIAL Ricardo Ribalda
2025-06-02 8:58 ` Hans de Goede
2025-05-28 17:58 ` [PATCH 6/9] media: uvcvideo: Do not enable camera during UVCIOC_CTRL_MAP32 Ricardo Ribalda
2025-06-02 9:46 ` Hans de Goede
2025-05-28 17:58 ` [PATCH 7/9] media: uvcvideo: uvc_v4l2_unlocked_ioctl: Invert PM logic Ricardo Ribalda
2025-06-02 9:58 ` Hans de Goede
2025-05-28 17:58 ` [PATCH 8/9] media: uvcvideo: Do not turn on the camera unless is needed Ricardo Ribalda
2025-05-28 17:58 ` [PATCH 9/9] media: uvcvideo: Support granular power saving for compat syscalls Ricardo Ribalda
2025-06-02 10:10 ` Hans de Goede
2025-06-02 10:27 ` Ricardo Ribalda
2025-06-02 11:07 ` Hans de Goede
2025-06-02 11:11 ` Ricardo Ribalda
2025-06-02 11:24 ` Hans de Goede
2025-06-02 11:40 ` Ricardo Ribalda
2025-06-02 11:43 ` Hans de Goede
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=20250528-uvc-grannular-invert-v1-4-d01581f9cc25@chromium.org \
--to=ribalda@chromium.org \
--cc=hdegoede@redhat.com \
--cc=hverkuil@xs4all.nl \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
/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).