[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200512222648.GD2542285@oden.dyn.berto.se>
Date: Wed, 13 May 2020 00:26:48 +0200
From: Niklas <niklas.soderlund@...natech.se>
To: Lad Prabhakar <prabhakar.mahadev-lad.rj@...renesas.com>
Cc: Mauro Carvalho Chehab <mchehab@...nel.org>,
linux-media@...r.kernel.org, linux-renesas-soc@...r.kernel.org,
linux-kernel@...r.kernel.org,
Prabhakar <prabhakar.csengg@...il.com>
Subject: Re: [PATCH v4 1/3] media: rcar-vin: Invalidate pipeline if
conversion is not possible on input formats
Hi Lad,
Thanks for your work.
On 2020-04-15 11:19:06 +0100, Lad Prabhakar wrote:
> Up until now the VIN was capable to convert any of its supported input mbus
> formats to any of it's supported output pixel formats. With the addition of
> RAW formats this is no longer true.
Add blank line.
> This patch invalidates the pipeline by adding a check if given vin input
> format can be converted to supported output pixel format.
>
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@...renesas.com>
I like this patch I think there is a typo bellow and patch [1] have been
merged in the media-tree which unfortunately addes one more thing to do
in this patch. In rvin_enum_fmt_vid_cap() there is a TODO noted for what
needs to be done. In imagine the fix is simple and the end result would
look something like this.
switch (f->mbus_code) {
case 0:
case MEDIA_BUS_FMT_YUYV8_1X16:
case MEDIA_BUS_FMT_UYVY8_1X16:
case MEDIA_BUS_FMT_UYVY8_2X8:
case MEDIA_BUS_FMT_UYVY10_2X10:
case MEDIA_BUS_FMT_RGB888_1X24:
break;
case MEDIA_BUS_FMT_SRGGB8_1X8:
if (f->index)
return -EINVAL;
f->pixelformat = V4L2_PIX_FMT_SRGGB8;
return 0;
case default:
return -EINVAL;
}
1. d5f74a1eff9aef3b ("media: rcar-vin: Make use of V4L2_CAP_IO_MC")
> ---
> drivers/media/platform/rcar-vin/rcar-dma.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c
> index 1a30cd036371..48bd9bfc3948 100644
> --- a/drivers/media/platform/rcar-vin/rcar-dma.c
> +++ b/drivers/media/platform/rcar-vin/rcar-dma.c
> @@ -1109,13 +1109,17 @@ static int rvin_mc_validate_format(struct rvin_dev *vin, struct v4l2_subdev *sd,
> case MEDIA_BUS_FMT_UYVY8_1X16:
> case MEDIA_BUS_FMT_UYVY8_2X8:
> case MEDIA_BUS_FMT_UYVY10_2X10:
> + break;
> case MEDIA_BUS_FMT_RGB888_1X24:
> - vin->mbus_code = fmt.format.code;
This is not right is it?
Should you not add a case for MEDIA_BUS_FMT_SRGGB8_1X8 instead of taking
over MEDIA_BUS_FMT_RGB888_1X24?
> + if (vin->format.pixelformat != V4L2_PIX_FMT_SRGGB8)
> + return -EPIPE;
> break;
> default:
> return -EPIPE;
> }
>
> + vin->mbus_code = fmt.format.code;
> +
> switch (fmt.format.field) {
> case V4L2_FIELD_TOP:
> case V4L2_FIELD_BOTTOM:
> --
> 2.20.1
>
--
Regards,
Niklas Söderlund
Powered by blists - more mailing lists