diff options
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dsi_panel.c | 11 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_panel.c | 17 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_panel.h | 7 |
3 files changed, 25 insertions, 10 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dsi_panel.c b/drivers/video/fbdev/msm/mdss_dsi_panel.c index 3847d62ff887..017bac29cf3c 100644 --- a/drivers/video/fbdev/msm/mdss_dsi_panel.c +++ b/drivers/video/fbdev/msm/mdss_dsi_panel.c @@ -1290,16 +1290,7 @@ static void mdss_panel_parse_te_params(struct device_node *np, /* override te parameters if panel is in sw te mode */ if (panel_info->sim_panel_mode == SIM_SW_TE_MODE) { - panel_info->te.sync_cfg_height = panel_info->yres - + panel_info->lcdc.v_front_porch - + panel_info->lcdc.v_back_porch; - panel_info->te.vsync_init_val = 0; - panel_info->te.start_pos = 5; - panel_info->te.rd_ptr_irq = 1; - pr_debug("SW TE override: read_ptr:%d,start_pos:%d,height:%d,init_val:%d\n", - panel_info->te.rd_ptr_irq, panel_info->te.start_pos, - panel_info->te.sync_cfg_height, - panel_info->te.vsync_init_val); + mdss_panel_override_te_params(panel_info); } else { rc = of_property_read_u32 (np, "qcom,mdss-tear-check-sync-cfg-height", &tmp); diff --git a/drivers/video/fbdev/msm/mdss_panel.c b/drivers/video/fbdev/msm/mdss_panel.c index afac91a35bc9..3ee449afad87 100644 --- a/drivers/video/fbdev/msm/mdss_panel.c +++ b/drivers/video/fbdev/msm/mdss_panel.c @@ -504,6 +504,18 @@ void mdss_panel_debugfs_cleanup(struct mdss_panel_info *panel_info) pr_debug("Cleaned up mdss_panel_debugfs_info\n"); } +void mdss_panel_override_te_params(struct mdss_panel_info *pinfo) +{ + pinfo->te.sync_cfg_height = mdss_panel_get_vtotal(pinfo); + pinfo->te.vsync_init_val = 0; + pinfo->te.start_pos = 5; + pinfo->te.rd_ptr_irq = 1; + pr_debug("SW TE override: read_ptr:%d,start_pos:%d,height:%d,init_val:%d\n", + pinfo->te.rd_ptr_irq, pinfo->te.start_pos, + pinfo->te.sync_cfg_height, + pinfo->te.vsync_init_val); +} + void mdss_panel_debugfsinfo_to_panelinfo(struct mdss_panel_info *panel_info) { struct mdss_panel_data *pdata; @@ -550,6 +562,11 @@ void mdss_panel_debugfsinfo_to_panelinfo(struct mdss_panel_info *panel_info) } pinfo->panel_max_vtotal = mdss_panel_get_vtotal(pinfo); + + /* override te parameters if panel is in sw te mode */ + if (panel_info->sim_panel_mode == SIM_SW_TE_MODE) + mdss_panel_override_te_params(panel_info); + pdata = pdata->next; } while (pdata); } diff --git a/drivers/video/fbdev/msm/mdss_panel.h b/drivers/video/fbdev/msm/mdss_panel.h index 314e01de3fb7..dda3789d67c1 100644 --- a/drivers/video/fbdev/msm/mdss_panel.h +++ b/drivers/video/fbdev/msm/mdss_panel.h @@ -775,6 +775,13 @@ int mdss_panel_get_boot_cfg(void); */ bool mdss_is_ready(void); int mdss_rect_cmp(struct mdss_rect *rect1, struct mdss_rect *rect2); + +/** + * mdss_panel_override_te_params() - overrides TE params to enable SW TE + * @pinfo: panel info + */ +void mdss_panel_override_te_params(struct mdss_panel_info *pinfo); + #ifdef CONFIG_FB_MSM_MDSS int mdss_panel_debugfs_init(struct mdss_panel_info *panel_info); void mdss_panel_debugfs_cleanup(struct mdss_panel_info *panel_info); |
