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 <[email protected]>
Reviewed-by: Yeqing Wang <[email protected]>
Reviewed-by: Huosheng Liao <[email protected]>
Submit-Approved: Jira Key
Reviewed-on: https://gerrit.mot.com/2273817
Reviewed-by: gaoyx9 <[email protected]>
Submit-Approved: gaoyx9 <[email protected]>
Tested-by: gaoyx9 <[email protected]>
This commit is contained in:
wingte48 2022-03-02 16:13:13 +08:00 • committed by tongkun1
commit 25c2a63dd5
3 changed files with 11 additions and 5 deletions

View file

@ -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;

View file

@ -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;
}
}
}

View file

@ -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;