Merge "disp: msm: sde: update idlepc handling for wfd display"

This commit is contained in:
qctecmdr
2022-12-21 04:18:21 -08:00
committed by Gerrit - the friendly Code Review server
3 changed files with 15 additions and 11 deletions

View File

@@ -6652,16 +6652,6 @@ static void sde_crtc_install_properties(struct drm_crtc *crtc,
vfree(info);
}
static bool _is_crtc_intf_mode_wb(struct drm_crtc *crtc)
{
enum sde_intf_mode intf_mode = sde_crtc_get_intf_mode(crtc, crtc->state);
if ((intf_mode != INTF_MODE_WB_BLOCK) && (intf_mode != INTF_MODE_WB_LINE))
return false;
return true;
}
static int _sde_crtc_get_output_fence(struct drm_crtc *crtc,
const struct drm_crtc_state *state, uint64_t *val)
{

View File

@@ -950,6 +950,16 @@ static inline bool sde_crtc_state_in_clone_mode(struct drm_encoder *encoder,
return false;
}
static inline bool _is_crtc_intf_mode_wb(struct drm_crtc *crtc)
{
enum sde_intf_mode intf_mode = sde_crtc_get_intf_mode(crtc, crtc->state);
if ((intf_mode != INTF_MODE_WB_BLOCK) && (intf_mode != INTF_MODE_WB_LINE))
return false;
return true;
}
/**
* sde_crtc_get_ds_io_res - populates the destination scaler src/dst w/h
* @state: pointer to drm crtc state

View File

@@ -2252,7 +2252,11 @@ static int _sde_encoder_rc_idle(struct drm_encoder *drm_enc,
}
crtc_id = drm_crtc_index(crtc);
if (is_vid_mode) {
/**
* Avoid power collapse entry for writeback crtc since HAL does not repopulate
* crtc, plane properties like luts for idlepc exit commit.
*/
if (is_vid_mode || _is_crtc_intf_mode_wb(crtc)) {
sde_encoder_irq_control(drm_enc, false);
_sde_encoder_pm_qos_remove_request(drm_enc);
} else {