| From: |
| Tomi Valkeinen <tomi.valkeinen-AT-ideasonboard.com> |
| To: |
| linux-media-AT-vger.kernel.org, sakari.ailus-AT-linux.intel.com, Jacopo Mondi <jacopo+renesas-AT-jmondi.org>, Laurent Pinchart <laurent.pinchart-AT-ideasonboard.com>, niklas.soderlund+renesas-AT-ragnatech.se, Mauro Carvalho Chehab <mchehab-AT-kernel.org>, Hans Verkuil <hverkuil-cisco-AT-xs4all.nl>, Pratyush Yadav <p.yadav-AT-ti.com> |
| Subject: |
| [PATCH v11 00/36] v4l: routing and streams support |
| Date: |
| Tue, 01 Mar 2022 18:11:20 +0200 |
| Message-ID: |
| <20220301161156.1119557-1-tomi.valkeinen@ideasonboard.com> |
| Cc: |
| Tomi Valkeinen <tomi.valkeinen-AT-ideasonboard.com> |
| Archive-link: |
| Article |
Hi,
Here's v11 of the streams series (used to be "multiplexed streams").
v10 can be found from:
https://lore.kernel.org/all/20211130141536.891878-1-tomi....
This series is based on the v5 of the subdev active state:
https://lore.kernel.org/all/20220301105548.305191-1-tomi....
My work branch with additional drivers can be found from:
git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git streams/work-v11
And there's also the v4l-utils series to add support to v4l2-ctl and
media-ctl:
https://lore.kernel.org/all/20211130141815.892354-1-tomi....
The main changes compared to v10:
- Rebased on the v5 of the active state series, which has different
locking system than what we had in v10 of this series.
- Moved code around in v4l2-subdev.[ch] so that the functions are inside
the correct ifdefs
- A better route validation helper v4l2_subdev_routing_validate
- Subdev enable/disable_streams ops (see "media: v4l2-subdev: Add subdev
.(enable|disable)_streams() operations")
There are still some comments I haven't addressed from the v10 review,
and I'd like to change the route flags a bit. We've also thought about
adding more support for drivers that don't need multiple streams but
would still use the new streams APIs to simplify the drivers.
However, as the v10 is already quite old, and I posted the v5 for the
active state, I thought it's better to also post the current version of
the streams series.
Tomi
Jacopo Mondi (3):
media: entity: Add iterator helper for entity pads
media: Documentation: Add GS_ROUTING documentation
media: subdev: Add for_each_active_route() macro
Laurent Pinchart (9):
media: entity: Add has_route entity operation
media: entity: Add media_entity_has_route() function
media: entity: Use routing information during graph traversal
media: subdev: Add [GS]_ROUTING subdev ioctls and operations
media: subdev: Fallback to pad config in v4l2_subdev_get_fmt()
media: subdev: add v4l2_subdev_routing_validate() helper
media: v4l2-subdev: Add v4l2_subdev_state_xlate_streams() helper
media: v4l2-subdev: Add subdev .(enable|disable)_streams() operations
media: v4l2-subdev: Add v4l2_subdev_s_stream_helper() function
Sakari Ailus (13):
media: entity: Use pad as a starting point for graph walk
media: entity: Use pads instead of entities in the media graph walk
stack
media: entity: Walk the graph based on pads
media: mc: Start walk from a specific pad in use count calculation
media: entity: Move the pipeline from entity to pads
media: entity: Use pad as the starting point for a pipeline
media: entity: Skip link validation for pads to which there is no
route
media: entity: Add an iterator helper for connected pads
media: entity: Add only connected pads to the pipeline
media: entity: Add debug information in graph walk route check
media: Add bus type to frame descriptors
media: Add CSI-2 bus configuration to frame descriptors
media: Add stream to frame descriptor
Tomi Valkeinen (11):
media: subdev: increase V4L2_FRAME_DESC_ENTRY_MAX to 8
media: add V4L2_SUBDEV_FL_MULTIPLEXED
media: add V4L2_SUBDEV_CAP_MPLEXED
media: subdev: add v4l2_subdev_has_route()
media: subdev: add v4l2_subdev_set_routing helper()
media: Documentation: add multiplexed streams documentation
media: subdev: add stream based configuration
media: subdev: use streams in v4l2_subdev_link_validate()
media: subdev: add "opposite" stream helper funcs
media: subdev: add v4l2_subdev_get_fmt() helper function
media: subdev: add v4l2_subdev_set_routing_with_fmt() helper
.clang-format | 1 +
Documentation/driver-api/media/mc-core.rst | 18 +-
.../driver-api/media/v4l2-subdev.rst | 8 +
.../userspace-api/media/v4l/dev-subdev.rst | 167 +++
.../userspace-api/media/v4l/user-func.rst | 1 +
.../v4l/vidioc-subdev-enum-frame-interval.rst | 5 +-
.../v4l/vidioc-subdev-enum-frame-size.rst | 5 +-
.../v4l/vidioc-subdev-enum-mbus-code.rst | 5 +-
.../media/v4l/vidioc-subdev-g-crop.rst | 5 +-
.../media/v4l/vidioc-subdev-g-fmt.rst | 5 +-
.../v4l/vidioc-subdev-g-frame-interval.rst | 5 +-
.../media/v4l/vidioc-subdev-g-routing.rst | 150 +++
.../media/v4l/vidioc-subdev-g-selection.rst | 5 +-
drivers/media/mc/mc-device.c | 13 +-
drivers/media/mc/mc-entity.c | 270 +++--
drivers/media/pci/intel/ipu3/ipu3-cio2-main.c | 6 +-
.../media/platform/exynos4-is/fimc-capture.c | 8 +-
.../platform/exynos4-is/fimc-isp-video.c | 8 +-
drivers/media/platform/exynos4-is/fimc-isp.c | 2 +-
drivers/media/platform/exynos4-is/fimc-lite.c | 10 +-
drivers/media/platform/exynos4-is/media-dev.c | 20 +-
drivers/media/platform/omap3isp/isp.c | 2 +-
drivers/media/platform/omap3isp/ispvideo.c | 25 +-
drivers/media/platform/omap3isp/ispvideo.h | 2 +-
.../media/platform/qcom/camss/camss-video.c | 6 +-
drivers/media/platform/rcar-vin/rcar-core.c | 16 +-
drivers/media/platform/rcar-vin/rcar-dma.c | 8 +-
.../platform/rockchip/rkisp1/rkisp1-capture.c | 6 +-
.../media/platform/s3c-camif/camif-capture.c | 6 +-
drivers/media/platform/stm32/stm32-dcmi.c | 6 +-
.../platform/sunxi/sun4i-csi/sun4i_dma.c | 6 +-
.../platform/sunxi/sun6i-csi/sun6i_video.c | 6 +-
drivers/media/platform/ti-vpe/cal-video.c | 6 +-
drivers/media/platform/vsp1/vsp1_video.c | 18 +-
drivers/media/platform/xilinx/xilinx-dma.c | 20 +-
drivers/media/platform/xilinx/xilinx-dma.h | 2 +-
.../media/test-drivers/vimc/vimc-capture.c | 6 +-
drivers/media/usb/au0828/au0828-core.c | 8 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 25 +-
drivers/media/v4l2-core/v4l2-mc.c | 43 +-
drivers/media/v4l2-core/v4l2-subdev.c | 1002 ++++++++++++++++-
drivers/staging/media/imx/imx-media-utils.c | 8 +-
drivers/staging/media/ipu3/ipu3-v4l2.c | 6 +-
drivers/staging/media/omap4iss/iss.c | 2 +-
drivers/staging/media/omap4iss/iss_video.c | 40 +-
drivers/staging/media/omap4iss/iss_video.h | 2 +-
drivers/staging/media/tegra-video/tegra210.c | 6 +-
include/media/media-entity.h | 125 +-
include/media/v4l2-subdev.h | 403 ++++++-
include/uapi/linux/v4l2-subdev.h | 88 +-
50 files changed, 2273 insertions(+), 343 deletions(-)
create mode 100644 Documentation/userspace-api/media/v4l/vidioc-subdev-g-routing.rst
--
2.25.1