[PATCH v4 0/7] media: uvcvideo: Invert granular PM logic + PM fix

Ricardo Ribalda posted 7 patches 3 months, 1 week ago
drivers/media/usb/uvc/uvc_ctrl.c     |  10 +-
drivers/media/usb/uvc/uvc_driver.c   |  37 +---
drivers/media/usb/uvc/uvc_metadata.c |   8 +-
drivers/media/usb/uvc/uvc_queue.c    | 199 +++++---------------
drivers/media/usb/uvc/uvc_v4l2.c     | 345 +++++------------------------------
drivers/media/usb/uvc/uvcvideo.h     |  37 +---
drivers/media/v4l2-core/v4l2-ioctl.c |   5 +-
include/media/v4l2-ioctl.h           |   1 +
8 files changed, 112 insertions(+), 530 deletions(-)
[PATCH v4 0/7] media: uvcvideo: Invert granular PM logic + PM fix
Posted by Ricardo Ribalda 3 months, 1 week ago
It makes more sense to have a list of the ioctls that need power than
the other way around. This patchset takes care of this.

It also fixes one error in the PM logic introduced in a recent patchset.

To support CI I have included patches that are in uvc/for-next but not
in media-committer:
media: uvcvideo: Remove stream->is_streaming field
media: uvcvideo: Split uvc_stop_streaming()
media: uvcvideo: Handle locks in uvc_queue_return_buffers
media: uvcvideo: Use vb2 ioctl and fop helpers
Do not review them again.

Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
---
Changes in v4:
- CTRL_MAP DO need the device powered. Thanks Laurent
- CodeStyle
- use EXPORT_SYMBOL_GPL
- Link to v3: https://lore.kernel.org/r/20250630-uvc-grannular-invert-v3-0-abd5cb5c45b7@chromium.org

Changes in v3:
- Rebase
- Merge Invert PM patch with add support for compat ioctls
- Export different core function
- Inline the pm_ioctl patch
- Fix typo in comment
- Link to v2: https://lore.kernel.org/r/20250602-uvc-grannular-invert-v2-0-c871934ad880@chromium.org

Changes in v2. Thanks HdG:
- Rebase fop
- CodeStyle
- Refactor SEND_INITIAL to avoid lis_del()
- Squash "invert PM logic" and "unless is needed"
- Link to v1: https://lore.kernel.org/r/20250528-uvc-grannular-invert-v1-0-d01581f9cc25@chromium.org

---
Hans Verkuil (1):
      media: uvcvideo: Use vb2 ioctl and fop helpers

Ricardo Ribalda (6):
      media: uvcvideo: Handle locks in uvc_queue_return_buffers
      media: uvcvideo: Split uvc_stop_streaming()
      media: uvcvideo: Remove stream->is_streaming field
      media: uvcvideo: Turn on the camera if V4L2_EVENT_SUB_FL_SEND_INITIAL
      media: core: export v4l2_translate_cmd
      media: uvcvideo: uvc_v4l2_unlocked_ioctl: Invert PM logic

 drivers/media/usb/uvc/uvc_ctrl.c     |  10 +-
 drivers/media/usb/uvc/uvc_driver.c   |  37 +---
 drivers/media/usb/uvc/uvc_metadata.c |   8 +-
 drivers/media/usb/uvc/uvc_queue.c    | 199 +++++---------------
 drivers/media/usb/uvc/uvc_v4l2.c     | 345 +++++------------------------------
 drivers/media/usb/uvc/uvcvideo.h     |  37 +---
 drivers/media/v4l2-core/v4l2-ioctl.c |   5 +-
 include/media/v4l2-ioctl.h           |   1 +
 8 files changed, 112 insertions(+), 530 deletions(-)
---
base-commit: 35392e855abf7d02ad3b061cbc75c7c7c37f0577
change-id: 20250528-uvc-grannular-invert-19ad34c59391

Best regards,
-- 
Ricardo Ribalda <ribalda@chromium.org>
Re: [PATCH v4 0/7] media: uvcvideo: Invert granular PM logic + PM fix
Posted by Hans de Goede 3 months ago
Hi,

On 1-Jul-25 08:45, Ricardo Ribalda wrote:
> It makes more sense to have a list of the ioctls that need power than
> the other way around. This patchset takes care of this.
> 
> It also fixes one error in the PM logic introduced in a recent patchset.
> 
> To support CI I have included patches that are in uvc/for-next but not
> in media-committer:
> media: uvcvideo: Remove stream->is_streaming field
> media: uvcvideo: Split uvc_stop_streaming()
> media: uvcvideo: Handle locks in uvc_queue_return_buffers
> media: uvcvideo: Use vb2 ioctl and fop helpers
> Do not review them again.
> 
> Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>

Thank you for the new version.

I've pushed patches 5-7 to uvc/for-next now (1-4 are
already there).

I plan to send a pull-request with these changes this Thursday.

Regards,

Hans


> ---
> Changes in v4:
> - CTRL_MAP DO need the device powered. Thanks Laurent
> - CodeStyle
> - use EXPORT_SYMBOL_GPL
> - Link to v3: https://lore.kernel.org/r/20250630-uvc-grannular-invert-v3-0-abd5cb5c45b7@chromium.org
> 
> Changes in v3:
> - Rebase
> - Merge Invert PM patch with add support for compat ioctls
> - Export different core function
> - Inline the pm_ioctl patch
> - Fix typo in comment
> - Link to v2: https://lore.kernel.org/r/20250602-uvc-grannular-invert-v2-0-c871934ad880@chromium.org
> 
> Changes in v2. Thanks HdG:
> - Rebase fop
> - CodeStyle
> - Refactor SEND_INITIAL to avoid lis_del()
> - Squash "invert PM logic" and "unless is needed"
> - Link to v1: https://lore.kernel.org/r/20250528-uvc-grannular-invert-v1-0-d01581f9cc25@chromium.org
> 
> ---
> Hans Verkuil (1):
>       media: uvcvideo: Use vb2 ioctl and fop helpers
> 
> Ricardo Ribalda (6):
>       media: uvcvideo: Handle locks in uvc_queue_return_buffers
>       media: uvcvideo: Split uvc_stop_streaming()
>       media: uvcvideo: Remove stream->is_streaming field
>       media: uvcvideo: Turn on the camera if V4L2_EVENT_SUB_FL_SEND_INITIAL
>       media: core: export v4l2_translate_cmd
>       media: uvcvideo: uvc_v4l2_unlocked_ioctl: Invert PM logic
> 
>  drivers/media/usb/uvc/uvc_ctrl.c     |  10 +-
>  drivers/media/usb/uvc/uvc_driver.c   |  37 +---
>  drivers/media/usb/uvc/uvc_metadata.c |   8 +-
>  drivers/media/usb/uvc/uvc_queue.c    | 199 +++++---------------
>  drivers/media/usb/uvc/uvc_v4l2.c     | 345 +++++------------------------------
>  drivers/media/usb/uvc/uvcvideo.h     |  37 +---
>  drivers/media/v4l2-core/v4l2-ioctl.c |   5 +-
>  include/media/v4l2-ioctl.h           |   1 +
>  8 files changed, 112 insertions(+), 530 deletions(-)
> ---
> base-commit: 35392e855abf7d02ad3b061cbc75c7c7c37f0577
> change-id: 20250528-uvc-grannular-invert-19ad34c59391
> 
> Best regards,