diff --git a/drivers/video/rockchip/rga3/include/rga.h b/drivers/video/rockchip/rga3/include/rga.h index 27e8eb446f30..f5bf5ac8fe1b 100644 --- a/drivers/video/rockchip/rga3/include/rga.h +++ b/drivers/video/rockchip/rga3/include/rga.h @@ -107,59 +107,64 @@ enum { RGA_DITHER = 0x1 << 6, }; -enum { - RGA2_FORMAT_RGBA_8888 = 0x0, - RGA2_FORMAT_RGBX_8888 = 0x1, - RGA2_FORMAT_RGB_888 = 0x2, - RGA2_FORMAT_BGRA_8888 = 0x3, - RGA2_FORMAT_BGRX_8888 = 0x4, - RGA2_FORMAT_BGR_888 = 0x5, - RGA2_FORMAT_RGB_565 = 0x6, - RGA2_FORMAT_RGBA_5551 = 0x7, - RGA2_FORMAT_RGBA_4444 = 0x8, - RGA2_FORMAT_BGR_565 = 0x9, - RGA2_FORMAT_BGRA_5551 = 0xa, - RGA2_FORMAT_BGRA_4444 = 0xb, +enum rga_surf_format { + RGA_FORMAT_RGBA_8888 = 0x0, + RGA_FORMAT_RGBX_8888 = 0x1, + RGA_FORMAT_RGB_888 = 0x2, + RGA_FORMAT_BGRA_8888 = 0x3, + RGA_FORMAT_RGB_565 = 0x4, + RGA_FORMAT_RGBA_5551 = 0x5, + RGA_FORMAT_RGBA_4444 = 0x6, + RGA_FORMAT_BGR_888 = 0x7, - RGA2_FORMAT_Y4 = 0xe, - RGA2_FORMAT_YCbCr_400 = 0xf, + RGA_FORMAT_YCbCr_422_SP = 0x8, + RGA_FORMAT_YCbCr_422_P = 0x9, + RGA_FORMAT_YCbCr_420_SP = 0xa, + RGA_FORMAT_YCbCr_420_P = 0xb, - RGA2_FORMAT_YCbCr_422_SP = 0x10, - RGA2_FORMAT_YCbCr_422_P = 0x11, - RGA2_FORMAT_YCbCr_420_SP = 0x12, - RGA2_FORMAT_YCbCr_420_P = 0x13, - RGA2_FORMAT_YCrCb_422_SP = 0x14, - RGA2_FORMAT_YCrCb_422_P = 0x15, - RGA2_FORMAT_YCrCb_420_SP = 0x16, - RGA2_FORMAT_YCrCb_420_P = 0x17, + RGA_FORMAT_YCrCb_422_SP = 0xc, + RGA_FORMAT_YCrCb_422_P = 0xd, + RGA_FORMAT_YCrCb_420_SP = 0xe, + RGA_FORMAT_YCrCb_420_P = 0xf, - RGA2_FORMAT_YVYU_422 = 0x18, - RGA2_FORMAT_YVYU_420 = 0x19, - RGA2_FORMAT_VYUY_422 = 0x1a, - RGA2_FORMAT_VYUY_420 = 0x1b, - RGA2_FORMAT_YUYV_422 = 0x1c, - RGA2_FORMAT_YUYV_420 = 0x1d, - RGA2_FORMAT_UYVY_422 = 0x1e, - RGA2_FORMAT_UYVY_420 = 0x1f, + RGA_FORMAT_BPP1 = 0x10, + RGA_FORMAT_BPP2 = 0x11, + RGA_FORMAT_BPP4 = 0x12, + RGA_FORMAT_BPP8 = 0x13, - RGA2_FORMAT_YCbCr_420_SP_10B = 0x20, - RGA2_FORMAT_YCrCb_420_SP_10B = 0x21, - RGA2_FORMAT_YCbCr_422_SP_10B = 0x22, - RGA2_FORMAT_YCrCb_422_SP_10B = 0x23, + RGA_FORMAT_Y4 = 0x14, + RGA_FORMAT_YCbCr_400 = 0x15, - RGA2_FORMAT_BPP_1 = 0x24, - RGA2_FORMAT_BPP_2 = 0x25, - RGA2_FORMAT_BPP_4 = 0x26, - RGA2_FORMAT_BPP_8 = 0x27, + RGA_FORMAT_BGRX_8888 = 0x16, - RGA2_FORMAT_ARGB_8888 = 0x28, - RGA2_FORMAT_XRGB_8888 = 0x29, - RGA2_FORMAT_ARGB_5551 = 0x2a, - RGA2_FORMAT_ARGB_4444 = 0x2b, - RGA2_FORMAT_ABGR_8888 = 0x2c, - RGA2_FORMAT_XBGR_8888 = 0x2d, - RGA2_FORMAT_ABGR_5551 = 0x2e, - RGA2_FORMAT_ABGR_4444 = 0x2f, + RGA_FORMAT_YVYU_422 = 0x18, + RGA_FORMAT_YVYU_420 = 0x19, + RGA_FORMAT_VYUY_422 = 0x1a, + RGA_FORMAT_VYUY_420 = 0x1b, + RGA_FORMAT_YUYV_422 = 0x1c, + RGA_FORMAT_YUYV_420 = 0x1d, + RGA_FORMAT_UYVY_422 = 0x1e, + RGA_FORMAT_UYVY_420 = 0x1f, + + RGA_FORMAT_YCbCr_420_SP_10B = 0x20, + RGA_FORMAT_YCrCb_420_SP_10B = 0x21, + RGA_FORMAT_YCbCr_422_SP_10B = 0x22, + RGA_FORMAT_YCrCb_422_SP_10B = 0x23, + + RGA_FORMAT_BGR_565 = 0x24, + RGA_FORMAT_BGRA_5551 = 0x25, + RGA_FORMAT_BGRA_4444 = 0x26, + + RGA_FORMAT_ARGB_8888 = 0x28, + RGA_FORMAT_XRGB_8888 = 0x29, + RGA_FORMAT_ARGB_5551 = 0x2a, + RGA_FORMAT_ARGB_4444 = 0x2b, + RGA_FORMAT_ABGR_8888 = 0x2c, + RGA_FORMAT_XBGR_8888 = 0x2d, + RGA_FORMAT_ABGR_5551 = 0x2e, + RGA_FORMAT_ABGR_4444 = 0x2f, + + RGA_FORMAT_UNKNOWN = 0x100, }; #define RGA_SCHED_PRIORITY_DEFAULT 0 diff --git a/drivers/video/rockchip/rga3/include/rga_common.h b/drivers/video/rockchip/rga3/include/rga_common.h index 3913c7cf6ced..ae5399618e4b 100644 --- a/drivers/video/rockchip/rga3/include/rga_common.h +++ b/drivers/video/rockchip/rga3/include/rga_common.h @@ -9,8 +9,6 @@ #ifndef __LINUX_RKRGA_COMMON_H_ #define __LINUX_RKRGA_COMMON_H_ -void rga_user_format_convert(uint32_t *df, uint32_t sf); - bool rga_is_rgb_format(uint32_t format); bool rga_is_yuv_format(uint32_t format); bool rga_is_alpha_format(uint32_t format); diff --git a/drivers/video/rockchip/rga3/include/rga_drv.h b/drivers/video/rockchip/rga3/include/rga_drv.h index 71a6ca60961f..313fbd3f0122 100644 --- a/drivers/video/rockchip/rga3/include/rga_drv.h +++ b/drivers/video/rockchip/rga3/include/rga_drv.h @@ -79,7 +79,7 @@ #define DRIVER_MAJOR_VERISON 1 #define DRIVER_MINOR_VERSION 2 -#define DRIVER_REVISION_VERSION 2 +#define DRIVER_REVISION_VERSION 3 #define DRIVER_VERSION (STR(DRIVER_MAJOR_VERISON) "." STR(DRIVER_MINOR_VERSION) \ "." STR(DRIVER_REVISION_VERSION)) diff --git a/drivers/video/rockchip/rga3/rga2_reg_info.c b/drivers/video/rockchip/rga3/rga2_reg_info.c index d41eee863326..b7db98e81a97 100644 --- a/drivers/video/rockchip/rga3/rga2_reg_info.c +++ b/drivers/video/rockchip/rga3/rga2_reg_info.c @@ -233,8 +233,8 @@ static void RGA2_set_reg_src_info(u8 *base, struct rga2_req *msg) bRGA_SRC_TR_COLOR0 = (u32 *) (base + RGA2_SRC_TR_COLOR0_OFFSET); bRGA_SRC_TR_COLOR1 = (u32 *) (base + RGA2_SRC_TR_COLOR1_OFFSET); - if (msg->src.format == RGA2_FORMAT_YCbCr_420_SP_10B || - msg->src.format == RGA2_FORMAT_YCrCb_420_SP_10B) { + if (msg->src.format == RGA_FORMAT_YCbCr_420_SP_10B || + msg->src.format == RGA_FORMAT_YCrCb_420_SP_10B) { if ((msg->src.act_w == msg->dst.act_w) && (msg->src.act_h == msg->dst.act_h) && (msg->rotate_mode == 0)) @@ -277,62 +277,62 @@ static void RGA2_set_reg_src_info(u8 *base, struct rga2_req *msg) } switch (msg->src.format) { - case RGA2_FORMAT_RGBA_8888: + case RGA_FORMAT_RGBA_8888: src0_format = 0x0; pixel_width = 4; break; - case RGA2_FORMAT_BGRA_8888: + case RGA_FORMAT_BGRA_8888: src0_format = 0x0; src0_rb_swp = 0x1; pixel_width = 4; break; - case RGA2_FORMAT_RGBX_8888: + case RGA_FORMAT_RGBX_8888: src0_format = 0x1; pixel_width = 4; msg->src_trans_mode &= 0x07; break; - case RGA2_FORMAT_BGRX_8888: + case RGA_FORMAT_BGRX_8888: src0_format = 0x1; src0_rb_swp = 0x1; pixel_width = 4; msg->src_trans_mode &= 0x07; break; - case RGA2_FORMAT_RGB_888: + case RGA_FORMAT_RGB_888: src0_format = 0x2; pixel_width = 3; msg->src_trans_mode &= 0x07; break; - case RGA2_FORMAT_BGR_888: + case RGA_FORMAT_BGR_888: src0_format = 0x2; src0_rb_swp = 1; pixel_width = 3; msg->src_trans_mode &= 0x07; break; - case RGA2_FORMAT_RGB_565: + case RGA_FORMAT_RGB_565: src0_format = 0x4; pixel_width = 2; msg->src_trans_mode &= 0x07; break; - case RGA2_FORMAT_RGBA_5551: + case RGA_FORMAT_RGBA_5551: src0_format = 0x5; pixel_width = 2; break; - case RGA2_FORMAT_RGBA_4444: + case RGA_FORMAT_RGBA_4444: src0_format = 0x6; pixel_width = 2; break; - case RGA2_FORMAT_BGR_565: + case RGA_FORMAT_BGR_565: src0_format = 0x4; pixel_width = 2; msg->src_trans_mode &= 0x07; src0_rb_swp = 0x1; break; - case RGA2_FORMAT_BGRA_5551: + case RGA_FORMAT_BGRA_5551: src0_format = 0x5; pixel_width = 2; src0_rb_swp = 0x1; break; - case RGA2_FORMAT_BGRA_4444: + case RGA_FORMAT_BGRA_4444: src0_format = 0x6; pixel_width = 2; src0_rb_swp = 0x1; @@ -343,143 +343,143 @@ static void RGA2_set_reg_src_info(u8 *base, struct rga2_req *msg) * In colorkey mode, xrgb/xbgr does not * need to enable the alpha channel */ - case RGA2_FORMAT_ARGB_8888: + case RGA_FORMAT_ARGB_8888: src0_format = 0x0; pixel_width = 4; src0_alpha_swp = 1; break; - case RGA2_FORMAT_ABGR_8888: + case RGA_FORMAT_ABGR_8888: src0_format = 0x0; pixel_width = 4; src0_alpha_swp = 1; src0_rb_swp = 0x1; break; - case RGA2_FORMAT_XRGB_8888: + case RGA_FORMAT_XRGB_8888: src0_format = 0x1; pixel_width = 4; src0_alpha_swp = 1; msg->src_trans_mode &= 0x07; break; - case RGA2_FORMAT_XBGR_8888: + case RGA_FORMAT_XBGR_8888: src0_format = 0x1; pixel_width = 4; src0_alpha_swp = 1; src0_rb_swp = 0x1; msg->src_trans_mode &= 0x07; break; - case RGA2_FORMAT_ARGB_5551: + case RGA_FORMAT_ARGB_5551: src0_format = 0x5; pixel_width = 2; src0_alpha_swp = 1; break; - case RGA2_FORMAT_ABGR_5551: + case RGA_FORMAT_ABGR_5551: src0_format = 0x5; pixel_width = 2; src0_alpha_swp = 1; src0_rb_swp = 0x1; break; - case RGA2_FORMAT_ARGB_4444: + case RGA_FORMAT_ARGB_4444: src0_format = 0x6; pixel_width = 2; src0_alpha_swp = 1; break; - case RGA2_FORMAT_ABGR_4444: + case RGA_FORMAT_ABGR_4444: src0_format = 0x6; pixel_width = 2; src0_alpha_swp = 1; src0_rb_swp = 0x1; break; - case RGA2_FORMAT_YVYU_422: + case RGA_FORMAT_YVYU_422: src0_format = 0x7; pixel_width = 2; src0_cbcr_swp = 1; src0_rb_swp = 0x1; break; //rbswap=ycswap - case RGA2_FORMAT_VYUY_422: + case RGA_FORMAT_VYUY_422: src0_format = 0x7; pixel_width = 2; src0_cbcr_swp = 1; src0_rb_swp = 0x0; break; - case RGA2_FORMAT_YUYV_422: + case RGA_FORMAT_YUYV_422: src0_format = 0x7; pixel_width = 2; src0_cbcr_swp = 0; src0_rb_swp = 0x1; break; - case RGA2_FORMAT_UYVY_422: + case RGA_FORMAT_UYVY_422: src0_format = 0x7; pixel_width = 2; src0_cbcr_swp = 0; src0_rb_swp = 0x0; break; - case RGA2_FORMAT_YCbCr_422_SP: + case RGA_FORMAT_YCbCr_422_SP: src0_format = 0x8; xdiv = 1; ydiv = 1; break; - case RGA2_FORMAT_YCbCr_422_P: + case RGA_FORMAT_YCbCr_422_P: src0_format = 0x9; xdiv = 2; ydiv = 1; break; - case RGA2_FORMAT_YCbCr_420_SP: + case RGA_FORMAT_YCbCr_420_SP: src0_format = 0xa; xdiv = 1; ydiv = 2; break; - case RGA2_FORMAT_YCbCr_420_P: + case RGA_FORMAT_YCbCr_420_P: src0_format = 0xb; xdiv = 2; ydiv = 2; break; - case RGA2_FORMAT_YCrCb_422_SP: + case RGA_FORMAT_YCrCb_422_SP: src0_format = 0x8; xdiv = 1; ydiv = 1; src0_cbcr_swp = 1; break; - case RGA2_FORMAT_YCrCb_422_P: + case RGA_FORMAT_YCrCb_422_P: src0_format = 0x9; xdiv = 2; ydiv = 1; src0_cbcr_swp = 1; break; - case RGA2_FORMAT_YCrCb_420_SP: + case RGA_FORMAT_YCrCb_420_SP: src0_format = 0xa; xdiv = 1; ydiv = 2; src0_cbcr_swp = 1; break; - case RGA2_FORMAT_YCrCb_420_P: + case RGA_FORMAT_YCrCb_420_P: src0_format = 0xb; xdiv = 2; ydiv = 2; src0_cbcr_swp = 1; break; - case RGA2_FORMAT_YCbCr_420_SP_10B: + case RGA_FORMAT_YCbCr_420_SP_10B: src0_format = 0xa; xdiv = 1; ydiv = 2; yuv10 = 1; break; - case RGA2_FORMAT_YCrCb_420_SP_10B: + case RGA_FORMAT_YCrCb_420_SP_10B: src0_format = 0xa; xdiv = 1; ydiv = 2; src0_cbcr_swp = 1; yuv10 = 1; break; - case RGA2_FORMAT_YCbCr_422_SP_10B: + case RGA_FORMAT_YCbCr_422_SP_10B: src0_format = 0x8; xdiv = 1; ydiv = 1; yuv10 = 1; break; - case RGA2_FORMAT_YCrCb_422_SP_10B: + case RGA_FORMAT_YCrCb_422_SP_10B: src0_format = 0x8; xdiv = 1; ydiv = 1; @@ -487,7 +487,7 @@ static void RGA2_set_reg_src_info(u8 *base, struct rga2_req *msg) yuv10 = 1; break; - case RGA2_FORMAT_YCbCr_400: + case RGA_FORMAT_YCbCr_400: src0_format = 0x8; src_fmt_yuv400_en = 1; xdiv = 1; @@ -665,101 +665,101 @@ static void RGA2_set_reg_dst_info(u8 *base, struct rga2_req *msg) (u32 *) (base + RGA2_DST_QUANTIZE_OFFSET_OFFSET); switch (msg->src1.format) { - case RGA2_FORMAT_RGBA_8888: + case RGA_FORMAT_RGBA_8888: src1_format = 0x0; spw = 4; break; - case RGA2_FORMAT_BGRA_8888: + case RGA_FORMAT_BGRA_8888: src1_format = 0x0; src1_rb_swp = 0x1; spw = 4; break; - case RGA2_FORMAT_RGBX_8888: + case RGA_FORMAT_RGBX_8888: src1_format = 0x1; spw = 4; break; - case RGA2_FORMAT_BGRX_8888: + case RGA_FORMAT_BGRX_8888: src1_format = 0x1; src1_rb_swp = 0x1; spw = 4; break; - case RGA2_FORMAT_RGB_888: + case RGA_FORMAT_RGB_888: src1_format = 0x2; spw = 3; break; - case RGA2_FORMAT_BGR_888: + case RGA_FORMAT_BGR_888: src1_format = 0x2; src1_rb_swp = 1; spw = 3; break; - case RGA2_FORMAT_RGB_565: + case RGA_FORMAT_RGB_565: src1_format = 0x4; spw = 2; break; - case RGA2_FORMAT_RGBA_5551: + case RGA_FORMAT_RGBA_5551: src1_format = 0x5; spw = 2; break; - case RGA2_FORMAT_RGBA_4444: + case RGA_FORMAT_RGBA_4444: src1_format = 0x6; spw = 2; break; - case RGA2_FORMAT_BGR_565: + case RGA_FORMAT_BGR_565: src1_format = 0x4; spw = 2; src1_rb_swp = 0x1; break; - case RGA2_FORMAT_BGRA_5551: + case RGA_FORMAT_BGRA_5551: src1_format = 0x5; spw = 2; src1_rb_swp = 0x1; break; - case RGA2_FORMAT_BGRA_4444: + case RGA_FORMAT_BGRA_4444: src1_format = 0x6; spw = 2; src1_rb_swp = 0x1; break; /* ARGB */ - case RGA2_FORMAT_ARGB_8888: + case RGA_FORMAT_ARGB_8888: src1_format = 0x0; spw = 4; src1_alpha_swp = 1; break; - case RGA2_FORMAT_ABGR_8888: + case RGA_FORMAT_ABGR_8888: src1_format = 0x0; spw = 4; src1_alpha_swp = 1; src1_rb_swp = 0x1; break; - case RGA2_FORMAT_XRGB_8888: + case RGA_FORMAT_XRGB_8888: src1_format = 0x1; spw = 4; src1_alpha_swp = 1; break; - case RGA2_FORMAT_XBGR_8888: + case RGA_FORMAT_XBGR_8888: src1_format = 0x1; spw = 4; src1_alpha_swp = 1; src1_rb_swp = 0x1; break; - case RGA2_FORMAT_ARGB_5551: + case RGA_FORMAT_ARGB_5551: src1_format = 0x5; spw = 2; src1_alpha_swp = 1; break; - case RGA2_FORMAT_ABGR_5551: + case RGA_FORMAT_ABGR_5551: src1_format = 0x5; spw = 2; src1_alpha_swp = 1; src1_rb_swp = 0x1; break; - case RGA2_FORMAT_ARGB_4444: + case RGA_FORMAT_ARGB_4444: src1_format = 0x6; spw = 2; src1_alpha_swp = 1; break; - case RGA2_FORMAT_ABGR_4444: + case RGA_FORMAT_ABGR_4444: src1_format = 0x6; spw = 2; src1_alpha_swp = 1; @@ -781,159 +781,159 @@ static void RGA2_set_reg_dst_info(u8 *base, struct rga2_req *msg) (s_RGA2_DST_INFO_SW_SRC1_ALPHA_SWP(src1_alpha_swp))); switch (msg->dst.format) { - case RGA2_FORMAT_RGBA_8888: + case RGA_FORMAT_RGBA_8888: dst_format = 0x0; dpw = 4; break; - case RGA2_FORMAT_BGRA_8888: + case RGA_FORMAT_BGRA_8888: dst_format = 0x0; dst_rb_swp = 0x1; dpw = 4; break; - case RGA2_FORMAT_RGBX_8888: + case RGA_FORMAT_RGBX_8888: dst_format = 0x1; dpw = 4; break; - case RGA2_FORMAT_BGRX_8888: + case RGA_FORMAT_BGRX_8888: dst_format = 0x1; dst_rb_swp = 0x1; dpw = 4; break; - case RGA2_FORMAT_RGB_888: + case RGA_FORMAT_RGB_888: dst_format = 0x2; dpw = 3; break; - case RGA2_FORMAT_BGR_888: + case RGA_FORMAT_BGR_888: dst_format = 0x2; dst_rb_swp = 1; dpw = 3; break; - case RGA2_FORMAT_RGB_565: + case RGA_FORMAT_RGB_565: dst_format = 0x4; dpw = 2; break; - case RGA2_FORMAT_RGBA_5551: + case RGA_FORMAT_RGBA_5551: dst_format = 0x5; dpw = 2; break; - case RGA2_FORMAT_RGBA_4444: + case RGA_FORMAT_RGBA_4444: dst_format = 0x6; dpw = 2; break; - case RGA2_FORMAT_BGR_565: + case RGA_FORMAT_BGR_565: dst_format = 0x4; dpw = 2; dst_rb_swp = 0x1; break; - case RGA2_FORMAT_BGRA_5551: + case RGA_FORMAT_BGRA_5551: dst_format = 0x5; dpw = 2; dst_rb_swp = 0x1; break; - case RGA2_FORMAT_BGRA_4444: + case RGA_FORMAT_BGRA_4444: dst_format = 0x6; dpw = 2; dst_rb_swp = 0x1; break; /* ARGB */ - case RGA2_FORMAT_ARGB_8888: + case RGA_FORMAT_ARGB_8888: dst_format = 0x0; dpw = 4; dst_alpha_swp = 1; break; - case RGA2_FORMAT_ABGR_8888: + case RGA_FORMAT_ABGR_8888: dst_format = 0x0; dpw = 4; dst_alpha_swp = 1; dst_rb_swp = 0x1; break; - case RGA2_FORMAT_XRGB_8888: + case RGA_FORMAT_XRGB_8888: dst_format = 0x1; dpw = 4; dst_alpha_swp = 1; break; - case RGA2_FORMAT_XBGR_8888: + case RGA_FORMAT_XBGR_8888: dst_format = 0x1; dpw = 4; dst_alpha_swp = 1; dst_rb_swp = 0x1; break; - case RGA2_FORMAT_ARGB_5551: + case RGA_FORMAT_ARGB_5551: dst_format = 0x5; dpw = 2; dst_alpha_swp = 1; break; - case RGA2_FORMAT_ABGR_5551: + case RGA_FORMAT_ABGR_5551: dst_format = 0x5; dpw = 2; dst_alpha_swp = 1; dst_rb_swp = 0x1; break; - case RGA2_FORMAT_ARGB_4444: + case RGA_FORMAT_ARGB_4444: dst_format = 0x6; dpw = 2; dst_alpha_swp = 1; break; - case RGA2_FORMAT_ABGR_4444: + case RGA_FORMAT_ABGR_4444: dst_format = 0x6; dpw = 2; dst_alpha_swp = 1; dst_rb_swp = 0x1; break; - case RGA2_FORMAT_YCbCr_422_SP: + case RGA_FORMAT_YCbCr_422_SP: dst_format = 0x8; x_div = 1; y_div = 1; break; - case RGA2_FORMAT_YCbCr_422_P: + case RGA_FORMAT_YCbCr_422_P: dst_format = 0x9; x_div = 2; y_div = 1; break; - case RGA2_FORMAT_YCbCr_420_SP: + case RGA_FORMAT_YCbCr_420_SP: dst_format = 0xa; x_div = 1; y_div = 2; break; - case RGA2_FORMAT_YCbCr_420_P: + case RGA_FORMAT_YCbCr_420_P: dst_format = 0xb; dst_cbcr_swp = 1; x_div = 2; y_div = 2; break; - case RGA2_FORMAT_YCrCb_422_SP: + case RGA_FORMAT_YCrCb_422_SP: dst_format = 0x8; dst_cbcr_swp = 1; x_div = 1; y_div = 1; break; - case RGA2_FORMAT_YCrCb_422_P: + case RGA_FORMAT_YCrCb_422_P: dst_format = 0x9; dst_cbcr_swp = 1; x_div = 2; y_div = 1; break; - case RGA2_FORMAT_YCrCb_420_SP: + case RGA_FORMAT_YCrCb_420_SP: dst_format = 0xa; dst_cbcr_swp = 1; x_div = 1; y_div = 2; break; - case RGA2_FORMAT_YCrCb_420_P: + case RGA_FORMAT_YCrCb_420_P: dst_format = 0xb; x_div = 2; y_div = 2; break; - case RGA2_FORMAT_YCbCr_400: + case RGA_FORMAT_YCbCr_400: dst_format = 0x8; dst_fmt_yuv400_en = 1; x_div = 1; y_div = 1; break; - case RGA2_FORMAT_Y4: + case RGA_FORMAT_Y4: dst_format = 0x8; dst_fmt_y4_en = 1; dst_fmt_yuv400_en = 1; @@ -941,39 +941,39 @@ static void RGA2_set_reg_dst_info(u8 *base, struct rga2_req *msg) y_div = 1; break; - case RGA2_FORMAT_YUYV_422: + case RGA_FORMAT_YUYV_422: dst_format = 0xe; dpw = 2; dst_cbcr_swp = 1; break; - case RGA2_FORMAT_YVYU_422: + case RGA_FORMAT_YVYU_422: dst_format = 0xe; dpw = 2; break; - case RGA2_FORMAT_YUYV_420: + case RGA_FORMAT_YUYV_420: dst_format = 0xf; dpw = 2; dst_cbcr_swp = 1; break; - case RGA2_FORMAT_YVYU_420: + case RGA_FORMAT_YVYU_420: dst_format = 0xf; dpw = 2; break; - case RGA2_FORMAT_UYVY_422: + case RGA_FORMAT_UYVY_422: dst_format = 0xc; dpw = 2; dst_cbcr_swp = 1; break; - case RGA2_FORMAT_VYUY_422: + case RGA_FORMAT_VYUY_422: dst_format = 0xc; dpw = 2; break; - case RGA2_FORMAT_UYVY_420: + case RGA_FORMAT_UYVY_420: dst_format = 0xd; dpw = 2; dst_cbcr_swp = 1; break; - case RGA2_FORMAT_VYUY_420: + case RGA_FORMAT_VYUY_420: dst_format = 0xd; dpw = 2; break; @@ -1032,7 +1032,7 @@ static void RGA2_set_reg_dst_info(u8 *base, struct rga2_req *msg) (s_RGA2_DST_INFO_SW_SRC1_CSC_CLIP_MODE( msg->yuv2rgb_mode >> 7))); - ydither_en = (msg->dst.format == RGA2_FORMAT_Y4) + ydither_en = (msg->dst.format == RGA_FORMAT_Y4) && ((msg->alpha_rop_flag >> 6) & 0x1); *bRGA_DST_INFO = reg; @@ -1051,8 +1051,8 @@ static void RGA2_set_reg_dst_info(u8 *base, struct rga2_req *msg) if ((msg->dst.vir_w % 2 != 0) && (msg->dst.act_w == msg->src.act_w) && (msg->dst.act_h == msg->src.act_h) - && (msg->dst.format == RGA2_FORMAT_BGR_888 - || msg->dst.format == RGA2_FORMAT_RGB_888)) + && (msg->dst.format == RGA_FORMAT_BGR_888 + || msg->dst.format == RGA_FORMAT_RGB_888)) *bRGA_DST_ACT_INFO = (msg->dst.act_w) | ((msg->dst.act_h - 1) << 16); else @@ -1213,8 +1213,8 @@ static void RGA2_set_reg_dst_info(u8 *base, struct rga2_req *msg) *bRGA_DST_BASE0 = (u32) yrgb_addr; - if ((msg->dst.format == RGA2_FORMAT_YCbCr_420_P) - || (msg->dst.format == RGA2_FORMAT_YCrCb_420_P)) { + if ((msg->dst.format == RGA_FORMAT_YCbCr_420_P) + || (msg->dst.format == RGA_FORMAT_YCrCb_420_P)) { if (dst_cbcr_swp == 0) { *bRGA_DST_BASE1 = (u32) v_addr; *bRGA_DST_BASE2 = (u32) u_addr; @@ -1641,7 +1641,7 @@ int rga2_gen_reg_info(u8 *base, u8 *csc_base, struct rga2_req *msg) dst_nn_quantize_en = (msg->alpha_rop_flag >> 8) & 0x1; if (dst_nn_quantize_en != 1) { if ((msg->dst.format != - RGA2_FORMAT_Y4)) { + RGA_FORMAT_Y4)) { RGA2_set_reg_alpha_info(base, msg); RGA2_set_reg_rop_info(base, msg); } @@ -1696,9 +1696,9 @@ void rga_cmd_to_rga2_cmd(struct rga_req *req_rga, struct rga2_req *req) else memcpy(&req->src1, &req_rga->pat, sizeof(req_rga->pat)); - rga_user_format_convert(&req->src.format, req_rga->src.format); - rga_user_format_convert(&req->dst.format, req_rga->dst.format); - rga_user_format_convert(&req->src1.format, req_rga->pat.format); + req->src.format = req_rga->src.format; + req->dst.format = req_rga->dst.format; + req->src1.format = req_rga->pat.format; switch (req_rga->rotate_mode & 0x0F) { case 1: diff --git a/drivers/video/rockchip/rga3/rga3_reg_info.c b/drivers/video/rockchip/rga3/rga3_reg_info.c index df8c9e46765a..d6d21c62b3ac 100644 --- a/drivers/video/rockchip/rga3/rga3_reg_info.c +++ b/drivers/video/rockchip/rga3/rga3_reg_info.c @@ -180,71 +180,71 @@ static void RGA3_set_reg_win0_info(u8 *base, struct rga3_req *msg) param_y = FACTOR_MAX * (dh - 1) / (sh - 1) + 1; switch (msg->win0.format) { - case RGA2_FORMAT_RGBA_8888: + case RGA_FORMAT_RGBA_8888: win_format = 0x8; pixel_width = 4; win_interleaved = 2; break; - case RGA2_FORMAT_BGRA_8888: + case RGA_FORMAT_BGRA_8888: win_format = 0x6; pixel_width = 4; win_interleaved = 2; break; - case RGA2_FORMAT_ARGB_8888: + case RGA_FORMAT_ARGB_8888: win_format = 0x9; pixel_width = 4; win_interleaved = 2; break; - case RGA2_FORMAT_ABGR_8888: + case RGA_FORMAT_ABGR_8888: win_format = 0x7; pixel_width = 4; win_interleaved = 2; break; - case RGA2_FORMAT_RGB_888: + case RGA_FORMAT_RGB_888: win_format = 0x5; pixel_width = 3; win_interleaved = 2; win_pix_swp = 1; break; - case RGA2_FORMAT_BGR_888: + case RGA_FORMAT_BGR_888: win_format = 0x5; pixel_width = 3; win_interleaved = 2; break; - case RGA2_FORMAT_RGB_565: + case RGA_FORMAT_RGB_565: win_format = 0x4; pixel_width = 2; win_interleaved = 2; win_pix_swp = 1; break; - case RGA2_FORMAT_BGR_565: + case RGA_FORMAT_BGR_565: win_format = 0x4; pixel_width = 2; win_interleaved = 2; break; - case RGA2_FORMAT_YVYU_422: + case RGA_FORMAT_YVYU_422: win_format = 0x1; pixel_width = 2; win_pix_swp = 1; win_yc_swp = 1; win_interleaved = 2; break; - case RGA2_FORMAT_VYUY_422: + case RGA_FORMAT_VYUY_422: win_format = 0x1; pixel_width = 2; win_pix_swp = 1; win_yc_swp = 0; win_interleaved = 2; break; - case RGA2_FORMAT_YUYV_422: + case RGA_FORMAT_YUYV_422: win_format = 0x1; pixel_width = 2; win_pix_swp = 0; win_yc_swp = 1; win_interleaved = 2; break; - case RGA2_FORMAT_UYVY_422: + case RGA_FORMAT_UYVY_422: win_format = 0x1; pixel_width = 2; win_pix_swp = 0; @@ -252,35 +252,35 @@ static void RGA3_set_reg_win0_info(u8 *base, struct rga3_req *msg) win_interleaved = 2; break; - case RGA2_FORMAT_YCbCr_422_SP: + case RGA_FORMAT_YCbCr_422_SP: win_format = 0x1; break; - case RGA2_FORMAT_YCbCr_420_SP: + case RGA_FORMAT_YCbCr_420_SP: win_format = 0x0; break; - case RGA2_FORMAT_YCrCb_422_SP: + case RGA_FORMAT_YCrCb_422_SP: win_format = 0x1; win_pix_swp = 1; break; - case RGA2_FORMAT_YCrCb_420_SP: + case RGA_FORMAT_YCrCb_420_SP: win_format = 0x0; win_pix_swp = 1; break; - case RGA2_FORMAT_YCbCr_420_SP_10B: + case RGA_FORMAT_YCbCr_420_SP_10B: win_format = 0x2; yuv10 = 1; break; - case RGA2_FORMAT_YCrCb_420_SP_10B: + case RGA_FORMAT_YCrCb_420_SP_10B: win_format = 0x2; yuv10 = 1; win_pix_swp = 1; break; - case RGA2_FORMAT_YCbCr_422_SP_10B: + case RGA_FORMAT_YCbCr_422_SP_10B: win_format = 0x3; yuv10 = 1; break; - case RGA2_FORMAT_YCrCb_422_SP_10B: + case RGA_FORMAT_YCrCb_422_SP_10B: win_format = 0x3; yuv10 = 1; win_pix_swp = 1; @@ -399,10 +399,10 @@ static void RGA3_set_reg_win0_info(u8 *base, struct rga3_req *msg) else stride = ((msg->win0.vir_w + 15) & ~15) >> 2; - if (msg->win0.format == RGA2_FORMAT_YCbCr_420_SP - || msg->win0.format == RGA2_FORMAT_YCrCb_420_SP - || msg->win0.format == RGA2_FORMAT_YCbCr_420_SP_10B - || msg->win0.format == RGA2_FORMAT_YCrCb_420_SP_10B) + if (msg->win0.format == RGA_FORMAT_YCbCr_420_SP + || msg->win0.format == RGA_FORMAT_YCrCb_420_SP + || msg->win0.format == RGA_FORMAT_YCbCr_420_SP_10B + || msg->win0.format == RGA_FORMAT_YCrCb_420_SP_10B) uv_stride = ((msg->win0.vir_w + 15) & ~15) >> 2; else uv_stride = stride; @@ -595,71 +595,71 @@ static void RGA3_set_reg_win1_info(u8 *base, struct rga3_req *msg) param_y = (FACTOR_MAX * (dh - 1)) / (sh - 1) + 1; switch (msg->win1.format) { - case RGA2_FORMAT_RGBA_8888: + case RGA_FORMAT_RGBA_8888: win_format = 0x8; pixel_width = 4; win_interleaved = 2; break; - case RGA2_FORMAT_BGRA_8888: + case RGA_FORMAT_BGRA_8888: win_format = 0x6; pixel_width = 4; win_interleaved = 2; break; - case RGA2_FORMAT_ARGB_8888: + case RGA_FORMAT_ARGB_8888: win_format = 0x9; pixel_width = 4; win_interleaved = 2; break; - case RGA2_FORMAT_ABGR_8888: + case RGA_FORMAT_ABGR_8888: win_format = 0x7; pixel_width = 4; win_interleaved = 2; break; - case RGA2_FORMAT_RGB_888: + case RGA_FORMAT_RGB_888: win_format = 0x5; pixel_width = 3; win_interleaved = 2; win_pix_swp = 1; break; - case RGA2_FORMAT_BGR_888: + case RGA_FORMAT_BGR_888: win_format = 0x5; pixel_width = 3; win_interleaved = 2; break; - case RGA2_FORMAT_RGB_565: + case RGA_FORMAT_RGB_565: win_format = 0x4; pixel_width = 2; win_interleaved = 2; win_pix_swp = 1; break; - case RGA2_FORMAT_BGR_565: + case RGA_FORMAT_BGR_565: win_format = 0x4; pixel_width = 2; win_interleaved = 2; break; - case RGA2_FORMAT_YVYU_422: + case RGA_FORMAT_YVYU_422: win_format = 0x1; pixel_width = 2; win_pix_swp = 1; win_yc_swp = 1; win_interleaved = 2; break; - case RGA2_FORMAT_VYUY_422: + case RGA_FORMAT_VYUY_422: win_format = 0x1; pixel_width = 2; win_pix_swp = 1; win_yc_swp = 0; win_interleaved = 2; break; - case RGA2_FORMAT_YUYV_422: + case RGA_FORMAT_YUYV_422: win_format = 0x1; pixel_width = 2; win_pix_swp = 0; win_yc_swp = 1; win_interleaved = 2; break; - case RGA2_FORMAT_UYVY_422: + case RGA_FORMAT_UYVY_422: win_format = 0x1; pixel_width = 2; win_pix_swp = 0; @@ -667,35 +667,35 @@ static void RGA3_set_reg_win1_info(u8 *base, struct rga3_req *msg) win_interleaved = 2; break; - case RGA2_FORMAT_YCbCr_422_SP: + case RGA_FORMAT_YCbCr_422_SP: win_format = 0x1; break; - case RGA2_FORMAT_YCbCr_420_SP: + case RGA_FORMAT_YCbCr_420_SP: win_format = 0x0; break; - case RGA2_FORMAT_YCrCb_422_SP: + case RGA_FORMAT_YCrCb_422_SP: win_format = 0x1; win_pix_swp = 1; break; - case RGA2_FORMAT_YCrCb_420_SP: + case RGA_FORMAT_YCrCb_420_SP: win_format = 0x0; win_pix_swp = 1; break; - case RGA2_FORMAT_YCbCr_420_SP_10B: + case RGA_FORMAT_YCbCr_420_SP_10B: win_format = 0x2; yuv10 = 1; break; - case RGA2_FORMAT_YCrCb_420_SP_10B: + case RGA_FORMAT_YCrCb_420_SP_10B: win_format = 0x2; win_pix_swp = 1; yuv10 = 1; break; - case RGA2_FORMAT_YCbCr_422_SP_10B: + case RGA_FORMAT_YCbCr_422_SP_10B: win_format = 0x3; yuv10 = 1; break; - case RGA2_FORMAT_YCrCb_422_SP_10B: + case RGA_FORMAT_YCrCb_422_SP_10B: win_format = 0x3; win_pix_swp = 1; yuv10 = 1; @@ -799,10 +799,10 @@ static void RGA3_set_reg_win1_info(u8 *base, struct rga3_req *msg) else stride = ((msg->win1.vir_w + 15) & ~15) >> 2; - if (msg->win1.format == RGA2_FORMAT_YCbCr_420_SP - || msg->win1.format == RGA2_FORMAT_YCrCb_420_SP - || msg->win1.format == RGA2_FORMAT_YCbCr_420_SP_10B - || msg->win1.format == RGA2_FORMAT_YCrCb_420_SP_10B) + if (msg->win1.format == RGA_FORMAT_YCbCr_420_SP + || msg->win1.format == RGA_FORMAT_YCrCb_420_SP + || msg->win1.format == RGA_FORMAT_YCbCr_420_SP_10B + || msg->win1.format == RGA_FORMAT_YCrCb_420_SP_10B) uv_stride = ((msg->win1.vir_w + 15) & ~15) >> 2; else uv_stride = stride; @@ -874,62 +874,62 @@ static void RGA3_set_reg_wr_info(u8 *base, struct rga3_req *msg) (u32 *) (base + RGA3_WR_PL_VIR_STRIDE_OFFSET); switch (msg->wr.format) { - case RGA2_FORMAT_RGBA_8888: + case RGA_FORMAT_RGBA_8888: wr_format = 0x6; pixel_width = 4; wr_interleaved = 2; wr_pix_swp = 1; break; - case RGA2_FORMAT_BGRA_8888: + case RGA_FORMAT_BGRA_8888: wr_format = 0x6; pixel_width = 4; wr_interleaved = 2; break; - case RGA2_FORMAT_RGB_888: + case RGA_FORMAT_RGB_888: wr_format = 0x5; pixel_width = 3; wr_interleaved = 2; wr_pix_swp = 1; break; - case RGA2_FORMAT_BGR_888: + case RGA_FORMAT_BGR_888: wr_format = 0x5; pixel_width = 3; wr_interleaved = 2; break; - case RGA2_FORMAT_RGB_565: + case RGA_FORMAT_RGB_565: wr_format = 0x4; pixel_width = 2; wr_interleaved = 2; wr_pix_swp = 1; break; - case RGA2_FORMAT_BGR_565: + case RGA_FORMAT_BGR_565: wr_format = 0x4; pixel_width = 2; wr_interleaved = 2; break; - case RGA2_FORMAT_YVYU_422: + case RGA_FORMAT_YVYU_422: wr_format = 0x1; pixel_width = 2; wr_pix_swp = 1; wr_yc_swp = 1; wr_interleaved = 2; break; - case RGA2_FORMAT_VYUY_422: + case RGA_FORMAT_VYUY_422: wr_format = 0x1; pixel_width = 2; wr_pix_swp = 1; wr_yc_swp = 0; wr_interleaved = 2; break; - case RGA2_FORMAT_YUYV_422: + case RGA_FORMAT_YUYV_422: wr_format = 0x1; pixel_width = 2; wr_pix_swp = 0; wr_yc_swp = 1; wr_interleaved = 2; break; - case RGA2_FORMAT_UYVY_422: + case RGA_FORMAT_UYVY_422: wr_format = 0x1; pixel_width = 2; wr_pix_swp = 0; @@ -937,35 +937,35 @@ static void RGA3_set_reg_wr_info(u8 *base, struct rga3_req *msg) wr_interleaved = 2; break; - case RGA2_FORMAT_YCbCr_422_SP: + case RGA_FORMAT_YCbCr_422_SP: wr_format = 0x1; break; - case RGA2_FORMAT_YCbCr_420_SP: + case RGA_FORMAT_YCbCr_420_SP: wr_format = 0x0; break; - case RGA2_FORMAT_YCrCb_422_SP: + case RGA_FORMAT_YCrCb_422_SP: wr_format = 0x1; wr_pix_swp = 1; break; - case RGA2_FORMAT_YCrCb_420_SP: + case RGA_FORMAT_YCrCb_420_SP: wr_format = 0x0; wr_pix_swp = 1; break; - case RGA2_FORMAT_YCbCr_420_SP_10B: + case RGA_FORMAT_YCbCr_420_SP_10B: wr_format = 0x2; yuv10 = 1; break; - case RGA2_FORMAT_YCrCb_420_SP_10B: + case RGA_FORMAT_YCrCb_420_SP_10B: wr_format = 0x2; wr_pix_swp = 1; yuv10 = 1; break; - case RGA2_FORMAT_YCbCr_422_SP_10B: + case RGA_FORMAT_YCbCr_422_SP_10B: wr_format = 0x3; yuv10 = 1; break; - case RGA2_FORMAT_YCrCb_422_SP_10B: + case RGA_FORMAT_YCrCb_422_SP_10B: wr_format = 0x3; wr_pix_swp = 1; yuv10 = 1; @@ -1355,8 +1355,8 @@ void rga_cmd_to_rga3_cmd(struct rga_req *req_rga, struct rga3_req *req) addr_copy(&req->win0, &req_rga->src); addr_copy(&req->wr, &req_rga->dst); - rga_user_format_convert(&req->win0.format, req_rga->src.format); - rga_user_format_convert(&req->wr.format, req_rga->dst.format); + req->win0.format = req_rga->src.format; + req->wr.format = req_rga->dst.format; } else { /* A+B->C */ if (req_rga->pat.yrgb_addr != 0) { @@ -1369,9 +1369,9 @@ void rga_cmd_to_rga3_cmd(struct rga_req *req_rga, struct rga3_req *req) addr_copy(&req->win0, &req_rga->pat); addr_copy(&req->wr, &req_rga->dst); - rga_user_format_convert(&req->win0.format, req_rga->src.format); - rga_user_format_convert(&req->wr.format, req_rga->dst.format); - rga_user_format_convert(&req->win1.format, req_rga->pat.format); + req->win0.format = req_rga->src.format; + req->wr.format = req_rga->dst.format; + req->win1.format = req_rga->pat.format; } else { /* A+B->B */ @@ -1387,9 +1387,9 @@ void rga_cmd_to_rga3_cmd(struct rga_req *req_rga, struct rga3_req *req) addr_copy(&req->win0, &req_rga->dst); addr_copy(&req->wr, &req_rga->dst); - rga_user_format_convert(&req->win1.format, req_rga->src.format); - rga_user_format_convert(&req->wr.format, req_rga->dst.format); - rga_user_format_convert(&req->win0.format, req_rga->dst.format); + req->win1.format = req_rga->src.format; + req->wr.format = req_rga->dst.format; + req->win0.format = req_rga->dst.format; } /* set win0 dst size */ diff --git a/drivers/video/rockchip/rga3/rga_common.c b/drivers/video/rockchip/rga3/rga_common.c index 31bbe3ff54ca..a2a0d54c67ba 100644 --- a/drivers/video/rockchip/rga3/rga_common.c +++ b/drivers/video/rockchip/rga3/rga_common.c @@ -10,179 +10,29 @@ #include "rga.h" #include "rga_common.h" -void rga_user_format_convert(uint32_t *df, uint32_t sf) -{ - switch (sf) { - case 0x0: - *df = RGA2_FORMAT_RGBA_8888; - break; - case 0x1: - *df = RGA2_FORMAT_RGBX_8888; - break; - case 0x2: - *df = RGA2_FORMAT_RGB_888; - break; - case 0x3: - *df = RGA2_FORMAT_BGRA_8888; - break; - case 0x4: - *df = RGA2_FORMAT_RGB_565; - break; - case 0x5: - *df = RGA2_FORMAT_RGBA_5551; - break; - case 0x6: - *df = RGA2_FORMAT_RGBA_4444; - break; - case 0x7: - *df = RGA2_FORMAT_BGR_888; - break; - case 0x16: - *df = RGA2_FORMAT_BGRX_8888; - break; - case 0x8: - *df = RGA2_FORMAT_YCbCr_422_SP; - break; - case 0x9: - *df = RGA2_FORMAT_YCbCr_422_P; - break; - case 0xa: - *df = RGA2_FORMAT_YCbCr_420_SP; - break; - case 0xb: - *df = RGA2_FORMAT_YCbCr_420_P; - break; - case 0xc: - *df = RGA2_FORMAT_YCrCb_422_SP; - break; - case 0xd: - *df = RGA2_FORMAT_YCrCb_422_P; - break; - case 0xe: - *df = RGA2_FORMAT_YCrCb_420_SP; - break; - case 0xf: - *df = RGA2_FORMAT_YCrCb_420_P; - break; - - case 0x10: - *df = RGA2_FORMAT_BPP_1; - break; - case 0x11: - *df = RGA2_FORMAT_BPP_2; - break; - case 0x12: - *df = RGA2_FORMAT_BPP_4; - break; - case 0x13: - *df = RGA2_FORMAT_BPP_8; - break; - - case 0x14: - *df = RGA2_FORMAT_Y4; - break; - case 0x15: - *df = RGA2_FORMAT_YCbCr_400; - break; - - case 0x18: - *df = RGA2_FORMAT_YVYU_422; - break; - case 0x19: - *df = RGA2_FORMAT_YVYU_420; - break; - case 0x1a: - *df = RGA2_FORMAT_VYUY_422; - break; - case 0x1b: - *df = RGA2_FORMAT_VYUY_420; - break; - case 0x1c: - *df = RGA2_FORMAT_YUYV_422; - break; - case 0x1d: - *df = RGA2_FORMAT_YUYV_420; - break; - case 0x1e: - *df = RGA2_FORMAT_UYVY_422; - break; - case 0x1f: - *df = RGA2_FORMAT_UYVY_420; - break; - - case 0x20: - *df = RGA2_FORMAT_YCbCr_420_SP_10B; - break; - case 0x21: - *df = RGA2_FORMAT_YCrCb_420_SP_10B; - break; - case 0x22: - *df = RGA2_FORMAT_YCbCr_422_SP_10B; - break; - case 0x23: - *df = RGA2_FORMAT_YCrCb_422_SP_10B; - break; - - case 0x24: - *df = RGA2_FORMAT_BGR_565; - break; - case 0x25: - *df = RGA2_FORMAT_BGRA_5551; - break; - case 0x26: - *df = RGA2_FORMAT_BGRA_4444; - break; - - case 0x28: - *df = RGA2_FORMAT_ARGB_8888; - break; - case 0x29: - *df = RGA2_FORMAT_XRGB_8888; - break; - case 0x2a: - *df = RGA2_FORMAT_ARGB_5551; - break; - case 0x2b: - *df = RGA2_FORMAT_ARGB_4444; - break; - case 0x2c: - *df = RGA2_FORMAT_ABGR_8888; - break; - case 0x2d: - *df = RGA2_FORMAT_XBGR_8888; - break; - case 0x2e: - *df = RGA2_FORMAT_ABGR_5551; - break; - case 0x2f: - *df = RGA2_FORMAT_ABGR_4444; - break; - } -} - bool rga_is_rgb_format(uint32_t format) { switch (format) { - case RGA2_FORMAT_RGBA_8888: - case RGA2_FORMAT_RGBX_8888: - case RGA2_FORMAT_RGB_888: - case RGA2_FORMAT_BGRA_8888: - case RGA2_FORMAT_BGRX_8888: - case RGA2_FORMAT_BGR_888: - case RGA2_FORMAT_RGB_565: - case RGA2_FORMAT_RGBA_5551: - case RGA2_FORMAT_RGBA_4444: - case RGA2_FORMAT_BGR_565: - case RGA2_FORMAT_BGRA_5551: - case RGA2_FORMAT_BGRA_4444: - case RGA2_FORMAT_ARGB_8888: - case RGA2_FORMAT_XRGB_8888: - case RGA2_FORMAT_ARGB_5551: - case RGA2_FORMAT_ARGB_4444: - case RGA2_FORMAT_ABGR_8888: - case RGA2_FORMAT_XBGR_8888: - case RGA2_FORMAT_ABGR_5551: - case RGA2_FORMAT_ABGR_4444: + case RGA_FORMAT_RGBA_8888: + case RGA_FORMAT_RGBX_8888: + case RGA_FORMAT_RGB_888: + case RGA_FORMAT_BGRA_8888: + case RGA_FORMAT_BGRX_8888: + case RGA_FORMAT_BGR_888: + case RGA_FORMAT_RGB_565: + case RGA_FORMAT_RGBA_5551: + case RGA_FORMAT_RGBA_4444: + case RGA_FORMAT_BGR_565: + case RGA_FORMAT_BGRA_5551: + case RGA_FORMAT_BGRA_4444: + case RGA_FORMAT_ARGB_8888: + case RGA_FORMAT_XRGB_8888: + case RGA_FORMAT_ARGB_5551: + case RGA_FORMAT_ARGB_4444: + case RGA_FORMAT_ABGR_8888: + case RGA_FORMAT_XBGR_8888: + case RGA_FORMAT_ABGR_5551: + case RGA_FORMAT_ABGR_4444: return true; default: return false; @@ -192,31 +42,31 @@ bool rga_is_rgb_format(uint32_t format) bool rga_is_yuv_format(uint32_t format) { switch (format) { - case RGA2_FORMAT_Y4: - case RGA2_FORMAT_YCbCr_400: + case RGA_FORMAT_Y4: + case RGA_FORMAT_YCbCr_400: - case RGA2_FORMAT_YCbCr_422_SP: - case RGA2_FORMAT_YCbCr_422_P: - case RGA2_FORMAT_YCbCr_420_SP: - case RGA2_FORMAT_YCbCr_420_P: - case RGA2_FORMAT_YCrCb_422_SP: - case RGA2_FORMAT_YCrCb_422_P: - case RGA2_FORMAT_YCrCb_420_SP: - case RGA2_FORMAT_YCrCb_420_P: + case RGA_FORMAT_YCbCr_422_SP: + case RGA_FORMAT_YCbCr_422_P: + case RGA_FORMAT_YCbCr_420_SP: + case RGA_FORMAT_YCbCr_420_P: + case RGA_FORMAT_YCrCb_422_SP: + case RGA_FORMAT_YCrCb_422_P: + case RGA_FORMAT_YCrCb_420_SP: + case RGA_FORMAT_YCrCb_420_P: - case RGA2_FORMAT_YVYU_422: - case RGA2_FORMAT_YVYU_420: - case RGA2_FORMAT_VYUY_422: - case RGA2_FORMAT_VYUY_420: - case RGA2_FORMAT_YUYV_422: - case RGA2_FORMAT_YUYV_420: - case RGA2_FORMAT_UYVY_422: - case RGA2_FORMAT_UYVY_420: + case RGA_FORMAT_YVYU_422: + case RGA_FORMAT_YVYU_420: + case RGA_FORMAT_VYUY_422: + case RGA_FORMAT_VYUY_420: + case RGA_FORMAT_YUYV_422: + case RGA_FORMAT_YUYV_420: + case RGA_FORMAT_UYVY_422: + case RGA_FORMAT_UYVY_420: - case RGA2_FORMAT_YCbCr_420_SP_10B: - case RGA2_FORMAT_YCrCb_420_SP_10B: - case RGA2_FORMAT_YCbCr_422_SP_10B: - case RGA2_FORMAT_YCrCb_422_SP_10B: + case RGA_FORMAT_YCbCr_420_SP_10B: + case RGA_FORMAT_YCrCb_420_SP_10B: + case RGA_FORMAT_YCbCr_422_SP_10B: + case RGA_FORMAT_YCrCb_422_SP_10B: return true; default: return false; @@ -226,18 +76,18 @@ bool rga_is_yuv_format(uint32_t format) bool rga_is_alpha_format(uint32_t format) { switch (format) { - case RGA2_FORMAT_RGBA_8888: - case RGA2_FORMAT_BGRA_8888: - case RGA2_FORMAT_RGBA_5551: - case RGA2_FORMAT_RGBA_4444: - case RGA2_FORMAT_BGRA_5551: - case RGA2_FORMAT_BGRA_4444: - case RGA2_FORMAT_ARGB_8888: - case RGA2_FORMAT_ARGB_5551: - case RGA2_FORMAT_ARGB_4444: - case RGA2_FORMAT_ABGR_8888: - case RGA2_FORMAT_ABGR_5551: - case RGA2_FORMAT_ABGR_4444: + case RGA_FORMAT_RGBA_8888: + case RGA_FORMAT_BGRA_8888: + case RGA_FORMAT_RGBA_5551: + case RGA_FORMAT_RGBA_4444: + case RGA_FORMAT_BGRA_5551: + case RGA_FORMAT_BGRA_4444: + case RGA_FORMAT_ARGB_8888: + case RGA_FORMAT_ARGB_5551: + case RGA_FORMAT_ARGB_4444: + case RGA_FORMAT_ABGR_8888: + case RGA_FORMAT_ABGR_5551: + case RGA_FORMAT_ABGR_4444: return true; default: return false; @@ -247,10 +97,10 @@ bool rga_is_alpha_format(uint32_t format) bool rga_is_yuv420_packed_format(uint32_t format) { switch (format) { - case RGA2_FORMAT_YVYU_420: - case RGA2_FORMAT_VYUY_420: - case RGA2_FORMAT_YUYV_420: - case RGA2_FORMAT_UYVY_420: + case RGA_FORMAT_YVYU_420: + case RGA_FORMAT_VYUY_420: + case RGA_FORMAT_YUYV_420: + case RGA_FORMAT_UYVY_420: return true; default: return false; @@ -260,10 +110,10 @@ bool rga_is_yuv420_packed_format(uint32_t format) bool rga_is_yuv422_packed_format(uint32_t format) { switch (format) { - case RGA2_FORMAT_YVYU_422: - case RGA2_FORMAT_VYUY_422: - case RGA2_FORMAT_YUYV_422: - case RGA2_FORMAT_UYVY_422: + case RGA_FORMAT_YVYU_422: + case RGA_FORMAT_VYUY_422: + case RGA_FORMAT_YUYV_422: + case RGA_FORMAT_UYVY_422: return true; default: return false; @@ -273,26 +123,26 @@ bool rga_is_yuv422_packed_format(uint32_t format) bool rga_is_yuv8bit_format(uint32_t format) { switch (format) { - case RGA2_FORMAT_Y4: - case RGA2_FORMAT_YCbCr_400: + case RGA_FORMAT_Y4: + case RGA_FORMAT_YCbCr_400: - case RGA2_FORMAT_YCbCr_422_SP: - case RGA2_FORMAT_YCbCr_422_P: - case RGA2_FORMAT_YCbCr_420_SP: - case RGA2_FORMAT_YCbCr_420_P: - case RGA2_FORMAT_YCrCb_422_SP: - case RGA2_FORMAT_YCrCb_422_P: - case RGA2_FORMAT_YCrCb_420_SP: - case RGA2_FORMAT_YCrCb_420_P: + case RGA_FORMAT_YCbCr_422_SP: + case RGA_FORMAT_YCbCr_422_P: + case RGA_FORMAT_YCbCr_420_SP: + case RGA_FORMAT_YCbCr_420_P: + case RGA_FORMAT_YCrCb_422_SP: + case RGA_FORMAT_YCrCb_422_P: + case RGA_FORMAT_YCrCb_420_SP: + case RGA_FORMAT_YCrCb_420_P: - case RGA2_FORMAT_YVYU_422: - case RGA2_FORMAT_YVYU_420: - case RGA2_FORMAT_VYUY_422: - case RGA2_FORMAT_VYUY_420: - case RGA2_FORMAT_YUYV_422: - case RGA2_FORMAT_YUYV_420: - case RGA2_FORMAT_UYVY_422: - case RGA2_FORMAT_UYVY_420: + case RGA_FORMAT_YVYU_422: + case RGA_FORMAT_YVYU_420: + case RGA_FORMAT_VYUY_422: + case RGA_FORMAT_VYUY_420: + case RGA_FORMAT_YUYV_422: + case RGA_FORMAT_YUYV_420: + case RGA_FORMAT_UYVY_422: + case RGA_FORMAT_UYVY_420: return true; default: return false; @@ -302,10 +152,10 @@ bool rga_is_yuv8bit_format(uint32_t format) bool rga_is_yuv10bit_format(uint32_t format) { switch (format) { - case RGA2_FORMAT_YCbCr_420_SP_10B: - case RGA2_FORMAT_YCrCb_420_SP_10B: - case RGA2_FORMAT_YCbCr_422_SP_10B: - case RGA2_FORMAT_YCrCb_422_SP_10B: + case RGA_FORMAT_YCbCr_420_SP_10B: + case RGA_FORMAT_YCrCb_420_SP_10B: + case RGA_FORMAT_YCbCr_422_SP_10B: + case RGA_FORMAT_YCrCb_422_SP_10B: return true; default: return false; @@ -315,8 +165,8 @@ bool rga_is_yuv10bit_format(uint32_t format) bool rga_is_yuv422p_format(uint32_t format) { switch (format) { - case RGA2_FORMAT_YCbCr_422_P: - case RGA2_FORMAT_YCrCb_422_P: + case RGA_FORMAT_YCbCr_422_P: + case RGA_FORMAT_YCrCb_422_P: return true; default: return false; @@ -328,46 +178,46 @@ int rga_get_format_bits(uint32_t format) int bits = 0; switch (format) { - case RGA2_FORMAT_RGBA_8888: - case RGA2_FORMAT_RGBX_8888: - case RGA2_FORMAT_BGRA_8888: - case RGA2_FORMAT_BGRX_8888: - case RGA2_FORMAT_ARGB_8888: - case RGA2_FORMAT_XRGB_8888: - case RGA2_FORMAT_ABGR_8888: - case RGA2_FORMAT_XBGR_8888: + case RGA_FORMAT_RGBA_8888: + case RGA_FORMAT_RGBX_8888: + case RGA_FORMAT_BGRA_8888: + case RGA_FORMAT_BGRX_8888: + case RGA_FORMAT_ARGB_8888: + case RGA_FORMAT_XRGB_8888: + case RGA_FORMAT_ABGR_8888: + case RGA_FORMAT_XBGR_8888: bits = 32; break; - case RGA2_FORMAT_RGB_888: - case RGA2_FORMAT_BGR_888: + case RGA_FORMAT_RGB_888: + case RGA_FORMAT_BGR_888: bits = 24; break; - case RGA2_FORMAT_RGB_565: - case RGA2_FORMAT_RGBA_5551: - case RGA2_FORMAT_RGBA_4444: - case RGA2_FORMAT_BGR_565: - case RGA2_FORMAT_YCbCr_422_SP: - case RGA2_FORMAT_YCbCr_422_P: - case RGA2_FORMAT_YCrCb_422_SP: - case RGA2_FORMAT_YCrCb_422_P: - case RGA2_FORMAT_BGRA_5551: - case RGA2_FORMAT_BGRA_4444: - case RGA2_FORMAT_ARGB_5551: - case RGA2_FORMAT_ARGB_4444: - case RGA2_FORMAT_ABGR_5551: - case RGA2_FORMAT_ABGR_4444: + case RGA_FORMAT_RGB_565: + case RGA_FORMAT_RGBA_5551: + case RGA_FORMAT_RGBA_4444: + case RGA_FORMAT_BGR_565: + case RGA_FORMAT_YCbCr_422_SP: + case RGA_FORMAT_YCbCr_422_P: + case RGA_FORMAT_YCrCb_422_SP: + case RGA_FORMAT_YCrCb_422_P: + case RGA_FORMAT_BGRA_5551: + case RGA_FORMAT_BGRA_4444: + case RGA_FORMAT_ARGB_5551: + case RGA_FORMAT_ARGB_4444: + case RGA_FORMAT_ABGR_5551: + case RGA_FORMAT_ABGR_4444: bits = 16; break; - case RGA2_FORMAT_YCbCr_420_SP: - case RGA2_FORMAT_YCbCr_420_P: - case RGA2_FORMAT_YCrCb_420_SP: - case RGA2_FORMAT_YCrCb_420_P: + case RGA_FORMAT_YCbCr_420_SP: + case RGA_FORMAT_YCbCr_420_P: + case RGA_FORMAT_YCrCb_420_SP: + case RGA_FORMAT_YCrCb_420_P: bits = 12; break; - case RGA2_FORMAT_YCbCr_420_SP_10B: - case RGA2_FORMAT_YCrCb_420_SP_10B: - case RGA2_FORMAT_YCbCr_422_SP_10B: - case RGA2_FORMAT_YCrCb_422_SP_10B: + case RGA_FORMAT_YCbCr_420_SP_10B: + case RGA_FORMAT_YCrCb_420_SP_10B: + case RGA_FORMAT_YCbCr_422_SP_10B: + case RGA_FORMAT_YCrCb_422_SP_10B: bits = 15; break; default: @@ -381,101 +231,101 @@ int rga_get_format_bits(uint32_t format) const char *rga_get_format_name(uint32_t format) { switch (format) { - case RGA2_FORMAT_RGBA_8888: + case RGA_FORMAT_RGBA_8888: return "RGBA8888"; - case RGA2_FORMAT_RGBX_8888: + case RGA_FORMAT_RGBX_8888: return "RGBX8888"; - case RGA2_FORMAT_RGB_888: + case RGA_FORMAT_RGB_888: return "RGB888"; - case RGA2_FORMAT_BGRA_8888: + case RGA_FORMAT_BGRA_8888: return "BGRA8888"; - case RGA2_FORMAT_BGRX_8888: + case RGA_FORMAT_BGRX_8888: return "BGRX8888"; - case RGA2_FORMAT_BGR_888: + case RGA_FORMAT_BGR_888: return "BGR888"; - case RGA2_FORMAT_RGB_565: + case RGA_FORMAT_RGB_565: return "RGB565"; - case RGA2_FORMAT_RGBA_5551: + case RGA_FORMAT_RGBA_5551: return "RGBA5551"; - case RGA2_FORMAT_RGBA_4444: + case RGA_FORMAT_RGBA_4444: return "RGBA4444"; - case RGA2_FORMAT_BGR_565: + case RGA_FORMAT_BGR_565: return "BGR565"; - case RGA2_FORMAT_BGRA_5551: + case RGA_FORMAT_BGRA_5551: return "BGRA5551"; - case RGA2_FORMAT_BGRA_4444: + case RGA_FORMAT_BGRA_4444: return "BGRA4444"; - case RGA2_FORMAT_YCbCr_422_SP: + case RGA_FORMAT_YCbCr_422_SP: return "YCbCr422SP"; - case RGA2_FORMAT_YCbCr_422_P: + case RGA_FORMAT_YCbCr_422_P: return "YCbCr422P"; - case RGA2_FORMAT_YCbCr_420_SP: + case RGA_FORMAT_YCbCr_420_SP: return "YCbCr420SP"; - case RGA2_FORMAT_YCbCr_420_P: + case RGA_FORMAT_YCbCr_420_P: return "YCbCr420P"; - case RGA2_FORMAT_YCrCb_422_SP: + case RGA_FORMAT_YCrCb_422_SP: return "YCrCb422SP"; - case RGA2_FORMAT_YCrCb_422_P: + case RGA_FORMAT_YCrCb_422_P: return "YCrCb422P"; - case RGA2_FORMAT_YCrCb_420_SP: + case RGA_FORMAT_YCrCb_420_SP: return "YCrCb420SP"; - case RGA2_FORMAT_YCrCb_420_P: + case RGA_FORMAT_YCrCb_420_P: return "YCrCb420P"; - case RGA2_FORMAT_YVYU_422: + case RGA_FORMAT_YVYU_422: return "YVYU422"; - case RGA2_FORMAT_YVYU_420: + case RGA_FORMAT_YVYU_420: return "YVYU420"; - case RGA2_FORMAT_VYUY_422: + case RGA_FORMAT_VYUY_422: return "VYUY422"; - case RGA2_FORMAT_VYUY_420: + case RGA_FORMAT_VYUY_420: return "VYUY420"; - case RGA2_FORMAT_YUYV_422: + case RGA_FORMAT_YUYV_422: return "YUYV422"; - case RGA2_FORMAT_YUYV_420: + case RGA_FORMAT_YUYV_420: return "YUYV420"; - case RGA2_FORMAT_UYVY_422: + case RGA_FORMAT_UYVY_422: return "UYVY422"; - case RGA2_FORMAT_UYVY_420: + case RGA_FORMAT_UYVY_420: return "UYVY420"; - case RGA2_FORMAT_YCbCr_420_SP_10B: + case RGA_FORMAT_YCbCr_420_SP_10B: return "YCrCb420SP10B"; - case RGA2_FORMAT_YCrCb_420_SP_10B: + case RGA_FORMAT_YCrCb_420_SP_10B: return "YCbCr420SP10B"; - case RGA2_FORMAT_YCbCr_422_SP_10B: + case RGA_FORMAT_YCbCr_422_SP_10B: return "YCbCr422SP10B"; - case RGA2_FORMAT_YCrCb_422_SP_10B: + case RGA_FORMAT_YCrCb_422_SP_10B: return "YCrCb422SP10B"; - case RGA2_FORMAT_BPP_1: + case RGA_FORMAT_BPP1: return "BPP1"; - case RGA2_FORMAT_BPP_2: + case RGA_FORMAT_BPP2: return "BPP2"; - case RGA2_FORMAT_BPP_4: + case RGA_FORMAT_BPP4: return "BPP4"; - case RGA2_FORMAT_BPP_8: + case RGA_FORMAT_BPP8: return "BPP8"; - case RGA2_FORMAT_YCbCr_400: + case RGA_FORMAT_YCbCr_400: return "YCbCr400"; - case RGA2_FORMAT_Y4: + case RGA_FORMAT_Y4: return "y4"; - case RGA2_FORMAT_ARGB_8888: + case RGA_FORMAT_ARGB_8888: return "ARGB8888"; - case RGA2_FORMAT_XRGB_8888: + case RGA_FORMAT_XRGB_8888: return "XRGB8888"; - case RGA2_FORMAT_ARGB_5551: + case RGA_FORMAT_ARGB_5551: return "ARGB5551"; - case RGA2_FORMAT_ARGB_4444: + case RGA_FORMAT_ARGB_4444: return "ARGB4444"; - case RGA2_FORMAT_ABGR_8888: + case RGA_FORMAT_ABGR_8888: return "ABGR8888"; - case RGA2_FORMAT_XBGR_8888: + case RGA_FORMAT_XBGR_8888: return "XBGR8888"; - case RGA2_FORMAT_ABGR_5551: + case RGA_FORMAT_ABGR_5551: return "ABGR5551"; - case RGA2_FORMAT_ABGR_4444: + case RGA_FORMAT_ABGR_4444: return "ABGR4444"; default: return "UNF"; @@ -542,10 +392,6 @@ const char *rga_get_blend_mode_str(uint16_t alpha_rop_flag, void rga_convert_addr(struct rga_img_info_t *img, bool before_vir_get_channel) { - uint32_t fmt = 0; - - rga_user_format_convert(&fmt, img->format); - /* * If it is not using dma fd, the virtual/phyical address is assigned * to the address of the corresponding channel. @@ -562,7 +408,7 @@ void rga_convert_addr(struct rga_img_info_t *img, bool before_vir_get_channel) img->uv_addr = img->yrgb_addr + (img->vir_w * img->vir_h); //warning: rga3 may need /2 for all - if (rga_is_yuv422p_format(fmt)) + if (rga_is_yuv422p_format(img->format)) img->v_addr = img->uv_addr + (img->vir_w * img->vir_h) / 2; else diff --git a/drivers/video/rockchip/rga3/rga_dma_buf.c b/drivers/video/rockchip/rga3/rga_dma_buf.c index a00655b0f875..4fa5fe82e2f1 100644 --- a/drivers/video/rockchip/rga3/rga_dma_buf.c +++ b/drivers/video/rockchip/rga3/rga_dma_buf.c @@ -48,14 +48,14 @@ int rga_buf_size_cal(unsigned long yrgb_addr, unsigned long uv_addr, uint32_t pageCount; switch (format) { - case RGA2_FORMAT_RGBA_8888: - case RGA2_FORMAT_RGBX_8888: - case RGA2_FORMAT_BGRA_8888: - case RGA2_FORMAT_BGRX_8888: - case RGA2_FORMAT_ARGB_8888: - case RGA2_FORMAT_XRGB_8888: - case RGA2_FORMAT_ABGR_8888: - case RGA2_FORMAT_XBGR_8888: + case RGA_FORMAT_RGBA_8888: + case RGA_FORMAT_RGBX_8888: + case RGA_FORMAT_BGRA_8888: + case RGA_FORMAT_BGRX_8888: + case RGA_FORMAT_ARGB_8888: + case RGA_FORMAT_XRGB_8888: + case RGA_FORMAT_ABGR_8888: + case RGA_FORMAT_XBGR_8888: stride = (w * 4 + 3) & (~3); size_yrgb = stride * h; start = yrgb_addr >> PAGE_SHIFT; @@ -63,8 +63,8 @@ int rga_buf_size_cal(unsigned long yrgb_addr, unsigned long uv_addr, end = (end + (PAGE_SIZE - 1)) >> PAGE_SHIFT; pageCount = end - start; break; - case RGA2_FORMAT_RGB_888: - case RGA2_FORMAT_BGR_888: + case RGA_FORMAT_RGB_888: + case RGA_FORMAT_BGR_888: stride = (w * 3 + 3) & (~3); size_yrgb = stride * h; start = yrgb_addr >> PAGE_SHIFT; @@ -72,16 +72,16 @@ int rga_buf_size_cal(unsigned long yrgb_addr, unsigned long uv_addr, end = (end + (PAGE_SIZE - 1)) >> PAGE_SHIFT; pageCount = end - start; break; - case RGA2_FORMAT_RGB_565: - case RGA2_FORMAT_RGBA_5551: - case RGA2_FORMAT_RGBA_4444: - case RGA2_FORMAT_BGR_565: - case RGA2_FORMAT_BGRA_5551: - case RGA2_FORMAT_BGRA_4444: - case RGA2_FORMAT_ARGB_5551: - case RGA2_FORMAT_ARGB_4444: - case RGA2_FORMAT_ABGR_5551: - case RGA2_FORMAT_ABGR_4444: + case RGA_FORMAT_RGB_565: + case RGA_FORMAT_RGBA_5551: + case RGA_FORMAT_RGBA_4444: + case RGA_FORMAT_BGR_565: + case RGA_FORMAT_BGRA_5551: + case RGA_FORMAT_BGRA_4444: + case RGA_FORMAT_ARGB_5551: + case RGA_FORMAT_ARGB_4444: + case RGA_FORMAT_ABGR_5551: + case RGA_FORMAT_ABGR_4444: stride = (w * 2 + 3) & (~3); size_yrgb = stride * h; start = yrgb_addr >> PAGE_SHIFT; @@ -91,8 +91,8 @@ int rga_buf_size_cal(unsigned long yrgb_addr, unsigned long uv_addr, break; /* YUV FORMAT */ - case RGA2_FORMAT_YCbCr_422_SP: - case RGA2_FORMAT_YCrCb_422_SP: + case RGA_FORMAT_YCbCr_422_SP: + case RGA_FORMAT_YCrCb_422_SP: stride = (w + 3) & (~3); size_yrgb = stride * h; size_uv = stride * h; @@ -102,8 +102,8 @@ int rga_buf_size_cal(unsigned long yrgb_addr, unsigned long uv_addr, end = (end + (PAGE_SIZE - 1)) >> PAGE_SHIFT; pageCount = end - start; break; - case RGA2_FORMAT_YCbCr_422_P: - case RGA2_FORMAT_YCrCb_422_P: + case RGA_FORMAT_YCbCr_422_P: + case RGA_FORMAT_YCrCb_422_P: stride = (w + 3) & (~3); size_yrgb = stride * h; size_uv = ((stride >> 1) * h); @@ -116,8 +116,8 @@ int rga_buf_size_cal(unsigned long yrgb_addr, unsigned long uv_addr, end = (end + (PAGE_SIZE - 1)) >> PAGE_SHIFT; pageCount = end - start; break; - case RGA2_FORMAT_YCbCr_420_SP: - case RGA2_FORMAT_YCrCb_420_SP: + case RGA_FORMAT_YCbCr_420_SP: + case RGA_FORMAT_YCrCb_420_SP: stride = (w + 3) & (~3); size_yrgb = stride * h; size_uv = (stride * (h >> 1)); @@ -127,8 +127,8 @@ int rga_buf_size_cal(unsigned long yrgb_addr, unsigned long uv_addr, end = (end + (PAGE_SIZE - 1)) >> PAGE_SHIFT; pageCount = end - start; break; - case RGA2_FORMAT_YCbCr_420_P: - case RGA2_FORMAT_YCrCb_420_P: + case RGA_FORMAT_YCbCr_420_P: + case RGA_FORMAT_YCrCb_420_P: stride = (w + 3) & (~3); size_yrgb = stride * h; size_uv = ((stride >> 1) * (h >> 1)); @@ -141,7 +141,7 @@ int rga_buf_size_cal(unsigned long yrgb_addr, unsigned long uv_addr, end = (end + (PAGE_SIZE - 1)) >> PAGE_SHIFT; pageCount = end - start; break; - case RGA2_FORMAT_YCbCr_400: + case RGA_FORMAT_YCbCr_400: stride = (w + 3) & (~3); size_yrgb = stride * h; start = yrgb_addr >> PAGE_SHIFT; @@ -149,7 +149,7 @@ int rga_buf_size_cal(unsigned long yrgb_addr, unsigned long uv_addr, end = (end + (PAGE_SIZE - 1)) >> PAGE_SHIFT; pageCount = end - start; break; - case RGA2_FORMAT_Y4: + case RGA_FORMAT_Y4: stride = ((w + 3) & (~3)) >> 1; size_yrgb = stride * h; start = yrgb_addr >> PAGE_SHIFT; @@ -157,10 +157,10 @@ int rga_buf_size_cal(unsigned long yrgb_addr, unsigned long uv_addr, end = (end + (PAGE_SIZE - 1)) >> PAGE_SHIFT; pageCount = end - start; break; - case RGA2_FORMAT_YVYU_422: - case RGA2_FORMAT_VYUY_422: - case RGA2_FORMAT_YUYV_422: - case RGA2_FORMAT_UYVY_422: + case RGA_FORMAT_YVYU_422: + case RGA_FORMAT_VYUY_422: + case RGA_FORMAT_YUYV_422: + case RGA_FORMAT_UYVY_422: stride = (w + 3) & (~3); size_yrgb = stride * h; size_uv = stride * h; @@ -170,10 +170,10 @@ int rga_buf_size_cal(unsigned long yrgb_addr, unsigned long uv_addr, end = (end + (PAGE_SIZE - 1)) >> PAGE_SHIFT; pageCount = end - start; break; - case RGA2_FORMAT_YVYU_420: - case RGA2_FORMAT_VYUY_420: - case RGA2_FORMAT_YUYV_420: - case RGA2_FORMAT_UYVY_420: + case RGA_FORMAT_YVYU_420: + case RGA_FORMAT_VYUY_420: + case RGA_FORMAT_YUYV_420: + case RGA_FORMAT_UYVY_420: stride = (w + 3) & (~3); size_yrgb = stride * h; size_uv = (stride * (h >> 1)); @@ -183,8 +183,8 @@ int rga_buf_size_cal(unsigned long yrgb_addr, unsigned long uv_addr, end = (end + (PAGE_SIZE - 1)) >> PAGE_SHIFT; pageCount = end - start; break; - case RGA2_FORMAT_YCbCr_420_SP_10B: - case RGA2_FORMAT_YCrCb_420_SP_10B: + case RGA_FORMAT_YCbCr_420_SP_10B: + case RGA_FORMAT_YCrCb_420_SP_10B: stride = (w + 3) & (~3); size_yrgb = stride * h; size_uv = (stride * (h >> 1)); @@ -557,8 +557,6 @@ static int rga_viraddr_get_channel_info(struct rga_img_info_t *channel_info, int ioprot; dma_addr_t iova; - int format; - alloc_buffer = kmalloc(sizeof(struct rga_dma_buffer_t), GFP_KERNEL); @@ -567,8 +565,6 @@ static int rga_viraddr_get_channel_info(struct rga_img_info_t *channel_info, return -ENOMEM; } - rga_user_format_convert(&format, channel_info->format); - scheduler = rga_job_get_scheduler(core); if (scheduler == NULL) { pr_err("failed to get scheduler, %s(%d)\n", __func__, @@ -585,7 +581,7 @@ static int rga_viraddr_get_channel_info(struct rga_img_info_t *channel_info, /* Calculate page size. */ count = rga_buf_size_cal(channel_info->yrgb_addr, channel_info->uv_addr, - channel_info->v_addr, format, + channel_info->v_addr, channel_info->format, channel_info->vir_w, channel_info->vir_h, &start_addr, NULL); size = count * PAGE_SIZE; diff --git a/drivers/video/rockchip/rga3/rga_hw_config.c b/drivers/video/rockchip/rga3/rga_hw_config.c index ca1f4c3ab26d..3a685fdfcfe3 100644 --- a/drivers/video/rockchip/rga3/rga_hw_config.c +++ b/drivers/video/rockchip/rga3/rga_hw_config.c @@ -9,97 +9,97 @@ #include "rga_hw_config.h" const uint32_t rga3_raster_format[] = { - RGA2_FORMAT_RGBA_8888, - RGA2_FORMAT_BGRA_8888, - RGA2_FORMAT_RGB_888, - RGA2_FORMAT_BGR_888, - RGA2_FORMAT_RGB_565, - RGA2_FORMAT_BGR_565, - RGA2_FORMAT_YCbCr_422_SP, - RGA2_FORMAT_YCbCr_420_SP, - RGA2_FORMAT_YCrCb_422_SP, - RGA2_FORMAT_YCrCb_420_SP, - RGA2_FORMAT_YVYU_422, - RGA2_FORMAT_VYUY_422, - RGA2_FORMAT_YUYV_422, - RGA2_FORMAT_UYVY_422, - RGA2_FORMAT_YCbCr_420_SP_10B, - RGA2_FORMAT_YCrCb_420_SP_10B, - RGA2_FORMAT_YCbCr_422_SP_10B, - RGA2_FORMAT_YCrCb_422_SP_10B, + 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, }; const uint32_t rga3_fbcd_format[] = { - RGA2_FORMAT_RGBA_8888, - RGA2_FORMAT_BGRA_8888, - RGA2_FORMAT_RGB_888, - RGA2_FORMAT_BGR_888, - RGA2_FORMAT_RGB_565, - RGA2_FORMAT_BGR_565, - RGA2_FORMAT_YCbCr_422_SP, - RGA2_FORMAT_YCbCr_420_SP, - RGA2_FORMAT_YCrCb_422_SP, - RGA2_FORMAT_YCrCb_420_SP, - RGA2_FORMAT_YCbCr_420_SP_10B, - RGA2_FORMAT_YCrCb_420_SP_10B, - RGA2_FORMAT_YCbCr_422_SP_10B, - RGA2_FORMAT_YCrCb_422_SP_10B, + 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_YCbCr_420_SP_10B, + RGA_FORMAT_YCrCb_420_SP_10B, + RGA_FORMAT_YCbCr_422_SP_10B, + RGA_FORMAT_YCrCb_422_SP_10B, }; const uint32_t rga3_tile_format[] = { - RGA2_FORMAT_YCbCr_422_SP, - RGA2_FORMAT_YCbCr_420_SP, - RGA2_FORMAT_YCrCb_422_SP, - RGA2_FORMAT_YCrCb_420_SP, - RGA2_FORMAT_YCbCr_420_SP_10B, - RGA2_FORMAT_YCrCb_420_SP_10B, - RGA2_FORMAT_YCbCr_422_SP_10B, - RGA2_FORMAT_YCrCb_422_SP_10B, + RGA_FORMAT_YCbCr_422_SP, + RGA_FORMAT_YCbCr_420_SP, + RGA_FORMAT_YCrCb_422_SP, + RGA_FORMAT_YCrCb_420_SP, + RGA_FORMAT_YCbCr_420_SP_10B, + RGA_FORMAT_YCrCb_420_SP_10B, + RGA_FORMAT_YCbCr_422_SP_10B, + RGA_FORMAT_YCrCb_422_SP_10B, }; const uint32_t rga2e_raster_format[] = { - RGA2_FORMAT_RGBA_8888, - RGA2_FORMAT_RGBX_8888, - RGA2_FORMAT_BGRA_8888, - RGA2_FORMAT_BGRX_8888, - RGA2_FORMAT_RGB_888, - RGA2_FORMAT_BGR_888, - RGA2_FORMAT_RGB_565, - RGA2_FORMAT_BGR_565, - RGA2_FORMAT_YCbCr_422_P, - RGA2_FORMAT_YCbCr_420_P, - RGA2_FORMAT_YCrCb_422_P, - RGA2_FORMAT_YCrCb_420_P, - RGA2_FORMAT_YCbCr_422_SP, - RGA2_FORMAT_YCbCr_420_SP, - RGA2_FORMAT_YCrCb_422_SP, - RGA2_FORMAT_YCrCb_420_SP, - RGA2_FORMAT_YVYU_422, - RGA2_FORMAT_VYUY_422, - RGA2_FORMAT_YUYV_422, - RGA2_FORMAT_UYVY_422, - RGA2_FORMAT_YCbCr_420_SP_10B, - RGA2_FORMAT_YCrCb_420_SP_10B, - RGA2_FORMAT_YCbCr_422_SP_10B, - RGA2_FORMAT_YCrCb_422_SP_10B, - RGA2_FORMAT_Y4, - RGA2_FORMAT_YCbCr_400, - RGA2_FORMAT_RGBA_5551, - RGA2_FORMAT_BGRA_5551, - RGA2_FORMAT_RGBA_4444, - RGA2_FORMAT_BGRA_4444, - RGA2_FORMAT_XRGB_8888, - RGA2_FORMAT_XBGR_8888, - RGA2_FORMAT_BPP_1, - RGA2_FORMAT_BPP_2, - RGA2_FORMAT_BPP_4, - RGA2_FORMAT_BPP_8, - RGA2_FORMAT_ARGB_8888, - RGA2_FORMAT_ARGB_5551, - RGA2_FORMAT_ARGB_4444, - RGA2_FORMAT_ABGR_8888, - RGA2_FORMAT_ABGR_5551, - RGA2_FORMAT_ABGR_4444, + 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_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_BPP1, + RGA_FORMAT_BPP2, + RGA_FORMAT_BPP4, + RGA_FORMAT_BPP8, + 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[] = { diff --git a/drivers/video/rockchip/rga3/rga_mm.c b/drivers/video/rockchip/rga3/rga_mm.c index 3898661d3069..6df8307c1547 100644 --- a/drivers/video/rockchip/rga3/rga_mm.c +++ b/drivers/video/rockchip/rga3/rga_mm.c @@ -225,17 +225,14 @@ static int rga_alloc_virt_addr(struct rga_virt_addr **virt_addr_p, int ret; int result = 0; int order; - int format; unsigned int count; unsigned long start_addr; unsigned long size; struct page **pages = NULL; struct rga_virt_addr *virt_addr = NULL; - rga_user_format_convert(&format, memory_parm->format); - /* Calculate page size. */ - count = rga_buf_size_cal(viraddr, viraddr, viraddr, format, + count = rga_buf_size_cal(viraddr, viraddr, viraddr, memory_parm->format, memory_parm->width, memory_parm->height, &start_addr, NULL); size = count * PAGE_SIZE; diff --git a/drivers/video/rockchip/rga3/rga_policy.c b/drivers/video/rockchip/rga3/rga_policy.c index bcf1ef168e5e..1d9a0d9e25a1 100644 --- a/drivers/video/rockchip/rga3/rga_policy.c +++ b/drivers/video/rockchip/rga3/rga_policy.c @@ -68,10 +68,6 @@ static bool rga_check_format(const struct rga_hw_data *data, static bool rga_check_src0(const struct rga_hw_data *data, struct rga_img_info_t *src0) { - int format; - - rga_user_format_convert(&format, src0->format); - if (src0->act_w < data->min_input.w || src0->act_h < data->min_input.h) return false; @@ -80,7 +76,7 @@ static bool rga_check_src0(const struct rga_hw_data *data, src0->act_h > data->max_input.h) return false; - if (!rga_check_format(data, src0->rd_mode, format, 0)) + if (!rga_check_format(data, src0->rd_mode, src0->format, 0)) return false; return true; @@ -89,10 +85,6 @@ static bool rga_check_src0(const struct rga_hw_data *data, static bool rga_check_src1(const struct rga_hw_data *data, struct rga_img_info_t *src1) { - int format; - - rga_user_format_convert(&format, src1->format); - if (src1->act_w < data->min_input.w || src1->act_h < data->min_input.h) return false; @@ -101,7 +93,7 @@ static bool rga_check_src1(const struct rga_hw_data *data, src1->act_h > data->max_input.h) return false; - if (!rga_check_format(data, src1->rd_mode, format, 1)) + if (!rga_check_format(data, src1->rd_mode, src1->format, 1)) return false; return true; @@ -110,10 +102,6 @@ static bool rga_check_src1(const struct rga_hw_data *data, static bool rga_check_dst(const struct rga_hw_data *data, struct rga_img_info_t *dst) { - int format; - - rga_user_format_convert(&format, dst->format); - if (dst->act_w < data->min_output.w || dst->act_h < data->min_output.h) return false; @@ -122,7 +110,7 @@ static bool rga_check_dst(const struct rga_hw_data *data, dst->act_h > data->max_output.h) return false; - if (!rga_check_format(data, dst->rd_mode, format, 2)) + if (!rga_check_format(data, dst->rd_mode, dst->format, 2)) return false; return true;