Message ID | 20170719122243.22911-1-p.zabel@pengutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Philipp, On 07/19/2017 05:22 AM, Philipp Zabel wrote: > For 4:2:0 subsampled YUV formats, avoid chroma overdraw by only writing > chroma for even lines. Reduces necessary write memory bandwidth by 25%. > > Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> > --- > drivers/staging/media/imx/imx-media-csi.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c > index a2d26693912ec..0fb70d5a9e7fe 100644 > --- a/drivers/staging/media/imx/imx-media-csi.c > +++ b/drivers/staging/media/imx/imx-media-csi.c > @@ -388,6 +388,12 @@ static int csi_idmac_setup_channel(struct csi_priv *priv) > goto unsetup_vb2; > } > > + switch (image.pix.pixelformat) { > + case V4L2_PIX_FMT_YUV420: > + case V4L2_PIX_FMT_NV12: > + ipu_cpmem_skip_odd_chroma_rows(priv->idmac_ch); > + } > + Is there any reason why you can't place this call under the already existing case statement for YUV420 and NV12 at line 352? Steve > ipu_cpmem_set_burstsize(priv->idmac_ch, burst_size); > > /* >
Hi Steve, On Wed, 2017-07-19 at 09:18 -0700, Steve Longerbeam wrote: > Hi Philipp, > > On 07/19/2017 05:22 AM, Philipp Zabel wrote: > > For 4:2:0 subsampled YUV formats, avoid chroma overdraw by only writing > > chroma for even lines. Reduces necessary write memory bandwidth by 25%. > > > > Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> > > --- > > drivers/staging/media/imx/imx-media-csi.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c > > index a2d26693912ec..0fb70d5a9e7fe 100644 > > --- a/drivers/staging/media/imx/imx-media-csi.c > > +++ b/drivers/staging/media/imx/imx-media-csi.c > > @@ -388,6 +388,12 @@ static int csi_idmac_setup_channel(struct csi_priv *priv) > > goto unsetup_vb2; > > } > > > > + switch (image.pix.pixelformat) { > > + case V4L2_PIX_FMT_YUV420: > > + case V4L2_PIX_FMT_NV12: > > + ipu_cpmem_skip_odd_chroma_rows(priv->idmac_ch); > > + } > > + > > Is there any reason why you can't place this call under the > already existing case statement for YUV420 and NV12 at line > 352? Not really. I didn't touch that block of code because it only dealt with the burst size and generic data / passthrough mode settings. I'll move the odd row skipping flag up there. Thank you for the suggestion. regards Philipp
diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c index a2d26693912ec..0fb70d5a9e7fe 100644 --- a/drivers/staging/media/imx/imx-media-csi.c +++ b/drivers/staging/media/imx/imx-media-csi.c @@ -388,6 +388,12 @@ static int csi_idmac_setup_channel(struct csi_priv *priv) goto unsetup_vb2; } + switch (image.pix.pixelformat) { + case V4L2_PIX_FMT_YUV420: + case V4L2_PIX_FMT_NV12: + ipu_cpmem_skip_odd_chroma_rows(priv->idmac_ch); + } + ipu_cpmem_set_burstsize(priv->idmac_ch, burst_size); /*
For 4:2:0 subsampled YUV formats, avoid chroma overdraw by only writing chroma for even lines. Reduces necessary write memory bandwidth by 25%. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> --- drivers/staging/media/imx/imx-media-csi.c | 6 ++++++ 1 file changed, 6 insertions(+)