Quoting Laurent Pinchart (2022-02-28 12:00:58) > From: Michael Rodin <mrodin@xxxxxxxxxxxxxx> > > The vertical subsampling factor is currently not considered in the > offset calculation for plane cropping done in rpf_configure_partition. > This causes a distortion (shift of the color plane) when formats with > the vsub factor larger than 1 are used (e.g. NV12, see > vsp1_video_formats in vsp1_pipe.c). This commit considers vsub factor > for all planes except plane 0 (luminance). > > Fixes: e5ad37b64de9 ("[media] v4l: vsp1: Add cropping support") > Signed-off-by: Michael Rodin <mrodin@xxxxxxxxxxxxxx> > Signed-off-by: LUU HOAI <hoai.luu.ub@xxxxxxxxxxx> > > Drop generalization of the offset calculation to reduce the binary size. > > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> Looks fine to me, and I now see that the extra tests identify the failure experienced and resolve it so... Reviewed-by: Kieran Bingham <kieran.bingham+renesas@xxxxxxxxxxxxxxxx> > --- > drivers/media/platform/vsp1/vsp1_rpf.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/platform/vsp1/vsp1_rpf.c b/drivers/media/platform/vsp1/vsp1_rpf.c > index 85587c1b6a37..75083cb234fe 100644 > --- a/drivers/media/platform/vsp1/vsp1_rpf.c > +++ b/drivers/media/platform/vsp1/vsp1_rpf.c > @@ -291,11 +291,11 @@ static void rpf_configure_partition(struct vsp1_entity *entity, > + crop.left * fmtinfo->bpp[0] / 8; > > if (format->num_planes > 1) { > + unsigned int bpl = format->plane_fmt[1].bytesperline; > unsigned int offset; > > - offset = crop.top * format->plane_fmt[1].bytesperline > - + crop.left / fmtinfo->hsub > - * fmtinfo->bpp[1] / 8; > + offset = crop.top / fmtinfo->vsub * bpl > + + crop.left / fmtinfo->hsub * fmtinfo->bpp[1] / 8; > mem.addr[1] += offset; > mem.addr[2] += offset; > } > -- > Regards, > > Laurent Pinchart >