disp: msm: sde: add support for WD timer on INTF

Watchdog timer is moving from TOP to INTF. This change adds
support for movement and ensures backwards compatibility.

Vsync select only needs to specify whether or not to use
Timer 0 associated with the interface. It does not need to
select between Timer 0-4.

Signed-off-by: Samantha Tran <samtran@codeaurora.org>
Change-Id: I9d89a8cb1ea607e9fc0bdbffa0a6a9acceff7f13
This commit is contained in:
Samantha Tran
2020-09-16 17:20:32 -07:00
parent 77b66f2f84
commit e778d2688e
11 changed files with 92 additions and 55 deletions

View File

@@ -1935,13 +1935,25 @@ static void sde_encoder_phys_cmd_trigger_start(
}
static void sde_encoder_phys_cmd_setup_vsync_source(
struct sde_encoder_phys *phys_enc,
u32 vsync_source, bool is_dummy)
struct sde_encoder_phys *phys_enc, u32 vsync_source)
{
struct sde_encoder_virt *sde_enc;
if (!phys_enc || !phys_enc->hw_intf)
return;
sde_encoder_helper_vsync_config(phys_enc, vsync_source, is_dummy);
sde_enc = to_sde_encoder_virt(phys_enc->parent);
if (!sde_enc)
return;
if (sde_enc->disp_info.is_te_using_watchdog_timer &&
phys_enc->hw_intf->ops.setup_vsync_source) {
vsync_source = SDE_VSYNC_SOURCE_WD_TIMER_0;
phys_enc->hw_intf->ops.setup_vsync_source(phys_enc->hw_intf,
sde_enc->mode_info.frame_rate);
} else {
sde_encoder_helper_vsync_config(phys_enc, vsync_source);
}
if (phys_enc->has_intf_te && phys_enc->hw_intf->ops.vsync_sel)
phys_enc->hw_intf->ops.vsync_sel(phys_enc->hw_intf,