From 25c2a63dd5e6497881e80902925d77f517312b79 Mon Sep 17 00:00:00 2001 From: wingte48 Date: Wed, 2 Mar 2022 16:13:13 +0800 Subject: [PATCH] kernel/display : Add dsi pps disable configuration function Modify: some panel ICs can't decode platform pps code, use panel's own pps parameters.So add this feature do disable platform sent pps. Change-Id: I95926e86f12c3486aa3ebc684a872d7e3fe7d6f2 Reviewed-on: https://gerrit.mot.com/2205094 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Dezhen Hou Reviewed-by: Yeqing Wang Reviewed-by: Huosheng Liao Submit-Approved: Jira Key Reviewed-on: https://gerrit.mot.com/2273817 Reviewed-by: gaoyx9 Submit-Approved: gaoyx9 Tested-by: gaoyx9 --- msm/dsi/dsi_defs.h | 1 + msm/dsi/dsi_display.c | 12 +++++++----- msm/dsi/dsi_panel.c | 3 +++ 3 files changed, 11 insertions(+), 5 deletions(-) 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;