[PATCH 4/4] media: rkvdec: align bytesperline to 64 bytes in rkvdec_fill_decoded_pixfmt()

From: Venkata Atchuta Bheemeswara Sarma Darbha

Date: Sun Jul 26 2026 - 16:30:19 EST


From: Igor Paunovic <royalnet026@xxxxxxxxx>

Ensure bytesperline is 64-byte aligned and scale sizeimage accordingly.

Signed-off-by: Igor Paunovic <royalnet026@xxxxxxxxx>
Signed-off-by: Francesco Saverio Pavone <pavone.lawyer@xxxxxxxxx>
Signed-off-by: Venkata Atchuta Bheemeswara Sarma Darbha <vdarbha0473@xxxxxxxxx>
---
drivers/media/platform/rockchip/rkvdec/rkvdec.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec.c b/drivers/media/platform/rockchip/rkvdec/rkvdec.c
index 436bb460f04e..6ab6530b1cc9 100644
--- a/drivers/media/platform/rockchip/rkvdec/rkvdec.c
+++ b/drivers/media/platform/rockchip/rkvdec/rkvdec.c
@@ -102,12 +102,20 @@ static void rkvdec_fill_decoded_pixfmt(struct rkvdec_ctx *ctx,
struct v4l2_pix_format_mplane *pix_mp)
{
const struct rkvdec_variant *variant = ctx->dev->variant;
+ struct v4l2_plane_pix_format *plane = &pix_mp->plane_fmt[0];
+ u32 aligned_bpl;

v4l2_fill_pixfmt_mp(pix_mp, pix_mp->pixelformat, pix_mp->width, pix_mp->height);

- ctx->colmv_offset = pix_mp->plane_fmt[0].sizeimage;
+ /* ensure bpl is 64 byte aligned and scale sizeimage accordingly. */
+ aligned_bpl = ALIGN(plane->bytesperline, 64);
+ if (aligned_bpl != plane->bytesperline) {
+ plane->sizeimage = plane->sizeimage / plane->bytesperline * aligned_bpl;
+ plane->bytesperline = aligned_bpl;
+ }

- pix_mp->plane_fmt[0].sizeimage += variant->ops->colmv_size(pix_mp->width, pix_mp->height);
+ ctx->colmv_offset = plane->sizeimage;
+ plane->sizeimage += variant->ops->colmv_size(pix_mp->width, pix_mp->height);
}

static void rkvdec_reset_fmt(struct rkvdec_ctx *ctx, struct v4l2_format *f,

--
2.43.0