diff --git a/msm/sde/sde_encoder.c b/msm/sde/sde_encoder.c index 7e181346fc6b..521c4356a2f3 100644 --- a/msm/sde/sde_encoder.c +++ b/msm/sde/sde_encoder.c @@ -3208,6 +3208,7 @@ static void sde_encoder_virt_enable(struct drm_encoder *drm_enc) /* register input handler if not already registered */ if (sde_enc->input_handler && !msm_is_mode_seamless_dms(cur_mode) && + sde_encoder_check_curr_mode(drm_enc, MSM_DISPLAY_CMD_MODE) && !msm_is_mode_seamless_dyn_clk(cur_mode)) { ret = _sde_encoder_input_handler_register( sde_enc->input_handler); @@ -5566,7 +5567,7 @@ struct drm_encoder *sde_encoder_init_with_ops( sde_enc->rsc_client = NULL; } - if (disp_info->curr_panel_mode == MSM_DISPLAY_CMD_MODE) { + if (disp_info->capabilities & MSM_DISPLAY_CAP_CMD_MODE) { ret = _sde_encoder_input_handler(sde_enc); if (ret) SDE_ERROR(