Loading msm/sde/sde_encoder_phys_vid.c +10 −1 Original line number Diff line number Diff line Loading @@ -877,12 +877,15 @@ static int _sde_encoder_phys_vid_wait_for_vblank( u32 event = SDE_ENCODER_FRAME_EVENT_ERROR | SDE_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE | SDE_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE; struct drm_connector *conn; if (!phys_enc) { pr_err("invalid encoder\n"); return -EINVAL; } conn = phys_enc->connector; wait_info.wq = &phys_enc->pending_kickoff_wq; wait_info.atomic_cnt = &phys_enc->pending_kickoff_cnt; wait_info.timeout_ms = KICKOFF_TIMEOUT_MS; Loading @@ -893,10 +896,16 @@ static int _sde_encoder_phys_vid_wait_for_vblank( if (notify && (ret == -ETIMEDOUT) && atomic_add_unless(&phys_enc->pending_retire_fence_cnt, -1, 0) && phys_enc->parent_ops.handle_frame_done) phys_enc->parent_ops.handle_frame_done) { phys_enc->parent_ops.handle_frame_done( phys_enc->parent, phys_enc, event); if (sde_encoder_recovery_events_enabled(phys_enc->parent)) sde_connector_event_notify(conn, DRM_EVENT_SDE_HW_RECOVERY, sizeof(uint8_t), SDE_RECOVERY_HARD_RESET); } SDE_EVT32(DRMID(phys_enc->parent), event, notify, ret, ret ? SDE_EVTLOG_FATAL : 0); return ret; Loading Loading
msm/sde/sde_encoder_phys_vid.c +10 −1 Original line number Diff line number Diff line Loading @@ -877,12 +877,15 @@ static int _sde_encoder_phys_vid_wait_for_vblank( u32 event = SDE_ENCODER_FRAME_EVENT_ERROR | SDE_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE | SDE_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE; struct drm_connector *conn; if (!phys_enc) { pr_err("invalid encoder\n"); return -EINVAL; } conn = phys_enc->connector; wait_info.wq = &phys_enc->pending_kickoff_wq; wait_info.atomic_cnt = &phys_enc->pending_kickoff_cnt; wait_info.timeout_ms = KICKOFF_TIMEOUT_MS; Loading @@ -893,10 +896,16 @@ static int _sde_encoder_phys_vid_wait_for_vblank( if (notify && (ret == -ETIMEDOUT) && atomic_add_unless(&phys_enc->pending_retire_fence_cnt, -1, 0) && phys_enc->parent_ops.handle_frame_done) phys_enc->parent_ops.handle_frame_done) { phys_enc->parent_ops.handle_frame_done( phys_enc->parent, phys_enc, event); if (sde_encoder_recovery_events_enabled(phys_enc->parent)) sde_connector_event_notify(conn, DRM_EVENT_SDE_HW_RECOVERY, sizeof(uint8_t), SDE_RECOVERY_HARD_RESET); } SDE_EVT32(DRMID(phys_enc->parent), event, notify, ret, ret ? SDE_EVTLOG_FATAL : 0); return ret; Loading