disp: msm: sde: update uidle wd timer load value and fal1 threshold

Update the uidle wd timer load value to 18. This change will allow
a 15us wd timer per hardware recommendation.

Update fal1 threshold value to take the minimum of 15 or the
current setting which takes line time and target idle time into
consideration. The target idle time is also being updated from 10us to
40us.

Change-Id: Ia8d9c2070813beef18fdf342526d82cf8f82989b
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
This commit is contained in:
Samantha Tran
2020-06-25 13:37:28 -07:00
parent 743dc695c4
commit d46c9286e5
3 changed files with 6 additions and 4 deletions

View File

@@ -2862,6 +2862,7 @@ static void _sde_plane_setup_uidle(struct drm_crtc *crtc,
{
struct sde_hw_pipe_uidle_cfg cfg;
struct sde_crtc *sde_crtc = to_sde_crtc(crtc);
u32 fal1_threshold_max = 15;
u32 line_time = sde_get_linetime(&crtc->mode,
sde_crtc->src_bpp, sde_crtc->target_bpp); /* nS */
@@ -2877,8 +2878,9 @@ static void _sde_plane_setup_uidle(struct drm_crtc *crtc,
cfg.enable = _sde_plane_allow_uidle(psde, src, dst);
cfg.fal10_threshold = fal10_threshold;
cfg.fal10_exit_threshold = fal10_threshold + 2;
cfg.fal1_threshold = 1 +
(fal1_target_idle_time_ns*1000/line_time*2)/1000;
cfg.fal1_threshold = min(1 +
(fal1_target_idle_time_ns*1000/line_time*2)/1000,
fal1_threshold_max);
cfg.fal_allowed_threshold = fal10_threshold +
(fal10_target_idle_time_ns*1000/line_time*2)/1000;
} else {