summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAjay Singh Parmar <aparmar@codeaurora.org>2015-09-16 16:49:35 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:45:52 -0700
commit3a62a31d4433c791dc45185053c1618de024b295 (patch)
tree7289fddd16871b8e67d01840c6608cc078b41950
parentebfddf9b2ae2d2635c6bccf8548de2083a000514 (diff)
msm: mdss: cdm: check for pixel drop need
Set pixel drop CDM down sampling for the resolutions which do not support average filtering. Change-Id: Iee767c95cc584ea5ea039993d284400c7bacfbcb Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_intf_video.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_intf_video.c b/drivers/video/fbdev/msm/mdss_mdp_intf_video.c
index a35c0d7910a1..736f2cf5b1f4 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_intf_video.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_intf_video.c
@@ -17,6 +17,7 @@
#include <linux/delay.h>
#include <linux/dma-mapping.h>
#include <linux/memblock.h>
+#include <video/msm_hdmi_modes.h>
#include "mdss_fb.h"
#include "mdss_mdp.h"
@@ -1257,6 +1258,12 @@ static void mdss_mdp_fetch_start_config(struct mdss_mdp_video_ctx *ctx,
mdp_video_write(ctx, MDSS_MDP_REG_INTF_CONFIG, fetch_enable);
}
+static inline bool mdss_mdp_video_need_pixel_drop(u32 vic)
+{
+ return vic == HDMI_VFRMT_4096x2160p50_256_135 ||
+ vic == HDMI_VFRMT_4096x2160p60_256_135;
+}
+
static int mdss_mdp_video_cdm_setup(struct mdss_mdp_cdm *cdm,
struct mdss_panel_info *pinfo)
{
@@ -1286,8 +1293,13 @@ static int mdss_mdp_video_cdm_setup(struct mdss_mdp_cdm *cdm,
setup.vert_downsampling_type = MDP_CDM_CDWN_DISABLE;
break;
case MDSS_MDP_CHROMA_420:
- setup.horz_downsampling_type = MDP_CDM_CDWN_COSITE;
- setup.vert_downsampling_type = MDP_CDM_CDWN_OFFSITE;
+ if (mdss_mdp_video_need_pixel_drop(pinfo->vic)) {
+ setup.horz_downsampling_type = MDP_CDM_CDWN_PIXEL_DROP;
+ setup.vert_downsampling_type = MDP_CDM_CDWN_PIXEL_DROP;
+ } else {
+ setup.horz_downsampling_type = MDP_CDM_CDWN_COSITE;
+ setup.vert_downsampling_type = MDP_CDM_CDWN_OFFSITE;
+ }
break;
case MDSS_MDP_CHROMA_H1V2:
default: