Merge "disp: msm: sde: add delay after porches changed" into display-kernel.lnx.5.4
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
6d768e78df
@@ -52,13 +52,16 @@ enum sde_enc_split_role {
|
|||||||
* @SDE_ENC_ENABLED: Encoder is enabled
|
* @SDE_ENC_ENABLED: Encoder is enabled
|
||||||
* @SDE_ENC_ERR_NEEDS_HW_RESET: Encoder is enabled, but requires a hw_reset
|
* @SDE_ENC_ERR_NEEDS_HW_RESET: Encoder is enabled, but requires a hw_reset
|
||||||
* to recover from a previous error
|
* 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 {
|
enum sde_enc_enable_state {
|
||||||
SDE_ENC_DISABLING,
|
SDE_ENC_DISABLING,
|
||||||
SDE_ENC_DISABLED,
|
SDE_ENC_DISABLED,
|
||||||
SDE_ENC_ENABLING,
|
SDE_ENC_ENABLING,
|
||||||
SDE_ENC_ENABLED,
|
SDE_ENC_ENABLED,
|
||||||
SDE_ENC_ERR_NEEDS_HW_RESET
|
SDE_ENC_ERR_NEEDS_HW_RESET,
|
||||||
|
SDE_ENC_TIMING_ENGINE_RECONFIG,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sde_encoder_phys;
|
struct sde_encoder_phys;
|
||||||
|
@@ -830,6 +830,8 @@ skip_flush:
|
|||||||
/* ctl_flush & timing engine enable will be triggered by framework */
|
/* ctl_flush & timing engine enable will be triggered by framework */
|
||||||
if (phys_enc->enable_state == SDE_ENC_DISABLED)
|
if (phys_enc->enable_state == SDE_ENC_DISABLED)
|
||||||
phys_enc->enable_state = SDE_ENC_ENABLING;
|
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)
|
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);
|
lock_flags);
|
||||||
}
|
}
|
||||||
phys_enc->enable_state = SDE_ENC_ENABLED;
|
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);
|
avr_mode = sde_connector_get_qsync_mode(phys_enc->connector);
|
||||||
|
Reference in New Issue
Block a user