From 8b4ad2aade62da9540247d0a46f1ecde1e8c1fb7 Mon Sep 17 00:00:00 2001 From: Jonas Karlman Date: Sat, 23 May 2020 13:15:57 +0000 Subject: [PATCH] WIP: media: rkvdec: h264: use bytesperline and buffer height to calculate strides NOTE: this does not really change anything but ensure we use same bytesperline as signaled to userspace Signed-off-by: Jonas Karlman --- drivers/staging/media/rkvdec/rkvdec-h264.c | 27 +++++++++++++--------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/drivers/staging/media/rkvdec/rkvdec-h264.c b/drivers/staging/media/rkvdec/rkvdec-h264.c index 6f64d2ea21afad..1b1962db4a91d9 100644 --- a/drivers/staging/media/rkvdec/rkvdec-h264.c +++ b/drivers/staging/media/rkvdec/rkvdec-h264.c @@ -883,10 +883,11 @@ static void config_registers(struct rkvdec_ctx *ctx, dma_addr_t rlc_addr; dma_addr_t refer_addr; u32 rlc_len; - u32 hor_virstride = 0; - u32 ver_virstride = 0; - u32 y_virstride = 0; - u32 yuv_virstride = 0; + u32 hor_virstride; + u32 ver_virstride; + u32 y_virstride; + u32 uv_virstride; + u32 yuv_virstride; u32 offset; dma_addr_t dst_addr; u32 reg, i; @@ -896,16 +897,20 @@ static void config_registers(struct rkvdec_ctx *ctx, f = &ctx->decoded_fmt; dst_fmt = &f->fmt.pix_mp; - hor_virstride = (sps->bit_depth_luma_minus8 + 8) * dst_fmt->width / 8; - ver_virstride = round_up(dst_fmt->height, 16); + hor_virstride = dst_fmt->plane_fmt[0].bytesperline; + ver_virstride = dst_fmt->height; y_virstride = hor_virstride * ver_virstride; - if (sps->chroma_format_idc == 0) - yuv_virstride = y_virstride; - else if (sps->chroma_format_idc == 1) - yuv_virstride += y_virstride + y_virstride / 2; + if (sps->chroma_format_idc == 1) + uv_virstride = y_virstride / 2; else if (sps->chroma_format_idc == 2) - yuv_virstride += 2 * y_virstride; + uv_virstride = y_virstride; + else if (sps->chroma_format_idc == 3) + uv_virstride = 2 * y_virstride; + else + uv_virstride = 0; + + yuv_virstride = y_virstride + uv_virstride; reg = RKVDEC_Y_HOR_VIRSTRIDE(hor_virstride / 16) | RKVDEC_UV_HOR_VIRSTRIDE(hor_virstride / 16) |