Message ID | 20220616202513.351039-6-jernej.skrabec@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: hantro: Add 10-bit support | expand |
Hi Jernej, On Thu, Jun 16, 2022 at 10:25:11PM +0200, Jernej Skrabec wrote: > Currently chroma offset calculation assumes only 1 byte per luma, with > no consideration for stride. > > Take necessary information from destination pixel format which makes > calculation completely universal. > > Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com> Reviewed-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> Thanks, Ezequiel > --- > drivers/staging/media/hantro/hantro_postproc.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/staging/media/hantro/hantro_postproc.c b/drivers/staging/media/hantro/hantro_postproc.c > index 8933b4af73ed..a0928c508434 100644 > --- a/drivers/staging/media/hantro/hantro_postproc.c > +++ b/drivers/staging/media/hantro/hantro_postproc.c > @@ -113,12 +113,14 @@ static void hantro_postproc_g2_enable(struct hantro_ctx *ctx) > { > struct hantro_dev *vpu = ctx->dev; > struct vb2_v4l2_buffer *dst_buf; > - size_t chroma_offset = ctx->dst_fmt.width * ctx->dst_fmt.height; > int down_scale = down_scale_factor(ctx); > + size_t chroma_offset; > dma_addr_t dst_dma; > > dst_buf = hantro_get_dst_buf(ctx); > dst_dma = vb2_dma_contig_plane_dma_addr(&dst_buf->vb2_buf, 0); > + chroma_offset = ctx->dst_fmt.plane_fmt[0].bytesperline * > + ctx->dst_fmt.height; > > if (down_scale) { > hantro_reg_write(vpu, &g2_down_scale_e, 1); > -- > 2.36.1 >
diff --git a/drivers/staging/media/hantro/hantro_postproc.c b/drivers/staging/media/hantro/hantro_postproc.c index 8933b4af73ed..a0928c508434 100644 --- a/drivers/staging/media/hantro/hantro_postproc.c +++ b/drivers/staging/media/hantro/hantro_postproc.c @@ -113,12 +113,14 @@ static void hantro_postproc_g2_enable(struct hantro_ctx *ctx) { struct hantro_dev *vpu = ctx->dev; struct vb2_v4l2_buffer *dst_buf; - size_t chroma_offset = ctx->dst_fmt.width * ctx->dst_fmt.height; int down_scale = down_scale_factor(ctx); + size_t chroma_offset; dma_addr_t dst_dma; dst_buf = hantro_get_dst_buf(ctx); dst_dma = vb2_dma_contig_plane_dma_addr(&dst_buf->vb2_buf, 0); + chroma_offset = ctx->dst_fmt.plane_fmt[0].bytesperline * + ctx->dst_fmt.height; if (down_scale) { hantro_reg_write(vpu, &g2_down_scale_e, 1);
Currently chroma offset calculation assumes only 1 byte per luma, with no consideration for stride. Take necessary information from destination pixel format which makes calculation completely universal. Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com> --- drivers/staging/media/hantro/hantro_postproc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)