diff options
| author | Ajay Singh Parmar <aparmar@codeaurora.org> | 2015-09-16 16:49:35 -0700 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:45:52 -0700 |
| commit | 3a62a31d4433c791dc45185053c1618de024b295 (patch) | |
| tree | 7289fddd16871b8e67d01840c6608cc078b41950 | |
| parent | ebfddf9b2ae2d2635c6bccf8548de2083a000514 (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.c | 16 |
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: |
