dsi/dfps: set the right fps when panel resume

When panel resume ,HWC will set the fps from the last suspend to panel.
If the panel is not the fps from init code.
We will set the right fps with dsi_panel_dfps_send_cmd().

refer to https://gerrit.mot.com/#/c/2386399/
         https://gerrit.mot.com/#/c/2419816/

Change-Id: I5a5b7d07daa1806852be69923e6f0993f07e2640
Signed-off-by: tinno64 <tinno64@motorola.com>
Reviewed-on: https://gerrit.mot.com/2603896
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com>
Submit-Approved: Jira Key
This commit is contained in:
tinno64 2023-05-11 17:31:20 +08:00 • committed by tongkun1
commit 146c63d824
3 changed files with 15 additions and 0 deletions

View file

@ -9183,6 +9183,15 @@ int dsi_display_enable(struct dsi_display *display)
goto error;
}
dsi_panel_reset_param(display->panel);
if (display->panel->dfps_caps.dfps_send_cmd_support) {
display->panel->dfps_caps.current_fps = display->panel->dfps_caps.panel_on_fps;
if (mode->timing.refresh_rate != display->panel->dfps_caps.panel_on_fps) {
DSI_INFO("[%s] dst_refresh_rate %d panel_on_fps %d\n", __func__, mode->timing.refresh_rate, display->panel->dfps_caps.panel_on_fps);
dsi_panel_dfps_send_cmd(display->panel);
}
}
dsi_display_enable_status(display, true);
}
dsi_display_panel_id_notification(display);

View file

@ -2169,6 +2169,10 @@ static int dsi_panel_parse_dfps_caps(struct dsi_panel *panel)
dfps_caps->dfps_send_cmd_support = utils->read_bool(utils->data,
"qcom,mdss-dsi-pan-dpfs-send-command");
if(dfps_caps->dfps_send_cmd_support) {
dfps_caps->panel_on_fps = dfps_caps->dfps_list[0];
dfps_caps->current_fps = dfps_caps->panel_on_fps;
}
error:
return rc;

View file

@ -125,6 +125,8 @@ struct dsi_dfps_capabilities {
u32 dfps_list_len;
bool dfps_support;
bool dfps_send_cmd_support;
u32 panel_on_fps;
u32 current_fps;
};
struct dsi_qsync_capabilities {