From: "Niklas Söderlund" <niklas.soderlund+renesas@ragnatech.se>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Sakari Ailus <sakari.ailus@linux.intel.com>,
linux-media@vger.kernel.org
Cc: linux-renesas-soc@vger.kernel.org,
"Niklas Söderlund" <niklas.soderlund+renesas@ragnatech.se>
Subject: [PATCH 00/30] v4l: add support for multiplexed streams
Date: Thu, 23 Aug 2018 15:25:14 +0200 [thread overview]
Message-ID: <20180823132544.521-1-niklas.soderlund+renesas@ragnatech.se> (raw)
Hi all,
This series adds support for multiplexed streams within a media device
link. The use-case addressed in this series covers CSI-2 Virtual
Channels on the Renesas R-Car Gen3 platforms. The v4l2 changes have been
a joint effort between Sakari and Laurent and floating around for some
time [1].
I have added driver support for the devices used on the Renesas Gen3
platforms, a ADV7482 connected to the R-Car CSI-2 receiver. With these
changes I can control which of the analog inputs of the ADV7482 the
video source is captured from and on which CSI-2 virtual channel the
video is transmitted on to the R-Car CSI-2 receiver.
The series adds two new subdev IOCTLs [GS]_ROUTING which allows
user-space to get and set routes inside a subdevice. I have added RFC
support for these to v4l-utils [2] which can be used to test this
series, example:
Check the internal routing of the adv748x csi-2 transmitter:
v4l2-ctl -d /dev/v4l-subdev24 --get-routing
0/0 -> 1/0 [ENABLED]
0/0 -> 1/1 []
0/0 -> 1/2 []
0/0 -> 1/3 []
Select that video should be outputed on VC 2 and check the result:
$ v4l2-ctl -d /dev/v4l-subdev24 --set-routing '0/0 -> 1/2 [1]'
$ v4l2-ctl -d /dev/v4l-subdev24 --get-routing
0/0 -> 1/0 []
0/0 -> 1/1 []
0/0 -> 1/2 [ENABLED]
0/0 -> 1/3 []
This series is tested on R-Car M3-N and for your testing needs this
series is available at
git://git.ragnatech.se/linux v4l2/mux
Thanks.
1. git://linuxtv.org/sailus/media_tree.git vc
2. git://git.ragnatech.se/v4l-utils routing
Laurent Pinchart (4):
media: entity: Add has_route entity operation
media: entity: Add media_has_route() function
media: entity: Use routing information during graph traversal
v4l: subdev: Add [GS]_ROUTING subdev ioctls and operations
Niklas Söderlund (7):
adv748x: csi2: add translation from pixelcode to CSI-2 datatype
adv748x: csi2: only allow formats on sink pads
adv748x: csi2: describe the multiplexed stream
adv748x: csi2: add internal routing configuration
adv748x: afe: add routing support
rcar-csi2: use frame description information to configure CSI-2 bus
rcar-csi2: expose the subdevice internal routing
Sakari Ailus (19):
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
v4l: 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: Swap pads if route is checked from source to sink
media: entity: Skip link validation for pads to which there is no
route to
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: entity: Look for indirect routes
v4l: subdev: compat: Implement handling for VIDIOC_SUBDEV_[GS]_ROUTING
v4l: subdev: Take routing information into account in link validation
v4l: subdev: Improve link format validation debug messages
v4l: mc: Add an S_ROUTING helper function for power state changes
v4l: Add bus type to frame descriptors
v4l: Add CSI-2 bus configuration to frame descriptors
v4l: Add stream to frame descriptor
Documentation/media/kapi/mc-core.rst | 15 +-
drivers/media/i2c/adv748x/adv748x-afe.c | 65 ++++
drivers/media/i2c/adv748x/adv748x-csi2.c | 124 +++++++-
drivers/media/i2c/adv748x/adv748x.h | 1 +
drivers/media/media-entity.c | 252 ++++++++++------
drivers/media/pci/intel/ipu3/ipu3-cio2.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-csi2.c | 188 +++++++++---
drivers/media/platform/rcar-vin/rcar-dma.c | 8 +-
.../media/platform/s3c-camif/camif-capture.c | 6 +-
drivers/media/platform/vimc/vimc-capture.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 +-
drivers/media/usb/au0828/au0828-core.c | 4 +-
drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 75 +++++
drivers/media/v4l2-core/v4l2-ioctl.c | 20 +-
drivers/media/v4l2-core/v4l2-mc.c | 76 +++--
drivers/media/v4l2-core/v4l2-subdev.c | 285 ++++++++++++++++--
.../staging/media/davinci_vpfe/vpfe_video.c | 47 +--
drivers/staging/media/imx/imx-media-utils.c | 8 +-
drivers/staging/media/omap4iss/iss.c | 2 +-
drivers/staging/media/omap4iss/iss_video.c | 38 +--
drivers/staging/media/omap4iss/iss_video.h | 2 +-
include/media/media-entity.h | 122 +++++---
include/media/v4l2-mc.h | 22 ++
include/media/v4l2-subdev.h | 34 +++
include/uapi/linux/v4l2-subdev.h | 40 +++
36 files changed, 1239 insertions(+), 330 deletions(-)
--
2.18.0
next reply other threads:[~2018-08-23 16:57 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-23 13:25 Niklas Söderlund [this message]
2018-08-23 13:25 ` [PATCH 01/30] media: entity: Use pad as a starting point for graph walk Niklas Söderlund
2018-08-23 13:25 ` [PATCH 02/30] media: entity: Use pads instead of entities in the media graph walk stack Niklas Söderlund
2018-08-23 13:25 ` [PATCH 03/30] media: entity: Walk the graph based on pads Niklas Söderlund
2018-08-23 13:25 ` [PATCH 04/30] v4l: mc: Start walk from a specific pad in use count calculation Niklas Söderlund
2018-08-23 13:25 ` [PATCH 05/30] media: entity: Move the pipeline from entity to pads Niklas Söderlund
2018-08-23 13:25 ` [PATCH 06/30] media: entity: Use pad as the starting point for a pipeline Niklas Söderlund
2018-08-23 13:25 ` [PATCH 07/30] media: entity: Add has_route entity operation Niklas Söderlund
2018-09-27 12:58 ` jacopo mondi
2018-08-23 13:25 ` [PATCH 08/30] media: entity: Add media_has_route() function Niklas Söderlund
2018-08-23 13:25 ` [PATCH 09/30] media: entity: Swap pads if route is checked from source to sink Niklas Söderlund
2018-08-23 13:25 ` [PATCH 10/30] media: entity: Use routing information during graph traversal Niklas Söderlund
2018-08-23 13:25 ` [PATCH 11/30] media: entity: Skip link validation for pads to which there is no route to Niklas Söderlund
2018-08-23 13:25 ` [PATCH 12/30] media: entity: Add an iterator helper for connected pads Niklas Söderlund
2018-08-23 13:25 ` [PATCH 13/30] media: entity: Add only connected pads to the pipeline Niklas Söderlund
2018-08-23 13:25 ` [PATCH 14/30] media: entity: Add debug information in graph walk route check Niklas Söderlund
2018-08-23 13:25 ` [PATCH 15/30] media: entity: Look for indirect routes Niklas Söderlund
2018-09-28 16:58 ` jacopo mondi
2018-08-23 13:25 ` [PATCH 16/30] v4l: subdev: Add [GS]_ROUTING subdev ioctls and operations Niklas Söderlund
2018-08-23 13:25 ` [PATCH 17/30] v4l: subdev: compat: Implement handling for VIDIOC_SUBDEV_[GS]_ROUTING Niklas Söderlund
2018-08-23 13:25 ` [PATCH 18/30] v4l: subdev: Take routing information into account in link validation Niklas Söderlund
2018-08-23 13:25 ` [PATCH 19/30] v4l: subdev: Improve link format validation debug messages Niklas Söderlund
2018-08-23 13:25 ` [PATCH 20/30] v4l: mc: Add an S_ROUTING helper function for power state changes Niklas Söderlund
2018-08-23 13:25 ` [PATCH 21/30] v4l: Add bus type to frame descriptors Niklas Söderlund
2018-11-02 12:27 ` Kieran Bingham
2018-11-02 13:15 ` Sakari Ailus
2018-11-02 13:15 ` Sakari Ailus
2018-11-02 13:35 ` Kieran Bingham
2018-11-02 14:18 ` Sakari Ailus
2018-11-02 14:18 ` Sakari Ailus
2018-11-02 14:40 ` Kieran Bingham
2018-08-23 13:25 ` [PATCH 22/30] v4l: Add CSI-2 bus configuration " Niklas Söderlund
2018-08-23 13:25 ` [PATCH 23/30] v4l: Add stream to frame descriptor Niklas Söderlund
2018-08-23 13:25 ` [PATCH 24/30] adv748x: csi2: add translation from pixelcode to CSI-2 datatype Niklas Söderlund
2018-08-23 13:25 ` [PATCH 25/30] adv748x: csi2: only allow formats on sink pads Niklas Söderlund
2018-08-23 13:25 ` [PATCH 26/30] adv748x: csi2: describe the multiplexed stream Niklas Söderlund
2018-08-23 13:25 ` [PATCH 27/30] adv748x: csi2: add internal routing configuration Niklas Söderlund
2018-08-23 13:25 ` [PATCH 28/30] adv748x: afe: add routing support Niklas Söderlund
2018-08-23 13:25 ` [PATCH 29/30] rcar-csi2: use frame description information to configure CSI-2 bus Niklas Söderlund
2018-09-24 14:39 ` Kieran Bingham
2018-09-26 14:23 ` Niklas Söderlund
2018-09-26 14:23 ` Niklas Söderlund
2018-08-23 13:25 ` [PATCH 30/30] rcar-csi2: expose the subdevice internal routing Niklas Söderlund
2018-08-27 11:50 ` [PATCH 00/30] v4l: add support for multiplexed streams Sakari Ailus
2018-08-27 11:50 ` Sakari Ailus
2018-08-27 13:11 ` Niklas Söderlund
2018-08-27 13:11 ` Niklas Söderlund
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=20180823132544.521-1-niklas.soderlund+renesas@ragnatech.se \
--to=niklas.soderlund+renesas@ragnatech.se \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=sakari.ailus@linux.intel.com \
/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.