summaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorRaviteja Tamatam <travitej@codeaurora.org>2016-12-19 16:02:31 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2016-12-21 03:51:43 -0800
commit4c2873aec71996537843d04468d006eae8af0d68 (patch)
tree9aec15198f788506ee182a19ffcccd79dd11e578 /drivers/video
parentda5c2e07e74d4e4d1f9548a22461b7eb1c46fae8 (diff)
msm: mdss: Add mdss capabilities for msmfalcon
Add MDSS version info along with other capabilities for msmfalcon. Change-Id: Ide652165711eec23644d36837f3847d896293709 Signed-off-by: Raviteja Tamatam <travitej@codeaurora.org>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/fbdev/msm/mdss_debug.c4
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp.c42
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp.h4
3 files changed, 48 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_debug.c b/drivers/video/fbdev/msm/mdss_debug.c
index 6b455e0f1e6f..9ab88d4a7a52 100644
--- a/drivers/video/fbdev/msm/mdss_debug.c
+++ b/drivers/video/fbdev/msm/mdss_debug.c
@@ -1359,7 +1359,9 @@ static inline struct mdss_mdp_misr_map *mdss_misr_get_map(u32 block_id,
(mdata->mdp_rev ==
MDSS_MDP_HW_REV_300) ||
(mdata->mdp_rev ==
- MDSS_MDP_HW_REV_301)) {
+ MDSS_MDP_HW_REV_301) ||
+ (mdata->mdp_rev ==
+ MDSS_MDP_HW_REV_320)) {
ctrl_reg += 0x8;
value_reg += 0x8;
}
diff --git a/drivers/video/fbdev/msm/mdss_mdp.c b/drivers/video/fbdev/msm/mdss_mdp.c
index 58e0d9676736..ffb9cd5dc8cd 100644
--- a/drivers/video/fbdev/msm/mdss_mdp.c
+++ b/drivers/video/fbdev/msm/mdss_mdp.c
@@ -2052,6 +2052,48 @@ static void mdss_mdp_hw_rev_caps_init(struct mdss_data_type *mdata)
set_bit(MDSS_CAPS_AVR_SUPPORTED, mdata->mdss_caps_map);
set_bit(MDSS_CAPS_SEC_DETACH_SMMU, mdata->mdss_caps_map);
break;
+ case MDSS_MDP_HW_REV_320:
+ mdata->max_target_zorder = 7; /* excluding base layer */
+ mdata->max_cursor_size = 512;
+ mdata->per_pipe_ib_factor.numer = 8;
+ mdata->per_pipe_ib_factor.denom = 5;
+ mdata->apply_post_scale_bytes = false;
+ mdata->hflip_buffer_reused = false;
+ mdata->min_prefill_lines = 25;
+ mdata->has_ubwc = true;
+ mdata->pixel_ram_size = 50 * 1024;
+ mdata->rects_per_sspp[MDSS_MDP_PIPE_TYPE_DMA] = 2;
+
+ mem_protect_sd_ctrl_id = MEM_PROTECT_SD_CTRL_SWITCH;
+ set_bit(MDSS_QOS_PER_PIPE_IB, mdata->mdss_qos_map);
+ set_bit(MDSS_QOS_REMAPPER, mdata->mdss_qos_map);
+ set_bit(MDSS_QOS_TS_PREFILL, mdata->mdss_qos_map);
+ set_bit(MDSS_QOS_OVERHEAD_FACTOR, mdata->mdss_qos_map);
+ set_bit(MDSS_QOS_CDP, mdata->mdss_qos_map); /* cdp supported */
+ mdata->enable_cdp = false; /* disable cdp */
+ set_bit(MDSS_QOS_OTLIM, mdata->mdss_qos_map);
+ set_bit(MDSS_QOS_PER_PIPE_LUT, mdata->mdss_qos_map);
+ set_bit(MDSS_QOS_SIMPLIFIED_PREFILL, mdata->mdss_qos_map);
+ set_bit(MDSS_QOS_TS_PREFILL, mdata->mdss_qos_map);
+ set_bit(MDSS_QOS_IB_NOCR, mdata->mdss_qos_map);
+ set_bit(MDSS_QOS_WB2_WRITE_GATHER_EN, mdata->mdss_qos_map);
+ set_bit(MDSS_CAPS_YUV_CONFIG, mdata->mdss_caps_map);
+ set_bit(MDSS_CAPS_SCM_RESTORE_NOT_REQUIRED,
+ mdata->mdss_caps_map);
+ set_bit(MDSS_CAPS_3D_MUX_UNDERRUN_RECOVERY_SUPPORTED,
+ mdata->mdss_caps_map);
+ set_bit(MDSS_CAPS_QSEED3, mdata->mdss_caps_map);
+ set_bit(MDSS_CAPS_MDP_VOTE_CLK_NOT_SUPPORTED,
+ mdata->mdss_caps_map);
+ mdss_mdp_init_default_prefill_factors(mdata);
+ mdss_set_quirk(mdata, MDSS_QUIRK_DSC_RIGHT_ONLY_PU);
+ mdss_set_quirk(mdata, MDSS_QUIRK_DSC_2SLICE_PU_THRPUT);
+ mdss_set_quirk(mdata, MDSS_QUIRK_MMSS_GDSC_COLLAPSE);
+ mdss_set_quirk(mdata, MDSS_QUIRK_MDP_CLK_SET_RATE);
+ mdata->has_wb_ubwc = true;
+ set_bit(MDSS_CAPS_10_BIT_SUPPORTED, mdata->mdss_caps_map);
+ set_bit(MDSS_CAPS_SEC_DETACH_SMMU, mdata->mdss_caps_map);
+ break;
default:
mdata->max_target_zorder = 4; /* excluding base layer */
mdata->max_cursor_size = 64;
diff --git a/drivers/video/fbdev/msm/mdss_mdp.h b/drivers/video/fbdev/msm/mdss_mdp.h
index 20aeabfdf9a4..ab2a7184aa45 100644
--- a/drivers/video/fbdev/msm/mdss_mdp.h
+++ b/drivers/video/fbdev/msm/mdss_mdp.h
@@ -1285,7 +1285,9 @@ static inline int mdss_mdp_panic_signal_support_mode(
IS_MDSS_MAJOR_MINOR_SAME(mdata->mdp_rev,
MDSS_MDP_HW_REV_116) ||
IS_MDSS_MAJOR_MINOR_SAME(mdata->mdp_rev,
- MDSS_MDP_HW_REV_300))
+ MDSS_MDP_HW_REV_300) ||
+ IS_MDSS_MAJOR_MINOR_SAME(mdata->mdp_rev,
+ MDSS_MDP_HW_REV_320))
signal_mode = MDSS_MDP_PANIC_PER_PIPE_CFG;
return signal_mode;