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@xxxxxxxxxxxxxx> 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