Loading drivers/gpu/drm/msm/sde/sde_encoder_phys_cmd.c +7 −4 Original line number Diff line number Diff line Loading @@ -520,12 +520,14 @@ static int _sde_encoder_phys_cmd_handle_ppdone_timeout( | SDE_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE; struct drm_connector *conn; int event; u32 pending_kickoff_cnt; if (!phys_enc || !phys_enc->hw_pp || !phys_enc->hw_ctl) return -EINVAL; conn = phys_enc->connector; cmd_enc->pp_timeout_report_cnt++; pending_kickoff_cnt = atomic_read(&phys_enc->pending_kickoff_cnt); if (sde_encoder_phys_cmd_is_master(phys_enc)) { /* trigger the retire fence if it was missed */ Loading @@ -540,9 +542,12 @@ static int _sde_encoder_phys_cmd_handle_ppdone_timeout( SDE_EVT32(DRMID(phys_enc->parent), phys_enc->hw_pp->idx - PINGPONG_0, cmd_enc->pp_timeout_report_cnt, atomic_read(&phys_enc->pending_kickoff_cnt), pending_kickoff_cnt, frame_event); /* decrement the kickoff_cnt before checking for ESD status */ atomic_add_unless(&phys_enc->pending_kickoff_cnt, -1, 0); /* check if panel is still sending TE signal or not */ if (sde_connector_esd_status(phys_enc->connector)) goto exit; Loading @@ -553,7 +558,7 @@ static int _sde_encoder_phys_cmd_handle_ppdone_timeout( "pp:%d kickoff timed out ctl %d koff_cnt %d\n", phys_enc->hw_pp->idx - PINGPONG_0, phys_enc->hw_ctl->idx - CTL_0, atomic_read(&phys_enc->pending_kickoff_cnt)); pending_kickoff_cnt); SDE_EVT32(DRMID(phys_enc->parent), SDE_EVTLOG_FATAL); sde_encoder_helper_unregister_irq(phys_enc, INTR_IDX_RDPTR); Loading @@ -578,8 +583,6 @@ static int _sde_encoder_phys_cmd_handle_ppdone_timeout( phys_enc->enable_state = SDE_ENC_ERR_NEEDS_HW_RESET; exit: atomic_add_unless(&phys_enc->pending_kickoff_cnt, -1, 0); if (phys_enc->parent_ops.handle_frame_done) phys_enc->parent_ops.handle_frame_done( phys_enc->parent, phys_enc, frame_event); Loading Loading
drivers/gpu/drm/msm/sde/sde_encoder_phys_cmd.c +7 −4 Original line number Diff line number Diff line Loading @@ -520,12 +520,14 @@ static int _sde_encoder_phys_cmd_handle_ppdone_timeout( | SDE_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE; struct drm_connector *conn; int event; u32 pending_kickoff_cnt; if (!phys_enc || !phys_enc->hw_pp || !phys_enc->hw_ctl) return -EINVAL; conn = phys_enc->connector; cmd_enc->pp_timeout_report_cnt++; pending_kickoff_cnt = atomic_read(&phys_enc->pending_kickoff_cnt); if (sde_encoder_phys_cmd_is_master(phys_enc)) { /* trigger the retire fence if it was missed */ Loading @@ -540,9 +542,12 @@ static int _sde_encoder_phys_cmd_handle_ppdone_timeout( SDE_EVT32(DRMID(phys_enc->parent), phys_enc->hw_pp->idx - PINGPONG_0, cmd_enc->pp_timeout_report_cnt, atomic_read(&phys_enc->pending_kickoff_cnt), pending_kickoff_cnt, frame_event); /* decrement the kickoff_cnt before checking for ESD status */ atomic_add_unless(&phys_enc->pending_kickoff_cnt, -1, 0); /* check if panel is still sending TE signal or not */ if (sde_connector_esd_status(phys_enc->connector)) goto exit; Loading @@ -553,7 +558,7 @@ static int _sde_encoder_phys_cmd_handle_ppdone_timeout( "pp:%d kickoff timed out ctl %d koff_cnt %d\n", phys_enc->hw_pp->idx - PINGPONG_0, phys_enc->hw_ctl->idx - CTL_0, atomic_read(&phys_enc->pending_kickoff_cnt)); pending_kickoff_cnt); SDE_EVT32(DRMID(phys_enc->parent), SDE_EVTLOG_FATAL); sde_encoder_helper_unregister_irq(phys_enc, INTR_IDX_RDPTR); Loading @@ -578,8 +583,6 @@ static int _sde_encoder_phys_cmd_handle_ppdone_timeout( phys_enc->enable_state = SDE_ENC_ERR_NEEDS_HW_RESET; exit: atomic_add_unless(&phys_enc->pending_kickoff_cnt, -1, 0); if (phys_enc->parent_ops.handle_frame_done) phys_enc->parent_ops.handle_frame_done( phys_enc->parent, phys_enc, frame_event); Loading