diff --git a/msm/dsi/dsi_defs.h b/msm/dsi/dsi_defs.h index 630a6a2a43cd..8081cc5c9295 100644 --- a/msm/dsi/dsi_defs.h +++ b/msm/dsi/dsi_defs.h @@ -665,6 +665,7 @@ struct dsi_display_mode_priv_info { struct msm_display_dsc_info dsc; struct msm_display_vdc_info vdc; bool dsc_enabled; + bool panel_dsc_update_pps_disable; bool vdc_enabled; struct msm_ratio pclk_scale; struct msm_roi_caps roi_caps; diff --git a/msm/dsi/dsi_display.c b/msm/dsi/dsi_display.c index 4bbcf367ffe9..43c71a17c07c 100644 --- a/msm/dsi/dsi_display.c +++ b/msm/dsi/dsi_display.c @@ -9190,11 +9190,13 @@ int dsi_display_enable(struct dsi_display *display) if ((mode->priv_info->dsc_enabled || mode->priv_info->vdc_enabled) && !(mode->dsi_mode_flags & DSI_MODE_FLAG_DMS_FPS)) { - rc = dsi_panel_update_pps(display->panel); - if (rc) { - DSI_ERR("[%s] panel pps cmd update failed, rc=%d\n", - display->name, rc); - goto error; + if(!mode->priv_info->panel_dsc_update_pps_disable){ + rc = dsi_panel_update_pps(display->panel); + if (rc) { + DSI_ERR("[%s] panel pps cmd update failed, rc=%d\n", + display->name, rc); + goto error; + } } } diff --git a/msm/dsi/dsi_panel.c b/msm/dsi/dsi_panel.c index dcb08e054124..772f592191d2 100644 --- a/msm/dsi/dsi_panel.c +++ b/msm/dsi/dsi_panel.c @@ -3277,6 +3277,7 @@ static int dsi_panel_parse_dsc_params(struct dsi_display_mode *mode, priv_info = mode->priv_info; priv_info->dsc_enabled = false; + priv_info->panel_dsc_update_pps_disable = false; compression = utils->get_property(utils->data, "qcom,compression-mode", NULL); if (compression && !strcmp(compression, "dsc")) @@ -3287,6 +3288,8 @@ static int dsi_panel_parse_dsc_params(struct dsi_display_mode *mode, return 0; } + priv_info->panel_dsc_update_pps_disable = utils->read_bool(utils->data, + "qcom,mdss-dsc-update-pps-disable"); rc = utils->read_u32(utils->data, "qcom,mdss-dsc-version", &data); if (rc) { priv_info->dsc.config.dsc_version_major = 0x1;