linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] media: rcar-vin: Add support to select data pins for YCbCr422-8bit input
@ 2020-08-03 16:02 Lad Prabhakar
  2020-08-03 18:06 ` Niklas
  0 siblings, 1 reply; 19+ messages in thread
From: Lad Prabhakar @ 2020-08-03 16:02 UTC (permalink / raw)
  To: Niklas, Mauro Carvalho Chehab, linux-media
  Cc: linux-renesas-soc, linux-kernel, Biju Das, Prabhakar, Lad Prabhakar

Select the data pins for YCbCr422-8bit input format depending on
bus_width and data_shift passed as part of DT.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
---
Changes for v2:
* Dropped DT binding documentation patch
* Select the data pins depending on bus-width and data-shift

v1 -
https://patchwork.kernel.org/project/linux-renesas-soc/list/?series=323799
---
 drivers/media/platform/rcar-vin/rcar-core.c | 5 +++++
 drivers/media/platform/rcar-vin/rcar-dma.c  | 7 +++++++
 drivers/media/platform/rcar-vin/rcar-vin.h  | 5 +++++
 3 files changed, 17 insertions(+)

diff --git a/drivers/media/platform/rcar-vin/rcar-core.c b/drivers/media/platform/rcar-vin/rcar-core.c
index 7440c8965d27..55005d86928d 100644
--- a/drivers/media/platform/rcar-vin/rcar-core.c
+++ b/drivers/media/platform/rcar-vin/rcar-core.c
@@ -624,6 +624,11 @@ static int rvin_parallel_parse_v4l2(struct device *dev,
 	vin->parallel = rvpe;
 	vin->parallel->mbus_type = vep->bus_type;
 
+	/* select VInDATA[15:8] pins for YCbCr422-8bit format */
+	if (vep->bus.parallel.bus_width == BUS_WIDTH_8 &&
+	    vep->bus.parallel.data_shift == DATA_SHIFT_8)
+		vin->parallel->ycbcr_8b_g = true;
+
 	switch (vin->parallel->mbus_type) {
 	case V4L2_MBUS_PARALLEL:
 		vin_dbg(vin, "Found PARALLEL media bus\n");
diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c
index 1a30cd036371..5db483877d65 100644
--- a/drivers/media/platform/rcar-vin/rcar-dma.c
+++ b/drivers/media/platform/rcar-vin/rcar-dma.c
@@ -127,6 +127,8 @@
 #define VNDMR2_FTEV		(1 << 17)
 #define VNDMR2_VLV(n)		((n & 0xf) << 12)
 
+#define VNDMR2_YDS		BIT(22)
+
 /* Video n CSI2 Interface Mode Register (Gen3) */
 #define VNCSI_IFMD_DES1		(1 << 26)
 #define VNCSI_IFMD_DES0		(1 << 25)
@@ -698,6 +700,11 @@ static int rvin_setup(struct rvin_dev *vin)
 		/* Data Enable Polarity Select */
 		if (vin->parallel->mbus_flags & V4L2_MBUS_DATA_ENABLE_LOW)
 			dmr2 |= VNDMR2_CES;
+
+		if (vin->parallel->ycbcr_8b_g && vin->mbus_code == MEDIA_BUS_FMT_UYVY8_2X8)
+			dmr2 |= VNDMR2_YDS;
+		else
+			dmr2 &= ~VNDMR2_YDS;
 	}
 
 	/*
diff --git a/drivers/media/platform/rcar-vin/rcar-vin.h b/drivers/media/platform/rcar-vin/rcar-vin.h
index c19d077ce1cb..3126fee9a89b 100644
--- a/drivers/media/platform/rcar-vin/rcar-vin.h
+++ b/drivers/media/platform/rcar-vin/rcar-vin.h
@@ -87,6 +87,9 @@ struct rvin_video_format {
 	u8 bpp;
 };
 
+#define BUS_WIDTH_8	8
+#define DATA_SHIFT_8	8
+
 /**
  * struct rvin_parallel_entity - Parallel video input endpoint descriptor
  * @asd:	sub-device descriptor for async framework
@@ -95,6 +98,7 @@ struct rvin_video_format {
  * @mbus_flags:	media bus configuration flags
  * @source_pad:	source pad of remote subdevice
  * @sink_pad:	sink pad of remote subdevice
+ * @ycbcr_8b_g:	select data pins for YCbCr422-8bit
  *
  */
 struct rvin_parallel_entity {
@@ -106,6 +110,7 @@ struct rvin_parallel_entity {
 
 	unsigned int source_pad;
 	unsigned int sink_pad;
+	bool ycbcr_8b_g;
 };
 
 /**
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2020-09-06 19:01 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-03 16:02 [PATCH v2] media: rcar-vin: Add support to select data pins for YCbCr422-8bit input Lad Prabhakar
2020-08-03 18:06 ` Niklas
2020-08-03 19:15   ` Geert Uytterhoeven
2020-08-03 19:17   ` Lad, Prabhakar
2020-08-03 19:28     ` Niklas
2020-08-04  8:04       ` Lad, Prabhakar
2020-08-04 10:05         ` Niklas
2020-08-04 10:17           ` Geert Uytterhoeven
2020-08-04 15:12             ` Lad, Prabhakar
2020-08-04 15:32               ` Geert Uytterhoeven
2020-08-05  8:00                 ` Lad, Prabhakar
2020-08-05  8:43                   ` Geert Uytterhoeven
2020-08-05 12:34                     ` Laurent Pinchart
2020-08-07 20:20                       ` Lad, Prabhakar
2020-08-11 11:41                         ` Laurent Pinchart
2020-08-11 17:40                           ` Lad, Prabhakar
2020-09-03 14:54                             ` Lad, Prabhakar
2020-09-04  2:16                             ` Laurent Pinchart
2020-09-06 19:00                               ` Lad, Prabhakar

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).