From 431ced4368d0ce298bcb776c7e779e4856d600ae Mon Sep 17 00:00:00 2001 From: Yu Qiaowei Date: Thu, 3 Mar 2022 11:33:08 +0800 Subject: [PATCH] video: rockchip: rga3: Fix hardware support format 1. RGA3 support ARGB/ABGR8888 input. 2. RGA3 support YUV420 packed output. Signed-off-by: Yu Qiaowei Change-Id: I7680ed7b0218998f67e0d1ed40cc2ad3690b8572 --- drivers/video/rockchip/rga3/rga_hw_config.c | 97 +++++++++++++++++---- 1 file changed, 82 insertions(+), 15 deletions(-) diff --git a/drivers/video/rockchip/rga3/rga_hw_config.c b/drivers/video/rockchip/rga3/rga_hw_config.c index 3a685fdfcfe3..996067339ad5 100644 --- a/drivers/video/rockchip/rga3/rga_hw_config.c +++ b/drivers/video/rockchip/rga3/rga_hw_config.c @@ -8,7 +8,30 @@ #include "rga_hw_config.h" -const uint32_t rga3_raster_format[] = { +const uint32_t rga3_input_raster_format[] = { + RGA_FORMAT_RGBA_8888, + RGA_FORMAT_BGRA_8888, + RGA_FORMAT_RGB_888, + RGA_FORMAT_BGR_888, + RGA_FORMAT_RGB_565, + RGA_FORMAT_BGR_565, + RGA_FORMAT_YCbCr_422_SP, + RGA_FORMAT_YCbCr_420_SP, + RGA_FORMAT_YCrCb_422_SP, + RGA_FORMAT_YCrCb_420_SP, + RGA_FORMAT_YVYU_422, + RGA_FORMAT_VYUY_422, + RGA_FORMAT_YUYV_422, + RGA_FORMAT_UYVY_422, + RGA_FORMAT_YCbCr_420_SP_10B, + RGA_FORMAT_YCrCb_420_SP_10B, + RGA_FORMAT_YCbCr_422_SP_10B, + RGA_FORMAT_YCrCb_422_SP_10B, + RGA_FORMAT_ARGB_8888, + RGA_FORMAT_ABGR_8888, +}; + +const uint32_t rga3_output_raster_format[] = { RGA_FORMAT_RGBA_8888, RGA_FORMAT_BGRA_8888, RGA_FORMAT_RGB_888, @@ -57,7 +80,7 @@ const uint32_t rga3_tile_format[] = { RGA_FORMAT_YCrCb_422_SP_10B, }; -const uint32_t rga2e_raster_format[] = { +const uint32_t rga2e_input_raster_format[] = { RGA_FORMAT_RGBA_8888, RGA_FORMAT_RGBX_8888, RGA_FORMAT_BGRA_8888, @@ -82,7 +105,6 @@ const uint32_t rga2e_raster_format[] = { RGA_FORMAT_YCrCb_420_SP_10B, RGA_FORMAT_YCbCr_422_SP_10B, RGA_FORMAT_YCrCb_422_SP_10B, - RGA_FORMAT_Y4, RGA_FORMAT_YCbCr_400, RGA_FORMAT_RGBA_5551, RGA_FORMAT_BGRA_5551, @@ -102,11 +124,56 @@ const uint32_t rga2e_raster_format[] = { RGA_FORMAT_ABGR_4444, }; +const uint32_t rga2e_output_raster_format[] = { + RGA_FORMAT_RGBA_8888, + RGA_FORMAT_RGBX_8888, + RGA_FORMAT_BGRA_8888, + RGA_FORMAT_BGRX_8888, + RGA_FORMAT_RGB_888, + RGA_FORMAT_BGR_888, + RGA_FORMAT_RGB_565, + RGA_FORMAT_BGR_565, + RGA_FORMAT_YCbCr_422_P, + RGA_FORMAT_YCbCr_420_P, + RGA_FORMAT_YCrCb_422_P, + RGA_FORMAT_YCrCb_420_P, + RGA_FORMAT_YCbCr_422_SP, + RGA_FORMAT_YCbCr_420_SP, + RGA_FORMAT_YCrCb_422_SP, + RGA_FORMAT_YCrCb_420_SP, + RGA_FORMAT_YVYU_420, + RGA_FORMAT_VYUY_420, + RGA_FORMAT_YUYV_420, + RGA_FORMAT_UYVY_420, + RGA_FORMAT_YVYU_422, + RGA_FORMAT_VYUY_422, + RGA_FORMAT_YUYV_422, + RGA_FORMAT_UYVY_422, + RGA_FORMAT_YCbCr_420_SP_10B, + RGA_FORMAT_YCrCb_420_SP_10B, + RGA_FORMAT_YCbCr_422_SP_10B, + RGA_FORMAT_YCrCb_422_SP_10B, + RGA_FORMAT_Y4, + RGA_FORMAT_YCbCr_400, + RGA_FORMAT_RGBA_5551, + RGA_FORMAT_BGRA_5551, + RGA_FORMAT_RGBA_4444, + RGA_FORMAT_BGRA_4444, + RGA_FORMAT_XRGB_8888, + RGA_FORMAT_XBGR_8888, + RGA_FORMAT_ARGB_8888, + RGA_FORMAT_ARGB_5551, + RGA_FORMAT_ARGB_4444, + RGA_FORMAT_ABGR_8888, + RGA_FORMAT_ABGR_5551, + RGA_FORMAT_ABGR_4444, +}; + const struct rga_win_data rga3_win_data[] = { { .name = "rga3-win0", - .raster_formats = rga3_raster_format, - .num_of_raster_formats = ARRAY_SIZE(rga3_raster_format), + .raster_formats = rga3_input_raster_format, + .num_of_raster_formats = ARRAY_SIZE(rga3_input_raster_format), .fbc_formats = rga3_fbcd_format, .num_of_fbc_formats = ARRAY_SIZE(rga3_fbcd_format), .tile_formats = rga3_tile_format, @@ -120,8 +187,8 @@ const struct rga_win_data rga3_win_data[] = { { .name = "rga3-win1", - .raster_formats = rga3_raster_format, - .num_of_raster_formats = ARRAY_SIZE(rga3_raster_format), + .raster_formats = rga3_input_raster_format, + .num_of_raster_formats = ARRAY_SIZE(rga3_input_raster_format), .fbc_formats = rga3_fbcd_format, .num_of_fbc_formats = ARRAY_SIZE(rga3_fbcd_format), .tile_formats = rga3_tile_format, @@ -135,8 +202,8 @@ const struct rga_win_data rga3_win_data[] = { { .name = "rga3-wr", - .raster_formats = rga3_raster_format, - .num_of_raster_formats = ARRAY_SIZE(rga3_raster_format), + .raster_formats = rga3_output_raster_format, + .num_of_raster_formats = ARRAY_SIZE(rga3_output_raster_format), .fbc_formats = rga3_fbcd_format, .num_of_fbc_formats = ARRAY_SIZE(rga3_fbcd_format), .tile_formats = rga3_tile_format, @@ -152,8 +219,8 @@ const struct rga_win_data rga3_win_data[] = { const struct rga_win_data rga2e_win_data[] = { { .name = "rga2e-src0", - .raster_formats = rga2e_raster_format, - .num_of_raster_formats = ARRAY_SIZE(rga2e_raster_format), + .raster_formats = rga2e_input_raster_format, + .num_of_raster_formats = ARRAY_SIZE(rga2e_input_raster_format), .supported_rotations = RGA_MODE_ROTATE_MASK, .scale_up_mode = RGA_SCALE_UP_BIC, .scale_down_mode = RGA_SCALE_DOWN_AVG, @@ -163,8 +230,8 @@ const struct rga_win_data rga2e_win_data[] = { { .name = "rga2e-src1", - .raster_formats = rga2e_raster_format, - .num_of_raster_formats = ARRAY_SIZE(rga2e_raster_format), + .raster_formats = rga2e_input_raster_format, + .num_of_raster_formats = ARRAY_SIZE(rga2e_input_raster_format), .supported_rotations = RGA_MODE_ROTATE_MASK, .scale_up_mode = RGA_SCALE_UP_BIC, .scale_down_mode = RGA_SCALE_DOWN_AVG, @@ -174,8 +241,8 @@ const struct rga_win_data rga2e_win_data[] = { { .name = "rga2-dst", - .raster_formats = rga2e_raster_format, - .num_of_raster_formats = ARRAY_SIZE(rga2e_raster_format), + .raster_formats = rga2e_output_raster_format, + .num_of_raster_formats = ARRAY_SIZE(rga2e_output_raster_format), .supported_rotations = 0, .scale_up_mode = RGA_SCALE_UP_NONE, .scale_down_mode = RGA_SCALE_DOWN_NONE,