disp: msm: dsi: optimize wait time in DSI timing DB update

Timing DB needs to be disabled after panel vnsyc.
Update the wait time to reflect difference in line time
between MDP and panel vsync.

Change-Id: Ib5282d67995e8379ead928218f31a8f9fe7fa978
Signed-off-by: Shamika Joshi <quic_shamjosh@quicinc.com>
这个提交包含在:
Shamika Joshi
2023-01-11 09:56:44 -08:00
父节点 b86343b75b
当前提交 495a6a8731
修改 7 个文件,包含 53 行新增10 行删除

查看文件

@@ -2516,13 +2516,14 @@ exit:
* dsi_ctrl_timing_db_update() - update only controller Timing DB
* @dsi_ctrl: DSI controller handle.
* @enable: Enable/disable Timing DB register
* @pf_time_in_us: Programmable fetch time in micro-seconds
*
* Update timing db register value during dfps usecases
*
* Return: error code.
*/
int dsi_ctrl_timing_db_update(struct dsi_ctrl *dsi_ctrl,
bool enable)
bool enable, u32 pf_time_in_us)
{
int rc = 0;
@@ -2550,7 +2551,13 @@ int dsi_ctrl_timing_db_update(struct dsi_ctrl *dsi_ctrl,
* flush is after panel_vsync. So, added the recommended
* delays after dfps update.
*/
usleep_range(2000, 2010);
if (pf_time_in_us > 2000) {
DSI_CTRL_ERR(dsi_ctrl, "Programmable fetch time check failed, pf_time_in_us=%u\n",
pf_time_in_us);
pf_time_in_us = 2000;
}
usleep_range(pf_time_in_us, pf_time_in_us + 10);
dsi_ctrl->hw.ops.set_timing_db(&dsi_ctrl->hw, enable);