From b27d0c8a1538fe1d4ec486bfc127bd0022793a8e Mon Sep 17 00:00:00 2001 From: Yu Qiaowei Date: Thu, 24 Jul 2025 21:01:01 +0800 Subject: [PATCH] video: rockchip: rga3: fix image size cal error in BPP format Change-Id: I2e3ad31172e9ba5b013500927e016b88b69c87f5 Signed-off-by: Yu Qiaowei --- drivers/video/rockchip/rga3/rga_common.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/video/rockchip/rga3/rga_common.c b/drivers/video/rockchip/rga3/rga_common.c index 1563583ddeb8..c6066de6b8f7 100644 --- a/drivers/video/rockchip/rga3/rga_common.c +++ b/drivers/video/rockchip/rga3/rga_common.c @@ -488,9 +488,6 @@ int rga_get_pixel_stride_from_format(uint32_t format) case RGA_FORMAT_YCrCb_422_SP_10B: pixel_stride = 10; break; - case RGA_FORMAT_BPP1: - case RGA_FORMAT_BPP2: - case RGA_FORMAT_BPP4: case RGA_FORMAT_BPP8: case RGA_FORMAT_YCbCr_400: case RGA_FORMAT_A8: @@ -505,9 +502,16 @@ int rga_get_pixel_stride_from_format(uint32_t format) case RGA_FORMAT_Y8: pixel_stride = 8; break; + case RGA_FORMAT_BPP4: case RGA_FORMAT_Y4: pixel_stride = 4; break; + case RGA_FORMAT_BPP2: + pixel_stride = 2; + break; + case RGA_FORMAT_BPP1: + pixel_stride = 1; + break; default: rga_err("unknown format [0x%x]\n", format); return -1; @@ -823,14 +827,22 @@ int rga_image_size_cal(int w, int h, int format, uv = (w * h) >> 2; v = uv; break; + case RGA_FORMAT_BPP8: case RGA_FORMAT_YCbCr_400: case RGA_FORMAT_A8: case RGA_FORMAT_Y8: yrgb = w * h; break; + case RGA_FORMAT_BPP4: case RGA_FORMAT_Y4: yrgb = (w * h) >> 1; break; + case RGA_FORMAT_BPP2: + yrgb = (w * h) >> 2; + break; + case RGA_FORMAT_BPP1: + yrgb = (w * h) >> 3; + break; default: rga_err("Unsuport format [0x%x]\n", format); return -EFAULT;