* [PATCH 0/2] rcar-{csi2,vin}: Extend RAW8 support to all RGB layouts
@ 2020-09-15 23:01 Niklas Söderlund
2020-09-15 23:01 ` [PATCH 1/2] rcar-csi2: " Niklas Söderlund
2020-09-15 23:01 ` [PATCH 2/2] rcar-vin: " Niklas Söderlund
0 siblings, 2 replies; 5+ messages in thread
From: Niklas Söderlund @ 2020-09-15 23:01 UTC (permalink / raw)
To: linux-media; +Cc: linux-renesas-soc, Niklas Söderlund
Hello,
When adding support for V4L2_PIX_FMT_SRGGB8 it was overlooked that the
same solution could be used to support all RAW8 RGB layouts (SBGGR8,
SGBRG8, SGRBG8 and SRGGB8).
This series extends the R-Car VIN and CSI-2 drivers to support all RAW8
RGB layouts. The VIN driver changes are applicable to both Gen2 and Gen3
while the changes to the CSI-2 driver only effects Gen3.
Niklas Söderlund (2):
rcar-csi2: Extend RAW8 support to all RGB layouts
rcar-vin: Extend RAW8 support to all RGB layouts
drivers/media/platform/rcar-vin/rcar-csi2.c | 3 +++
drivers/media/platform/rcar-vin/rcar-dma.c | 28 ++++++++++++++++++++-
drivers/media/platform/rcar-vin/rcar-v4l2.c | 27 ++++++++++++++++++++
3 files changed, 57 insertions(+), 1 deletion(-)
--
2.28.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] rcar-csi2: Extend RAW8 support to all RGB layouts
2020-09-15 23:01 [PATCH 0/2] rcar-{csi2,vin}: Extend RAW8 support to all RGB layouts Niklas Söderlund
@ 2020-09-15 23:01 ` Niklas Söderlund
2020-09-19 10:16 ` Ulrich Hecht
2020-09-15 23:01 ` [PATCH 2/2] rcar-vin: " Niklas Söderlund
1 sibling, 1 reply; 5+ messages in thread
From: Niklas Söderlund @ 2020-09-15 23:01 UTC (permalink / raw)
To: linux-media; +Cc: linux-renesas-soc, Niklas Söderlund
Extend the list of supported formats to include all RGB layouts of RAW8.
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
---
drivers/media/platform/rcar-vin/rcar-csi2.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/media/platform/rcar-vin/rcar-csi2.c b/drivers/media/platform/rcar-vin/rcar-csi2.c
index 511cd4984777ad99..c21501ce8980000f 100644
--- a/drivers/media/platform/rcar-vin/rcar-csi2.c
+++ b/drivers/media/platform/rcar-vin/rcar-csi2.c
@@ -320,6 +320,9 @@ static const struct rcar_csi2_format rcar_csi2_formats[] = {
{ .code = MEDIA_BUS_FMT_YUYV8_1X16, .datatype = 0x1e, .bpp = 16 },
{ .code = MEDIA_BUS_FMT_UYVY8_2X8, .datatype = 0x1e, .bpp = 16 },
{ .code = MEDIA_BUS_FMT_YUYV10_2X10, .datatype = 0x1e, .bpp = 20 },
+ { .code = MEDIA_BUS_FMT_SBGGR8_1X8, .datatype = 0x2a, .bpp = 8 },
+ { .code = MEDIA_BUS_FMT_SGBRG8_1X8, .datatype = 0x2a, .bpp = 8 },
+ { .code = MEDIA_BUS_FMT_SGRBG8_1X8, .datatype = 0x2a, .bpp = 8 },
{ .code = MEDIA_BUS_FMT_SRGGB8_1X8, .datatype = 0x2a, .bpp = 8 },
};
--
2.28.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] rcar-vin: Extend RAW8 support to all RGB layouts
2020-09-15 23:01 [PATCH 0/2] rcar-{csi2,vin}: Extend RAW8 support to all RGB layouts Niklas Söderlund
2020-09-15 23:01 ` [PATCH 1/2] rcar-csi2: " Niklas Söderlund
@ 2020-09-15 23:01 ` Niklas Söderlund
2020-09-19 10:17 ` Ulrich Hecht
1 sibling, 1 reply; 5+ messages in thread
From: Niklas Söderlund @ 2020-09-15 23:01 UTC (permalink / raw)
To: linux-media; +Cc: linux-renesas-soc, Niklas Söderlund
Extend the list of supported formats to include all RGB layouts of RAW8.
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
---
drivers/media/platform/rcar-vin/rcar-dma.c | 28 ++++++++++++++++++++-
drivers/media/platform/rcar-vin/rcar-v4l2.c | 27 ++++++++++++++++++++
2 files changed, 54 insertions(+), 1 deletion(-)
diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c
index a5dbb90c5210bae7..7f8997536aba6f0b 100644
--- a/drivers/media/platform/rcar-vin/rcar-dma.c
+++ b/drivers/media/platform/rcar-vin/rcar-dma.c
@@ -598,8 +598,16 @@ void rvin_crop_scale_comp(struct rvin_dev *vin)
/* For RAW8 format bpp is 1, but the hardware process RAW8
* format in 2 pixel unit hence configure VNIS_REG as stride / 2.
*/
- if (vin->format.pixelformat == V4L2_PIX_FMT_SRGGB8)
+ switch (vin->format.pixelformat) {
+ case MEDIA_BUS_FMT_SBGGR8_1X8:
+ case MEDIA_BUS_FMT_SGBRG8_1X8:
+ case MEDIA_BUS_FMT_SGRBG8_1X8:
+ case MEDIA_BUS_FMT_SRGGB8_1X8:
stride /= 2;
+ break;
+ default:
+ break;
+ }
rvin_write(vin, stride, VNIS_REG);
}
@@ -683,6 +691,9 @@ static int rvin_setup(struct rvin_dev *vin)
input_is_yuv = true;
break;
+ case MEDIA_BUS_FMT_SBGGR8_1X8:
+ case MEDIA_BUS_FMT_SGBRG8_1X8:
+ case MEDIA_BUS_FMT_SGRBG8_1X8:
case MEDIA_BUS_FMT_SRGGB8_1X8:
vnmc |= VNMC_INF_RAW8;
break;
@@ -747,6 +758,9 @@ static int rvin_setup(struct rvin_dev *vin)
case V4L2_PIX_FMT_ABGR32:
dmr = VNDMR_A8BIT(vin->alpha) | VNDMR_EXRGB | VNDMR_DTMD_ARGB;
break;
+ case V4L2_PIX_FMT_SBGGR8:
+ case V4L2_PIX_FMT_SGBRG8:
+ case V4L2_PIX_FMT_SGRBG8:
case V4L2_PIX_FMT_SRGGB8:
dmr = 0;
break;
@@ -1124,6 +1138,18 @@ static int rvin_mc_validate_format(struct rvin_dev *vin, struct v4l2_subdev *sd,
case MEDIA_BUS_FMT_UYVY10_2X10:
case MEDIA_BUS_FMT_RGB888_1X24:
break;
+ case MEDIA_BUS_FMT_SBGGR8_1X8:
+ if (vin->format.pixelformat != V4L2_PIX_FMT_SBGGR8)
+ return -EPIPE;
+ break;
+ case MEDIA_BUS_FMT_SGBRG8_1X8:
+ if (vin->format.pixelformat != V4L2_PIX_FMT_SGBRG8)
+ return -EPIPE;
+ break;
+ case MEDIA_BUS_FMT_SGRBG8_1X8:
+ if (vin->format.pixelformat != V4L2_PIX_FMT_SGRBG8)
+ return -EPIPE;
+ break;
case MEDIA_BUS_FMT_SRGGB8_1X8:
if (vin->format.pixelformat != V4L2_PIX_FMT_SRGGB8)
return -EPIPE;
diff --git a/drivers/media/platform/rcar-vin/rcar-v4l2.c b/drivers/media/platform/rcar-vin/rcar-v4l2.c
index 0e066bba747e0b73..4071d9bd554ab88f 100644
--- a/drivers/media/platform/rcar-vin/rcar-v4l2.c
+++ b/drivers/media/platform/rcar-vin/rcar-v4l2.c
@@ -66,6 +66,18 @@ static const struct rvin_video_format rvin_formats[] = {
.fourcc = V4L2_PIX_FMT_ABGR32,
.bpp = 4,
},
+ {
+ .fourcc = V4L2_PIX_FMT_SBGGR8,
+ .bpp = 1,
+ },
+ {
+ .fourcc = V4L2_PIX_FMT_SGBRG8,
+ .bpp = 1,
+ },
+ {
+ .fourcc = V4L2_PIX_FMT_SGRBG8,
+ .bpp = 1,
+ },
{
.fourcc = V4L2_PIX_FMT_SRGGB8,
.bpp = 1,
@@ -366,6 +378,21 @@ static int rvin_enum_fmt_vid_cap(struct file *file, void *priv,
case MEDIA_BUS_FMT_UYVY10_2X10:
case MEDIA_BUS_FMT_RGB888_1X24:
break;
+ case MEDIA_BUS_FMT_SBGGR8_1X8:
+ if (f->index)
+ return -EINVAL;
+ f->pixelformat = V4L2_PIX_FMT_SBGGR8;
+ return 0;
+ case MEDIA_BUS_FMT_SGBRG8_1X8:
+ if (f->index)
+ return -EINVAL;
+ f->pixelformat = V4L2_PIX_FMT_SGBRG8;
+ return 0;
+ case MEDIA_BUS_FMT_SGRBG8_1X8:
+ if (f->index)
+ return -EINVAL;
+ f->pixelformat = V4L2_PIX_FMT_SGRBG8;
+ return 0;
case MEDIA_BUS_FMT_SRGGB8_1X8:
if (f->index)
return -EINVAL;
--
2.28.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] rcar-csi2: Extend RAW8 support to all RGB layouts
2020-09-15 23:01 ` [PATCH 1/2] rcar-csi2: " Niklas Söderlund
@ 2020-09-19 10:16 ` Ulrich Hecht
0 siblings, 0 replies; 5+ messages in thread
From: Ulrich Hecht @ 2020-09-19 10:16 UTC (permalink / raw)
To: Niklas Söderlund, linux-media; +Cc: linux-renesas-soc
> On 09/16/2020 1:01 AM Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> wrote:
>
>
> Extend the list of supported formats to include all RGB layouts of RAW8.
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> ---
> drivers/media/platform/rcar-vin/rcar-csi2.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/media/platform/rcar-vin/rcar-csi2.c b/drivers/media/platform/rcar-vin/rcar-csi2.c
> index 511cd4984777ad99..c21501ce8980000f 100644
> --- a/drivers/media/platform/rcar-vin/rcar-csi2.c
> +++ b/drivers/media/platform/rcar-vin/rcar-csi2.c
> @@ -320,6 +320,9 @@ static const struct rcar_csi2_format rcar_csi2_formats[] = {
> { .code = MEDIA_BUS_FMT_YUYV8_1X16, .datatype = 0x1e, .bpp = 16 },
> { .code = MEDIA_BUS_FMT_UYVY8_2X8, .datatype = 0x1e, .bpp = 16 },
> { .code = MEDIA_BUS_FMT_YUYV10_2X10, .datatype = 0x1e, .bpp = 20 },
> + { .code = MEDIA_BUS_FMT_SBGGR8_1X8, .datatype = 0x2a, .bpp = 8 },
> + { .code = MEDIA_BUS_FMT_SGBRG8_1X8, .datatype = 0x2a, .bpp = 8 },
> + { .code = MEDIA_BUS_FMT_SGRBG8_1X8, .datatype = 0x2a, .bpp = 8 },
> { .code = MEDIA_BUS_FMT_SRGGB8_1X8, .datatype = 0x2a, .bpp = 8 },
> };
>
> --
> 2.28.0
Reviewed-by: Ulrich Hecht <uli+renesas@fpond.eu>
CU
Uli
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] rcar-vin: Extend RAW8 support to all RGB layouts
2020-09-15 23:01 ` [PATCH 2/2] rcar-vin: " Niklas Söderlund
@ 2020-09-19 10:17 ` Ulrich Hecht
0 siblings, 0 replies; 5+ messages in thread
From: Ulrich Hecht @ 2020-09-19 10:17 UTC (permalink / raw)
To: Niklas Söderlund, linux-media; +Cc: linux-renesas-soc
> On 09/16/2020 1:01 AM Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> wrote:
>
>
> Extend the list of supported formats to include all RGB layouts of RAW8.
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> ---
> drivers/media/platform/rcar-vin/rcar-dma.c | 28 ++++++++++++++++++++-
> drivers/media/platform/rcar-vin/rcar-v4l2.c | 27 ++++++++++++++++++++
> 2 files changed, 54 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c
> index a5dbb90c5210bae7..7f8997536aba6f0b 100644
> --- a/drivers/media/platform/rcar-vin/rcar-dma.c
> +++ b/drivers/media/platform/rcar-vin/rcar-dma.c
> @@ -598,8 +598,16 @@ void rvin_crop_scale_comp(struct rvin_dev *vin)
> /* For RAW8 format bpp is 1, but the hardware process RAW8
> * format in 2 pixel unit hence configure VNIS_REG as stride / 2.
> */
> - if (vin->format.pixelformat == V4L2_PIX_FMT_SRGGB8)
> + switch (vin->format.pixelformat) {
> + case MEDIA_BUS_FMT_SBGGR8_1X8:
> + case MEDIA_BUS_FMT_SGBRG8_1X8:
> + case MEDIA_BUS_FMT_SGRBG8_1X8:
> + case MEDIA_BUS_FMT_SRGGB8_1X8:
> stride /= 2;
> + break;
> + default:
> + break;
> + }
>
> rvin_write(vin, stride, VNIS_REG);
> }
> @@ -683,6 +691,9 @@ static int rvin_setup(struct rvin_dev *vin)
>
> input_is_yuv = true;
> break;
> + case MEDIA_BUS_FMT_SBGGR8_1X8:
> + case MEDIA_BUS_FMT_SGBRG8_1X8:
> + case MEDIA_BUS_FMT_SGRBG8_1X8:
> case MEDIA_BUS_FMT_SRGGB8_1X8:
> vnmc |= VNMC_INF_RAW8;
> break;
> @@ -747,6 +758,9 @@ static int rvin_setup(struct rvin_dev *vin)
> case V4L2_PIX_FMT_ABGR32:
> dmr = VNDMR_A8BIT(vin->alpha) | VNDMR_EXRGB | VNDMR_DTMD_ARGB;
> break;
> + case V4L2_PIX_FMT_SBGGR8:
> + case V4L2_PIX_FMT_SGBRG8:
> + case V4L2_PIX_FMT_SGRBG8:
> case V4L2_PIX_FMT_SRGGB8:
> dmr = 0;
> break;
> @@ -1124,6 +1138,18 @@ static int rvin_mc_validate_format(struct rvin_dev *vin, struct v4l2_subdev *sd,
> case MEDIA_BUS_FMT_UYVY10_2X10:
> case MEDIA_BUS_FMT_RGB888_1X24:
> break;
> + case MEDIA_BUS_FMT_SBGGR8_1X8:
> + if (vin->format.pixelformat != V4L2_PIX_FMT_SBGGR8)
> + return -EPIPE;
> + break;
> + case MEDIA_BUS_FMT_SGBRG8_1X8:
> + if (vin->format.pixelformat != V4L2_PIX_FMT_SGBRG8)
> + return -EPIPE;
> + break;
> + case MEDIA_BUS_FMT_SGRBG8_1X8:
> + if (vin->format.pixelformat != V4L2_PIX_FMT_SGRBG8)
> + return -EPIPE;
> + break;
> case MEDIA_BUS_FMT_SRGGB8_1X8:
> if (vin->format.pixelformat != V4L2_PIX_FMT_SRGGB8)
> return -EPIPE;
> diff --git a/drivers/media/platform/rcar-vin/rcar-v4l2.c b/drivers/media/platform/rcar-vin/rcar-v4l2.c
> index 0e066bba747e0b73..4071d9bd554ab88f 100644
> --- a/drivers/media/platform/rcar-vin/rcar-v4l2.c
> +++ b/drivers/media/platform/rcar-vin/rcar-v4l2.c
> @@ -66,6 +66,18 @@ static const struct rvin_video_format rvin_formats[] = {
> .fourcc = V4L2_PIX_FMT_ABGR32,
> .bpp = 4,
> },
> + {
> + .fourcc = V4L2_PIX_FMT_SBGGR8,
> + .bpp = 1,
> + },
> + {
> + .fourcc = V4L2_PIX_FMT_SGBRG8,
> + .bpp = 1,
> + },
> + {
> + .fourcc = V4L2_PIX_FMT_SGRBG8,
> + .bpp = 1,
> + },
> {
> .fourcc = V4L2_PIX_FMT_SRGGB8,
> .bpp = 1,
> @@ -366,6 +378,21 @@ static int rvin_enum_fmt_vid_cap(struct file *file, void *priv,
> case MEDIA_BUS_FMT_UYVY10_2X10:
> case MEDIA_BUS_FMT_RGB888_1X24:
> break;
> + case MEDIA_BUS_FMT_SBGGR8_1X8:
> + if (f->index)
> + return -EINVAL;
> + f->pixelformat = V4L2_PIX_FMT_SBGGR8;
> + return 0;
> + case MEDIA_BUS_FMT_SGBRG8_1X8:
> + if (f->index)
> + return -EINVAL;
> + f->pixelformat = V4L2_PIX_FMT_SGBRG8;
> + return 0;
> + case MEDIA_BUS_FMT_SGRBG8_1X8:
> + if (f->index)
> + return -EINVAL;
> + f->pixelformat = V4L2_PIX_FMT_SGRBG8;
> + return 0;
> case MEDIA_BUS_FMT_SRGGB8_1X8:
> if (f->index)
> return -EINVAL;
> --
> 2.28.0
Reviewed-by: Ulrich Hecht <uli+renesas@fpond.eu>
CU
Uli
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-09-19 10:17 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-15 23:01 [PATCH 0/2] rcar-{csi2,vin}: Extend RAW8 support to all RGB layouts Niklas Söderlund
2020-09-15 23:01 ` [PATCH 1/2] rcar-csi2: " Niklas Söderlund
2020-09-19 10:16 ` Ulrich Hecht
2020-09-15 23:01 ` [PATCH 2/2] rcar-vin: " Niklas Söderlund
2020-09-19 10:17 ` Ulrich Hecht
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).