]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: qcom: venus: drop extra padding in NV12 raw size calculation
authorRenjiang Han <renjiang.han@oss.qualcomm.com>
Tue, 31 Mar 2026 04:37:07 +0000 (10:07 +0530)
committerBryan O'Donoghue <bod@kernel.org>
Sat, 30 May 2026 07:41:47 +0000 (08:41 +0100)
get_framesize_raw_nv12() currently adds SZ_4K to the UV plane size and an
additional SZ_8K to the total buffer size. This inflates the calculated
sizeimage and leads userspace to over-allocate buffers without a clear
requirement.

Remove the extra SZ_4K/SZ_8K padding and compute the NV12 size as the sum
of Y and UV planes, keeping the final ALIGN(size, SZ_4K) intact.

Fixes: e1cb72de702ad ("media: venus: helpers: move frame size calculations on common place")
Signed-off-by: Renjiang Han <renjiang.han@oss.qualcomm.com>
Reviewed-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Signed-off-by: Bryan O'Donoghue <bod@kernel.org>
drivers/media/platform/qcom/venus/helpers.c

index 747c388fe25fa30770ac2e81d42f4daf83d74ddf..59eee3dd9e06c27165f29fc034d151eb13cd2349 100644 (file)
@@ -954,8 +954,8 @@ static u32 get_framesize_raw_nv12(u32 width, u32 height)
        uv_sclines = ALIGN(((height + 1) >> 1), 16);
 
        y_plane = y_stride * y_sclines;
-       uv_plane = uv_stride * uv_sclines + SZ_4K;
-       size = y_plane + uv_plane + SZ_8K;
+       uv_plane = uv_stride * uv_sclines;
+       size = y_plane + uv_plane;
 
        return ALIGN(size, SZ_4K);
 }