disp: msm: check max FPS of DFPS to update UIDLE configurations
It is not applicable for all DFPS cases to update UIDLE state according to current frame rate. If DFPS changes frame rate through vertical front porch values, the SDE clocks and transfer time will not get changed accordingly, and it always get fixed at max frame rate configuration of DFPS. Add this change to check max FPS of DFPS instead of current frame rate for UIDLE update, if DFPS is enabled with VFP. Change-Id: I7634bce6a9eb1af212ba19a267735be08b20ae1f Signed-off-by: Lei Chen <chenlei@codeaurora.org>
这个提交包含在:
@@ -545,6 +545,25 @@ void sde_encoder_uidle_enable(struct drm_encoder *drm_enc, bool enable);
|
||||
*/
|
||||
void sde_encoder_irq_control(struct drm_encoder *drm_enc, bool enable);
|
||||
|
||||
/*
|
||||
* sde_encoder_get_dfps_maxfps - get dynamic FPS max frame rate of
|
||||
the given encoder
|
||||
* @encoder: Pointer to drm encoder object
|
||||
*/
|
||||
static inline u32 sde_encoder_get_dfps_maxfps(struct drm_encoder *drm_enc)
|
||||
{
|
||||
struct sde_encoder_virt *sde_enc;
|
||||
|
||||
if (!drm_enc) {
|
||||
SDE_ERROR("invalid encoder\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
sde_enc = to_sde_encoder_virt(drm_enc);
|
||||
|
||||
return sde_enc->mode_info.dfps_maxfps;
|
||||
}
|
||||
|
||||
/**
|
||||
* sde_encoder_get_kms - retrieve the kms from encoder
|
||||
* @drm_enc: Pointer to drm encoder structure
|
||||
|
在新工单中引用
屏蔽一个用户