diff --git a/msm/sde/sde_encoder_phys_cmd.c b/msm/sde/sde_encoder_phys_cmd.c index 34f75020b5..69f08ec35b 100644 --- a/msm/sde/sde_encoder_phys_cmd.c +++ b/msm/sde/sde_encoder_phys_cmd.c @@ -740,6 +740,10 @@ static int _sde_encoder_phys_cmd_wait_for_idle( return -EINVAL; } + if (sde_encoder_check_ctl_done_support(phys_enc->parent) + && !sde_encoder_phys_cmd_is_master(phys_enc)) + return 0; + if (atomic_read(&phys_enc->pending_kickoff_cnt) > 1) wait_info.count_check = 1; @@ -1538,6 +1542,10 @@ static int sde_encoder_phys_cmd_wait_for_tx_complete( cmd_enc = to_sde_encoder_phys_cmd(phys_enc); + if (sde_encoder_check_ctl_done_support(phys_enc->parent) + && !sde_encoder_phys_cmd_is_master(phys_enc)) + return 0; + if (!atomic_read(&phys_enc->pending_kickoff_cnt)) { SDE_EVT32(DRMID(phys_enc->parent), phys_enc->intf_idx - INTF_0, @@ -1625,6 +1633,10 @@ static int sde_encoder_phys_cmd_wait_for_commit_done( cmd_enc = to_sde_encoder_phys_cmd(phys_enc); + if (sde_encoder_check_ctl_done_support(phys_enc->parent) + && !sde_encoder_phys_cmd_is_master(phys_enc)) + return 0; + /* only required for master controller */ if (sde_encoder_phys_cmd_is_master(phys_enc)) { rc = _sde_encoder_phys_cmd_wait_for_wr_ptr(phys_enc);