Loading drivers/media/platform/msm/sde/rotator/sde_rotator_formats.c +26 −1 Original line number Diff line number Diff line Loading @@ -84,6 +84,16 @@ .is_ubwc = isubwc, \ } #define FMT_YUV10_COMMON(fmt) \ .format = (fmt), \ .is_yuv = 1, \ .bits = { \ [C2_R_Cr] = SDE_COLOR_8BIT, \ [C0_G_Y] = SDE_COLOR_8BIT, \ [C1_B_Cb] = SDE_COLOR_8BIT, \ }, \ .alpha_enable = 0 #define FMT_YUV_COMMON(fmt) \ .format = (fmt), \ .is_yuv = 1, \ Loading Loading @@ -643,7 +653,7 @@ static struct sde_mdp_format_params sde_mdp_format_map[] = { 0, C2_R_Cr, C1_B_Cb, SDE_MDP_COMPRESS_NONE), { FMT_YUV_COMMON(SDE_PIX_FMT_Y_CBCR_H2V2_P010), FMT_YUV10_COMMON(SDE_PIX_FMT_Y_CBCR_H2V2_P010), .description = "SDE/Y_CBCR_H2V2_P010", .flag = 0, .fetch_planes = SDE_MDP_PLANE_PSEUDO_PLANAR, Loading @@ -657,6 +667,21 @@ static struct sde_mdp_format_params sde_mdp_format_map[] = { .unpack_align_msb = 1, .is_ubwc = SDE_MDP_COMPRESS_NONE, }, { FMT_YUV10_COMMON(SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS), .description = "SDE/Y_CBCR_H2V2_P010_VENUS", .flag = 0, .fetch_planes = SDE_MDP_PLANE_PSEUDO_PLANAR, .chroma_sample = SDE_MDP_CHROMA_420, .unpack_count = 2, .bpp = 2, .frame_format = SDE_MDP_FMT_LINEAR, .pixel_mode = SDE_MDP_PIXEL_10BIT, .element = { C1_B_Cb, C2_R_Cr }, .unpack_tight = 0, .unpack_align_msb = 1, .is_ubwc = SDE_MDP_COMPRESS_NONE, }, { FMT_YUV_COMMON(SDE_PIX_FMT_Y_CBCR_H2V2_TP10), .description = "SDE/Y_CBCR_H2V2_TP10", Loading drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c +2 −0 Original line number Diff line number Diff line Loading @@ -311,6 +311,7 @@ static const u32 sde_hw_rotator_v4_inpixfmts[] = { SDE_PIX_FMT_RGBA_1010102_UBWC, SDE_PIX_FMT_RGBX_1010102_UBWC, SDE_PIX_FMT_Y_CBCR_H2V2_P010, SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS, SDE_PIX_FMT_Y_CBCR_H2V2_TP10, SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC, SDE_PIX_FMT_Y_CBCR_H2V2_P010_UBWC, Loading Loading @@ -391,6 +392,7 @@ static const u32 sde_hw_rotator_v4_outpixfmts[] = { SDE_PIX_FMT_RGBA_1010102_UBWC, SDE_PIX_FMT_RGBX_1010102_UBWC, SDE_PIX_FMT_Y_CBCR_H2V2_P010, SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS, SDE_PIX_FMT_Y_CBCR_H2V2_TP10, SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC, SDE_PIX_FMT_Y_CBCR_H2V2_P010_UBWC, Loading drivers/media/platform/msm/sde/rotator/sde_rotator_util.c +20 −3 Original line number Diff line number Diff line Loading @@ -350,10 +350,27 @@ int sde_mdp_get_plane_sizes(struct sde_mdp_format_params *fmt, u32 w, u32 h, ps->plane_size[0] = w * h * bpp; ps->ystride[0] = w * bpp; } else if (fmt->format == SDE_PIX_FMT_Y_CBCR_H2V2_VENUS || fmt->format == SDE_PIX_FMT_Y_CRCB_H2V2_VENUS) { fmt->format == SDE_PIX_FMT_Y_CRCB_H2V2_VENUS || fmt->format == SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS) { int cf; switch (fmt->format) { case SDE_PIX_FMT_Y_CBCR_H2V2_VENUS: cf = COLOR_FMT_NV12; break; case SDE_PIX_FMT_Y_CRCB_H2V2_VENUS: cf = COLOR_FMT_NV21; break; case SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS: cf = COLOR_FMT_P010; break; default: SDEROT_ERR("unknown color format %d\n", fmt->format); return -EINVAL; } int cf = (fmt->format == SDE_PIX_FMT_Y_CBCR_H2V2_VENUS) ? COLOR_FMT_NV12 : COLOR_FMT_NV21; ps->num_planes = 2; ps->ystride[0] = VENUS_Y_STRIDE(cf, w); ps->ystride[1] = VENUS_UV_STRIDE(cf, w); Loading include/uapi/media/msm_sde_rotator.h +2 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,8 @@ #define SDE_PIX_FMT_RGBA_1010102_UBWC V4L2_PIX_FMT_SDE_RGBA_1010102_UBWC #define SDE_PIX_FMT_RGBX_1010102_UBWC V4L2_PIX_FMT_SDE_RGBX_1010102_UBWC #define SDE_PIX_FMT_Y_CBCR_H2V2_P010 V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_P010 #define SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS \ V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_P010_VENUS #define SDE_PIX_FMT_Y_CBCR_H2V2_TP10 V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_TP10 #define SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC V4L2_PIX_FMT_NV12_TP10_UBWC #define SDE_PIX_FMT_Y_CBCR_H2V2_P010_UBWC V4L2_PIX_FMT_NV12_P010_UBWC Loading Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_formats.c +26 −1 Original line number Diff line number Diff line Loading @@ -84,6 +84,16 @@ .is_ubwc = isubwc, \ } #define FMT_YUV10_COMMON(fmt) \ .format = (fmt), \ .is_yuv = 1, \ .bits = { \ [C2_R_Cr] = SDE_COLOR_8BIT, \ [C0_G_Y] = SDE_COLOR_8BIT, \ [C1_B_Cb] = SDE_COLOR_8BIT, \ }, \ .alpha_enable = 0 #define FMT_YUV_COMMON(fmt) \ .format = (fmt), \ .is_yuv = 1, \ Loading Loading @@ -643,7 +653,7 @@ static struct sde_mdp_format_params sde_mdp_format_map[] = { 0, C2_R_Cr, C1_B_Cb, SDE_MDP_COMPRESS_NONE), { FMT_YUV_COMMON(SDE_PIX_FMT_Y_CBCR_H2V2_P010), FMT_YUV10_COMMON(SDE_PIX_FMT_Y_CBCR_H2V2_P010), .description = "SDE/Y_CBCR_H2V2_P010", .flag = 0, .fetch_planes = SDE_MDP_PLANE_PSEUDO_PLANAR, Loading @@ -657,6 +667,21 @@ static struct sde_mdp_format_params sde_mdp_format_map[] = { .unpack_align_msb = 1, .is_ubwc = SDE_MDP_COMPRESS_NONE, }, { FMT_YUV10_COMMON(SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS), .description = "SDE/Y_CBCR_H2V2_P010_VENUS", .flag = 0, .fetch_planes = SDE_MDP_PLANE_PSEUDO_PLANAR, .chroma_sample = SDE_MDP_CHROMA_420, .unpack_count = 2, .bpp = 2, .frame_format = SDE_MDP_FMT_LINEAR, .pixel_mode = SDE_MDP_PIXEL_10BIT, .element = { C1_B_Cb, C2_R_Cr }, .unpack_tight = 0, .unpack_align_msb = 1, .is_ubwc = SDE_MDP_COMPRESS_NONE, }, { FMT_YUV_COMMON(SDE_PIX_FMT_Y_CBCR_H2V2_TP10), .description = "SDE/Y_CBCR_H2V2_TP10", Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c +2 −0 Original line number Diff line number Diff line Loading @@ -311,6 +311,7 @@ static const u32 sde_hw_rotator_v4_inpixfmts[] = { SDE_PIX_FMT_RGBA_1010102_UBWC, SDE_PIX_FMT_RGBX_1010102_UBWC, SDE_PIX_FMT_Y_CBCR_H2V2_P010, SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS, SDE_PIX_FMT_Y_CBCR_H2V2_TP10, SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC, SDE_PIX_FMT_Y_CBCR_H2V2_P010_UBWC, Loading Loading @@ -391,6 +392,7 @@ static const u32 sde_hw_rotator_v4_outpixfmts[] = { SDE_PIX_FMT_RGBA_1010102_UBWC, SDE_PIX_FMT_RGBX_1010102_UBWC, SDE_PIX_FMT_Y_CBCR_H2V2_P010, SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS, SDE_PIX_FMT_Y_CBCR_H2V2_TP10, SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC, SDE_PIX_FMT_Y_CBCR_H2V2_P010_UBWC, Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_util.c +20 −3 Original line number Diff line number Diff line Loading @@ -350,10 +350,27 @@ int sde_mdp_get_plane_sizes(struct sde_mdp_format_params *fmt, u32 w, u32 h, ps->plane_size[0] = w * h * bpp; ps->ystride[0] = w * bpp; } else if (fmt->format == SDE_PIX_FMT_Y_CBCR_H2V2_VENUS || fmt->format == SDE_PIX_FMT_Y_CRCB_H2V2_VENUS) { fmt->format == SDE_PIX_FMT_Y_CRCB_H2V2_VENUS || fmt->format == SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS) { int cf; switch (fmt->format) { case SDE_PIX_FMT_Y_CBCR_H2V2_VENUS: cf = COLOR_FMT_NV12; break; case SDE_PIX_FMT_Y_CRCB_H2V2_VENUS: cf = COLOR_FMT_NV21; break; case SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS: cf = COLOR_FMT_P010; break; default: SDEROT_ERR("unknown color format %d\n", fmt->format); return -EINVAL; } int cf = (fmt->format == SDE_PIX_FMT_Y_CBCR_H2V2_VENUS) ? COLOR_FMT_NV12 : COLOR_FMT_NV21; ps->num_planes = 2; ps->ystride[0] = VENUS_Y_STRIDE(cf, w); ps->ystride[1] = VENUS_UV_STRIDE(cf, w); Loading
include/uapi/media/msm_sde_rotator.h +2 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,8 @@ #define SDE_PIX_FMT_RGBA_1010102_UBWC V4L2_PIX_FMT_SDE_RGBA_1010102_UBWC #define SDE_PIX_FMT_RGBX_1010102_UBWC V4L2_PIX_FMT_SDE_RGBX_1010102_UBWC #define SDE_PIX_FMT_Y_CBCR_H2V2_P010 V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_P010 #define SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS \ V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_P010_VENUS #define SDE_PIX_FMT_Y_CBCR_H2V2_TP10 V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_TP10 #define SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC V4L2_PIX_FMT_NV12_TP10_UBWC #define SDE_PIX_FMT_Y_CBCR_H2V2_P010_UBWC V4L2_PIX_FMT_NV12_P010_UBWC Loading