Loading drivers/gpu/drm/msm/sde/sde_encoder_phys_cmd.c +7 −0 Original line number Diff line number Diff line Loading @@ -177,6 +177,13 @@ static void sde_encoder_phys_cmd_pp_tx_done_irq(void *arg, int irq_idx) return; SDE_ATRACE_BEGIN("pp_done_irq"); /* handle rare cases where the ctl_start_irq is not received */ if (sde_encoder_phys_cmd_is_master(phys_enc) && atomic_add_unless(&phys_enc->pending_retire_fence_cnt, -1, 0)) phys_enc->parent_ops.handle_frame_done(phys_enc->parent, phys_enc, SDE_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE); /* notify all synchronous clients first, then asynchronous clients */ if (phys_enc->parent_ops.handle_frame_done) phys_enc->parent_ops.handle_frame_done(phys_enc->parent, Loading Loading
drivers/gpu/drm/msm/sde/sde_encoder_phys_cmd.c +7 −0 Original line number Diff line number Diff line Loading @@ -177,6 +177,13 @@ static void sde_encoder_phys_cmd_pp_tx_done_irq(void *arg, int irq_idx) return; SDE_ATRACE_BEGIN("pp_done_irq"); /* handle rare cases where the ctl_start_irq is not received */ if (sde_encoder_phys_cmd_is_master(phys_enc) && atomic_add_unless(&phys_enc->pending_retire_fence_cnt, -1, 0)) phys_enc->parent_ops.handle_frame_done(phys_enc->parent, phys_enc, SDE_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE); /* notify all synchronous clients first, then asynchronous clients */ if (phys_enc->parent_ops.handle_frame_done) phys_enc->parent_ops.handle_frame_done(phys_enc->parent, Loading