disp: msm: sde: compute timeouts based on refresh rate
Current timeout values in sde driver for vblank, kickoff and frame complete timeouts are fixed and can be much lower than a vsync incase of low refresh rate display. Compute timeouts based on refresh rate for low refresh rate displays. Change-Id: I9dda41feb15446de7451824e185321de421ad575 Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
This commit is contained in:
@@ -657,6 +657,9 @@ static void sde_encoder_phys_vid_mode_set(
|
||||
}
|
||||
|
||||
_sde_encoder_phys_vid_setup_irq_hw_idx(phys_enc);
|
||||
|
||||
phys_enc->kickoff_timeout_ms =
|
||||
sde_encoder_helper_get_kickoff_timeout_ms(phys_enc->parent);
|
||||
}
|
||||
|
||||
static int sde_encoder_phys_vid_control_vblank_irq(
|
||||
@@ -889,7 +892,7 @@ static int _sde_encoder_phys_vid_wait_for_vblank(
|
||||
|
||||
wait_info.wq = &phys_enc->pending_kickoff_wq;
|
||||
wait_info.atomic_cnt = &phys_enc->pending_kickoff_cnt;
|
||||
wait_info.timeout_ms = KICKOFF_TIMEOUT_MS;
|
||||
wait_info.timeout_ms = phys_enc->kickoff_timeout_ms;
|
||||
|
||||
/* Wait for kickoff to complete */
|
||||
ret = sde_encoder_helper_wait_for_irq(phys_enc, INTR_IDX_VSYNC,
|
||||
@@ -1361,6 +1364,7 @@ struct sde_encoder_phys *sde_encoder_phys_vid_init(
|
||||
phys_enc->enc_spinlock = p->enc_spinlock;
|
||||
phys_enc->vblank_ctl_lock = p->vblank_ctl_lock;
|
||||
phys_enc->comp_type = p->comp_type;
|
||||
phys_enc->kickoff_timeout_ms = DEFAULT_KICKOFF_TIMEOUT_MS;
|
||||
for (i = 0; i < INTR_IDX_MAX; i++) {
|
||||
irq = &phys_enc->irq[i];
|
||||
INIT_LIST_HEAD(&irq->cb.list);
|
||||
|
Reference in New Issue
Block a user