Merge "disp: msm: sde: add delay after porches changed" into display-kernel.lnx.5.4

This commit is contained in:
Linux Build Service Account
2020-07-17 15:14:52 -07:00
committed by Gerrit - the friendly Code Review server
2 changed files with 11 additions and 1 deletions

View File

@@ -52,13 +52,16 @@ enum sde_enc_split_role {
* @SDE_ENC_ENABLED: Encoder is enabled
* @SDE_ENC_ERR_NEEDS_HW_RESET: Encoder is enabled, but requires a hw_reset
* to recover from a previous error
* @SDE_ENC_TIMING_ENGINE_RECONFIG: Encoder is enabled and timing engine
* parameters are updated
*/
enum sde_enc_enable_state {
SDE_ENC_DISABLING,
SDE_ENC_DISABLED,
SDE_ENC_ENABLING,
SDE_ENC_ENABLED,
SDE_ENC_ERR_NEEDS_HW_RESET
SDE_ENC_ERR_NEEDS_HW_RESET,
SDE_ENC_TIMING_ENGINE_RECONFIG,
};
struct sde_encoder_phys;

View File

@@ -830,6 +830,8 @@ skip_flush:
/* ctl_flush & timing engine enable will be triggered by framework */
if (phys_enc->enable_state == SDE_ENC_DISABLED)
phys_enc->enable_state = SDE_ENC_ENABLING;
if (phys_enc->enable_state == SDE_ENC_ENABLED)
phys_enc->enable_state = SDE_ENC_TIMING_ENGINE_RECONFIG;
}
static void sde_encoder_phys_vid_destroy(struct sde_encoder_phys *phys_enc)
@@ -1120,6 +1122,11 @@ static void sde_encoder_phys_vid_handle_post_kickoff(
lock_flags);
}
phys_enc->enable_state = SDE_ENC_ENABLED;
} else if (phys_enc->enable_state == SDE_ENC_TIMING_ENGINE_RECONFIG) {
/* add 2 vsync delay for timing engine change */
sde_encoder_phys_vid_single_vblank_wait(phys_enc);
sde_encoder_phys_vid_single_vblank_wait(phys_enc);
phys_enc->enable_state = SDE_ENC_ENABLED;
}
avr_mode = sde_connector_get_qsync_mode(phys_enc->connector);