disp: msm: sde: avoid idlepc power collapse for wfd display
When wfd display is connected, qseed3 coefficient lut programming is getting erased due to idle pc entry for wfd pipes. On idlepc exit commit, plane properties are not reconfigured from userspace since support is not present for writeback crtc. This patch updates idle pc handling to avoid gdsc power off when writeback crtc is connected and for CWB encoder gdsc power off will happen on idle pc entry. Change-Id: I7f75bf45089acaf1bd1b775351e05bcdcc89fc9e Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
This commit is contained in:
@@ -2656,6 +2656,11 @@ static int _sde_encoder_rc_idle(struct drm_encoder *drm_enc,
|
||||
}
|
||||
|
||||
crtc_id = drm_crtc_index(crtc);
|
||||
/*
|
||||
* Avoid power collapse entry for writeback crtc since HAL does not repopulate
|
||||
* crtc, plane properties like luts for idlepc exit commit. Here is_vid_mode will
|
||||
* represents video mode panels and wfd baring CWB.
|
||||
*/
|
||||
if (is_vid_mode) {
|
||||
sde_encoder_irq_control(drm_enc, false);
|
||||
_sde_encoder_pm_qos_remove_request(drm_enc);
|
||||
@@ -2774,8 +2779,10 @@ static int sde_encoder_resource_control(struct drm_encoder *drm_enc,
|
||||
}
|
||||
sde_enc = to_sde_encoder_virt(drm_enc);
|
||||
priv = drm_enc->dev->dev_private;
|
||||
if (sde_encoder_check_curr_mode(&sde_enc->base, MSM_DISPLAY_VIDEO_MODE))
|
||||
is_vid_mode = true;
|
||||
|
||||
/* is_vid_mode represents vid mode panel and WFD for clocks and irq control. */
|
||||
is_vid_mode = !((sde_encoder_get_intf_mode(drm_enc) == INTF_MODE_CMD) ||
|
||||
sde_encoder_in_clone_mode(drm_enc));
|
||||
/*
|
||||
* when idle_pc is not supported, process only KICKOFF, STOP and MODESET
|
||||
* events and return early for other events (ie wb display).
|
||||
|
Reference in New Issue
Block a user