diff options
-rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_formats.h | 2 | ||||
-rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_rotator.h | 3 | ||||
-rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_util.c | 7 | ||||
-rw-r--r-- | include/uapi/linux/msm_mdp.h | 1 |
4 files changed, 10 insertions, 3 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_formats.h b/drivers/video/fbdev/msm/mdss_mdp_formats.h index bbd577c91f03..3f81b72a361a 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_formats.h +++ b/drivers/video/fbdev/msm/mdss_mdp_formats.h @@ -304,6 +304,8 @@ static struct mdss_mdp_format_params mdss_mdp_format_map[] = { MDSS_MDP_CHROMA_420, VALID_ROT_WB_FORMAT, C1_B_Cb, C2_R_Cr), FMT_YUV_PSEUDO(MDP_Y_CBCR_H2V2_VENUS, MDSS_MDP_FETCH_LINEAR, MDSS_MDP_CHROMA_420, 0, C1_B_Cb, C2_R_Cr), + FMT_YUV_PSEUDO(MDP_Y_CRCB_H2V2_VENUS, MDSS_MDP_FETCH_LINEAR, + MDSS_MDP_CHROMA_420, 0, C2_R_Cr, C1_B_Cb), FMT_YUV_PLANR(MDP_Y_CB_CR_H2V2, MDSS_MDP_FETCH_LINEAR, MDSS_MDP_CHROMA_420, VALID_ROT_WB_FORMAT, C2_R_Cr, C1_B_Cb), diff --git a/drivers/video/fbdev/msm/mdss_mdp_rotator.h b/drivers/video/fbdev/msm/mdss_mdp_rotator.h index ca67ff78f867..e3d88798f2ba 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_rotator.h +++ b/drivers/video/fbdev/msm/mdss_mdp_rotator.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. +/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -68,6 +68,7 @@ static inline u32 mdss_mdp_get_rotator_dst_format(u32 in_format, u32 in_rot90, else return in_format; case MDP_Y_CBCR_H2V2_VENUS: + case MDP_Y_CRCB_H2V2_VENUS: case MDP_Y_CBCR_H2V2: if (in_rot90) return MDP_Y_CRCB_H2V2; diff --git a/drivers/video/fbdev/msm/mdss_mdp_util.c b/drivers/video/fbdev/msm/mdss_mdp_util.c index 872efc01b5b2..b721dd4adb73 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_util.c +++ b/drivers/video/fbdev/msm/mdss_mdp_util.c @@ -610,8 +610,11 @@ int mdss_mdp_get_plane_sizes(struct mdss_mdp_format_params *fmt, u32 w, u32 h, ps->num_planes = 1; ps->plane_size[0] = w * h * bpp; ps->ystride[0] = w * bpp; - } else if (fmt->format == MDP_Y_CBCR_H2V2_VENUS) { - int cf = COLOR_FMT_NV12; + } else if (fmt->format == MDP_Y_CBCR_H2V2_VENUS || + fmt->format == MDP_Y_CRCB_H2V2_VENUS) { + + int cf = (fmt->format == MDP_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); diff --git a/include/uapi/linux/msm_mdp.h b/include/uapi/linux/msm_mdp.h index 697fd39ea826..72a50f6d16eb 100644 --- a/include/uapi/linux/msm_mdp.h +++ b/include/uapi/linux/msm_mdp.h @@ -175,6 +175,7 @@ enum { MDP_RGBA_8888_UBWC, MDP_Y_CBCR_H2V2_UBWC, MDP_RGBX_8888_UBWC, + MDP_Y_CRCB_H2V2_VENUS, MDP_IMGTYPE_LIMIT, MDP_RGB_BORDERFILL, /* border fill pipe */ MDP_FB_FORMAT = MDP_IMGTYPE2_START, /* framebuffer format */ |