summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_formats.h2
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_rotator.h3
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_util.c7
-rw-r--r--include/uapi/linux/msm_mdp.h1
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 */