From: "Niklas Söderlund" <niklas.soderlund+renesas@ragnatech.se>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Hans Verkuil <hverkuil@xs4all.nl>,
linux-media@vger.kernel.org
Cc: linux-renesas-soc@vger.kernel.org,
tomoharu.fukawa.eb@renesas.com,
"Kieran Bingham" <kieran.bingham@ideasonboard.com>,
"Niklas Söderlund" <niklas.soderlund+renesas@ragnatech.se>
Subject: [PATCH v11 26/32] rcar-vin: add chsel information to rvin_info
Date: Fri, 2 Mar 2018 02:57:45 +0100 [thread overview]
Message-ID: <20180302015751.25596-27-niklas.soderlund+renesas@ragnatech.se> (raw)
In-Reply-To: <20180302015751.25596-1-niklas.soderlund+renesas@ragnatech.se>
Each Gen3 SoC has a limited set of predefined routing possibilities for
which CSI-2 device and channel can be routed to which VIN instance.
Prepare to store this information in the struct rvin_info.
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
---
drivers/media/platform/rcar-vin/rcar-vin.h | 42 ++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/drivers/media/platform/rcar-vin/rcar-vin.h b/drivers/media/platform/rcar-vin/rcar-vin.h
index 07cde9e1ab01ca51..6150a883e17f8479 100644
--- a/drivers/media/platform/rcar-vin/rcar-vin.h
+++ b/drivers/media/platform/rcar-vin/rcar-vin.h
@@ -43,6 +43,14 @@ enum model_id {
RCAR_GEN3,
};
+enum rvin_csi_id {
+ RVIN_CSI20,
+ RVIN_CSI21,
+ RVIN_CSI40,
+ RVIN_CSI41,
+ RVIN_CSI_MAX,
+};
+
/**
* STOPPED - No operation in progress
* RUNNING - Operation in progress have buffers
@@ -81,12 +89,45 @@ struct rvin_graph_entity {
unsigned int sink_pad;
};
+/**
+ * struct rvin_group_route - describes a route from a channel of a
+ * CSI-2 receiver to a VIN
+ *
+ * @vin: VIN ID.
+ * @csi: CSI-2 receiver ID.
+ * @chan: Output channel of the CSI-2 receiver.
+ * @mask: Bitmask of the different CHSEL register values that
+ * allows for a route from @csi + @chan to @vin.
+ *
+ * .. note::
+ * Each R-Car CSI-2 receiver has four output channels facing the VIN
+ * devices, each channel can carry one CSI-2 Virtual Channel (VC).
+ * There are no correlation between channel number and CSI-2 VC. It's
+ * up to the CSI-2 receiver driver to configure which VC is output
+ * on which channel, the VIN devices only care about output channels.
+ *
+ * There are in some cases multiple CHSEL register settings which would
+ * allow for the same route from @csi + @chan to @vin. For example
+ * on R-Car H3 both the CHSEL values 0 and 3 allows for a route from
+ * CSI40/VC0 to VIN0. All possible CHSEL values for a route need to be
+ * recorded as a bitmask in @mask, in this example bit 0 and 3 should
+ * be set.
+ */
+struct rvin_group_route {
+ unsigned int vin;
+ enum rvin_csi_id csi;
+ unsigned char chan;
+ unsigned int mask;
+};
+
/**
* struct rvin_info - Information about the particular VIN implementation
* @model: VIN model
* @use_mc: use media controller instead of controlling subdevice
* @max_width: max input width the VIN supports
* @max_height: max input height the VIN supports
+ * @routes: list of possible routes from the CSI-2 recivers to
+ * all VINs. The list mush be NULL terminated.
*/
struct rvin_info {
enum model_id model;
@@ -94,6 +135,7 @@ struct rvin_info {
unsigned int max_width;
unsigned int max_height;
+ const struct rvin_group_route *routes;
};
/**
--
2.16.2
next prev parent reply other threads:[~2018-03-02 1:59 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-02 1:57 [PATCH v11 00/32] rcar-vin: Add Gen3 with media controller Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 01/32] dt-bindings: media: rcar_vin: Reverse SoC part number list Niklas Söderlund
2018-03-02 9:27 ` Laurent Pinchart
2018-03-02 1:57 ` [PATCH v11 02/32] dt-bindings: media: rcar_vin: add device tree support for r8a774[35] Niklas Söderlund
2018-03-02 9:27 ` Laurent Pinchart
2018-03-02 1:57 ` [PATCH v11 03/32] rcar-vin: add Gen3 devicetree bindings documentation Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 04/32] rcar-vin: rename poorly named initialize and cleanup functions Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 05/32] rcar-vin: unregister video device on driver removal Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 06/32] rcar-vin: move subdevice handling to async callbacks Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 07/32] rcar-vin: move model information to own struct Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 08/32] rcar-vin: move max width and height information to chip information Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 09/32] rcar-vin: move functions regarding scaling Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 10/32] rcar-vin: all Gen2 boards can scale simplify logic Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 11/32] rcar-vin: set a default field to fallback on Niklas Söderlund
2018-03-02 9:29 ` Laurent Pinchart
2018-03-02 1:57 ` [PATCH v11 12/32] rcar-vin: fix handling of single field frames (top, bottom and alternate fields) Niklas Söderlund
2018-03-02 10:48 ` Laurent Pinchart
2018-03-03 16:23 ` Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 13/32] rcar-vin: update bytesperline and sizeimage calculation Niklas Söderlund
2018-03-02 9:44 ` Laurent Pinchart
2018-03-02 1:57 ` [PATCH v11 14/32] rcar-vin: align pixelformat check Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 15/32] rcar-vin: break out format alignment and checking Niklas Söderlund
2018-03-02 9:53 ` Laurent Pinchart
2018-03-03 16:11 ` Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 16/32] rcar-vin: read subdevice format for crop only when needed Niklas Söderlund
2018-03-02 11:06 ` Laurent Pinchart
2018-03-03 17:04 ` Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 17/32] rcar-vin: move media bus configuration to struct rvin_info Niklas Söderlund
2018-03-02 11:26 ` Laurent Pinchart
2018-03-03 13:57 ` Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 18/32] rcar-vin: enable Gen3 hardware configuration Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 19/32] rcar-vin: add function to manipulate Gen3 chsel value Niklas Söderlund
2018-03-02 11:31 ` Laurent Pinchart
2018-03-03 14:03 ` Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 20/32] rcar-vin: add flag to switch to media controller mode Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 21/32] rcar-vin: use different v4l2 operations in " Niklas Söderlund
2018-03-02 11:39 ` Laurent Pinchart
2018-03-02 1:57 ` [PATCH v11 22/32] rcar-vin: force default colorspace for media centric mode Niklas Söderlund
2018-03-02 9:59 ` Laurent Pinchart
2018-03-03 15:19 ` Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 23/32] rcar-vin: prepare for media controller mode initialization Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 24/32] rcar-vin: add group allocator functions Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 25/32] rcar-vin: change name of video device Niklas Söderlund
2018-03-02 1:57 ` Niklas Söderlund [this message]
2018-03-02 11:43 ` [PATCH v11 26/32] rcar-vin: add chsel information to rvin_info Laurent Pinchart
2018-03-02 1:57 ` [PATCH v11 27/32] rcar-vin: parse Gen3 OF and setup media graph Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 28/32] rcar-vin: add link notify for Gen3 Niklas Söderlund
2018-03-02 12:00 ` Laurent Pinchart
2018-03-03 15:49 ` Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 29/32] rcar-vin: extend {start,stop}_streaming to work with media controller Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 30/32] rcar-vin: enable support for r8a7795 Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 31/32] rcar-vin: enable support for r8a7796 Niklas Söderlund
2018-03-02 1:57 ` [PATCH v11 32/32] rcar-vin: enable support for r8a77970 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=20180302015751.25596-27-niklas.soderlund+renesas@ragnatech.se \
--to=niklas.soderlund+renesas@ragnatech.se \
--cc=hverkuil@xs4all.nl \
--cc=kieran.bingham@ideasonboard.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=tomoharu.fukawa.eb@renesas.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox