On Thu, 2018-10-04 at 11:53 -0700, Steve Longerbeam wrote: > To support interlaced scan with planar formats, cpmem SLUV must > be programmed with the correct chroma line stride. For full and > partial planar 4:2:2 (YUV422P, NV16), chroma line stride must > be doubled. For full and partial planar 4:2:0 (YUV420, YVU420, NV12), > chroma line stride must _not_ be doubled, since a single chroma line > is shared by two luma lines. > > Signed-off-by: Steve Longerbeam <slongerbeam@xxxxxxxxx> > --- > drivers/gpu/ipu-v3/ipu-cpmem.c | 26 +++++++++++++++++++-- > drivers/staging/media/imx/imx-ic-prpencvf.c | 3 ++- > drivers/staging/media/imx/imx-media-csi.c | 3 ++- > include/video/imx-ipu-v3.h | 3 ++- > 4 files changed, 30 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/ipu-v3/ipu-cpmem.c b/drivers/gpu/ipu-v3/ipu-cpmem.c > index a9d2501500a1..d41df8034c5b 100644 > --- a/drivers/gpu/ipu-v3/ipu-cpmem.c > +++ b/drivers/gpu/ipu-v3/ipu-cpmem.c > @@ -273,9 +273,10 @@ void ipu_cpmem_set_uv_offset(struct ipuv3_channel *ch, u32 u_off, u32 v_off) > } > EXPORT_SYMBOL_GPL(ipu_cpmem_set_uv_offset); > > -void ipu_cpmem_interlaced_scan(struct ipuv3_channel *ch, int stride) > +void ipu_cpmem_interlaced_scan(struct ipuv3_channel *ch, int stride, > + u32 pixelformat) > { > - u32 ilo, sly; > + u32 ilo, sly, sluv; > > if (stride < 0) { > stride = -stride; > @@ -286,9 +287,30 @@ void ipu_cpmem_interlaced_scan(struct ipuv3_channel *ch, int stride) > > sly = (stride * 2) - 1; > > + switch (pixelformat) { > + case V4L2_PIX_FMT_YUV420: > + case V4L2_PIX_FMT_YVU420: > + sluv = stride / 2 - 1; > + break; > + case V4L2_PIX_FMT_NV12: > + sluv = stride - 1; > + break; > + case V4L2_PIX_FMT_YUV422P: > + sluv = stride - 1; > + break; > + case V4L2_PIX_FMT_NV16: > + sluv = stride * 2 - 1; > + break; > + default: > + sluv = 0; > + break; > + } > + > ipu_ch_param_write_field(ch, IPU_FIELD_SO, 1); > ipu_ch_param_write_field(ch, IPU_FIELD_ILO, ilo); > ipu_ch_param_write_field(ch, IPU_FIELD_SLY, sly); > + if (sluv) > + ipu_ch_param_write_field(ch, IPU_FIELD_SLUV, sluv); > }; > EXPORT_SYMBOL_GPL(ipu_cpmem_interlaced_scan); [...] Reviewed-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> and Acked-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> to be merged with the rest of the series via the media tree. I'll take care not to introduce nontrivial conflicts in imx-drm. regards Philipp _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel