diff --git a/techpack/display/msm/dsi/dsi_display.c b/techpack/display/msm/dsi/dsi_display.c index d5874936afb5..a95850ca0ef2 100644 --- a/techpack/display/msm/dsi/dsi_display.c +++ b/techpack/display/msm/dsi/dsi_display.c @@ -8854,6 +8854,12 @@ static int dsi_display_set_roi(struct dsi_display *display, return rc; } + rc = dsi_panel_send_roi_dcs(display->panel, i, &ctrl_roi); + if (rc) { + DSI_ERR("dsi_panel_set_roi twice failed rc %d\n", rc); + return rc; + } + /* re-program the ctrl with the timing based on the new roi */ rc = dsi_ctrl_timing_setup(ctrl->ctrl); if (rc) { diff --git a/techpack/display/msm/sde/sde_crtc.c b/techpack/display/msm/sde/sde_crtc.c index 24b773058f52..472b623a31ec 100644 --- a/techpack/display/msm/sde/sde_crtc.c +++ b/techpack/display/msm/sde/sde_crtc.c @@ -657,6 +657,7 @@ static int _sde_crtc_set_roi_v1(struct drm_crtc_state *state, crtc = cstate->base.crtc; memset(&cstate->user_roi_list, 0, sizeof(cstate->user_roi_list)); + memset(&cstate->cached_user_roi_list, 0, sizeof(cstate->cached_user_roi_list)); if (!usr_ptr) { SDE_DEBUG("crtc%d: rois cleared\n", DRMID(crtc));