diff --git a/msm/sde/sde_encoder.c b/msm/sde/sde_encoder.c index fd08a1b942..7b5497613e 100644 --- a/msm/sde/sde_encoder.c +++ b/msm/sde/sde_encoder.c @@ -1342,7 +1342,7 @@ static void _sde_encoder_update_vsync_source(struct sde_encoder_virt *sde_enc, phys = sde_enc->phys_encs[i]; if (phys && phys->ops.setup_vsync_source) - phys->ops.setup_vsync_source(phys, vsync_source); + phys->ops.setup_vsync_source(phys, vsync_source, disp_info); } } } diff --git a/msm/sde/sde_encoder_phys.h b/msm/sde/sde_encoder_phys.h index 7c5e25d85f..291fe0254a 100644 --- a/msm/sde/sde_encoder_phys.h +++ b/msm/sde/sde_encoder_phys.h @@ -183,7 +183,8 @@ struct sde_encoder_phys_ops { int (*get_line_count)(struct sde_encoder_phys *phys); bool (*wait_dma_trigger)(struct sde_encoder_phys *phys); int (*wait_for_active)(struct sde_encoder_phys *phys); - void (*setup_vsync_source)(struct sde_encoder_phys *phys, u32 vsync_source); + void (*setup_vsync_source)(struct sde_encoder_phys *phys, u32 vsync_source, + struct msm_display_info *disp_info); u32 (*get_underrun_line_count)(struct sde_encoder_phys *phys); }; diff --git a/msm/sde/sde_encoder_phys_cmd.c b/msm/sde/sde_encoder_phys_cmd.c index 442373b5e0..ffd0954b0e 100644 --- a/msm/sde/sde_encoder_phys_cmd.c +++ b/msm/sde/sde_encoder_phys_cmd.c @@ -1839,8 +1839,8 @@ static void sde_encoder_phys_cmd_trigger_start( cmd_enc->wr_ptr_wait_success = false; } -static void sde_encoder_phys_cmd_setup_vsync_source( - struct sde_encoder_phys *phys_enc, u32 vsync_source) +static void sde_encoder_phys_cmd_setup_vsync_source(struct sde_encoder_phys *phys_enc, + u32 vsync_source, struct msm_display_info *disp_info) { struct sde_encoder_virt *sde_enc; @@ -1851,7 +1851,7 @@ static void sde_encoder_phys_cmd_setup_vsync_source( if (!sde_enc) return; - if (sde_enc->disp_info.is_te_using_watchdog_timer && + if (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,