disp: msm: sde: avoid solver mode if autorefresh is enabled
In dual display with continuous splash, when autorefresh gets disabled in primary on first commit, solver mode gets enabled and mdp_clock is gated whenever primary enters idle. The secondary data path will get gated during that time and not advance anymore. Asynchronous gating of the mdp_clock during operation can also hang the secondary path. This change avoids entering the solver mode which fixes the timeout in the autorefresh disable sequence in the secondary. Change-Id: I7562ce2ad72d3bb8e8b6b8f356fab6def0caaf92 Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
This commit is contained in:

committed by
Dhaval Patel

parent
d1965c6ca8
commit
e32095527a
@@ -1190,6 +1190,7 @@ static int _sde_encoder_update_rsc_client(
|
||||
u32 qsync_mode = 0, v_front_porch;
|
||||
struct drm_display_mode *mode;
|
||||
bool is_vid_mode;
|
||||
struct drm_encoder *enc;
|
||||
|
||||
if (!drm_enc || !drm_enc->dev) {
|
||||
SDE_ERROR("invalid encoder arguments\n");
|
||||
@@ -1232,6 +1233,12 @@ static int _sde_encoder_update_rsc_client(
|
||||
else if (sde_encoder_check_curr_mode(drm_enc, MSM_DISPLAY_VIDEO_MODE))
|
||||
rsc_state = enable ? SDE_RSC_VID_STATE : SDE_RSC_IDLE_STATE;
|
||||
|
||||
drm_for_each_encoder(enc, drm_enc->dev) {
|
||||
if (enc->base.id != drm_enc->base.id &&
|
||||
sde_encoder_in_cont_splash(enc))
|
||||
rsc_state = SDE_RSC_CLK_STATE;
|
||||
}
|
||||
|
||||
SDE_EVT32(rsc_state, qsync_mode);
|
||||
|
||||
is_vid_mode = sde_encoder_check_curr_mode(&sde_enc->base,
|
||||
|
Reference in New Issue
Block a user