Loading msm/sde/sde_crtc.c +2 −1 Original line number Diff line number Diff line Loading @@ -2338,7 +2338,8 @@ static void sde_crtc_frame_event_work(struct kthread_work *work) SDE_EVT32_VERBOSE(DRMID(crtc), fevent->event, SDE_EVTLOG_FUNC_ENTRY); in_clone_mode = sde_encoder_in_clone_mode(fevent->connector->encoder); in_clone_mode = (fevent->event & SDE_ENCODER_FRAME_EVENT_CWB_DONE) ? true : false; if (!in_clone_mode && (fevent->event & (SDE_ENCODER_FRAME_EVENT_ERROR | SDE_ENCODER_FRAME_EVENT_PANEL_DEAD Loading msm/sde/sde_encoder.h +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #define SDE_ENCODER_FRAME_EVENT_PANEL_DEAD BIT(2) #define SDE_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE BIT(3) #define SDE_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE BIT(4) #define SDE_ENCODER_FRAME_EVENT_CWB_DONE BIT(5) #define IDLE_POWERCOLLAPSE_DURATION (66 - 16/2) #define IDLE_POWERCOLLAPSE_IN_EARLY_WAKEUP (200 - 16/2) Loading msm/sde/sde_encoder_phys_wb.c +6 −2 Original line number Diff line number Diff line Loading @@ -1043,7 +1043,9 @@ static void _sde_encoder_phys_wb_frame_done_helper(void *arg, bool frame_error) event |= SDE_ENCODER_FRAME_EVENT_DONE | SDE_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE; if (!phys_enc->in_clone_mode) if (phys_enc->in_clone_mode) event |= SDE_ENCODER_FRAME_EVENT_CWB_DONE; else event |= SDE_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE; phys_enc->parent_ops.handle_frame_done(phys_enc->parent, Loading Loading @@ -1198,7 +1200,9 @@ static int sde_encoder_phys_wb_frame_timeout(struct sde_encoder_phys *phys_enc) event = SDE_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE | SDE_ENCODER_FRAME_EVENT_ERROR; if (!phys_enc->in_clone_mode) if (phys_enc->in_clone_mode) event |= SDE_ENCODER_FRAME_EVENT_CWB_DONE; else event |= SDE_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE; phys_enc->parent_ops.handle_frame_done( Loading Loading
msm/sde/sde_crtc.c +2 −1 Original line number Diff line number Diff line Loading @@ -2338,7 +2338,8 @@ static void sde_crtc_frame_event_work(struct kthread_work *work) SDE_EVT32_VERBOSE(DRMID(crtc), fevent->event, SDE_EVTLOG_FUNC_ENTRY); in_clone_mode = sde_encoder_in_clone_mode(fevent->connector->encoder); in_clone_mode = (fevent->event & SDE_ENCODER_FRAME_EVENT_CWB_DONE) ? true : false; if (!in_clone_mode && (fevent->event & (SDE_ENCODER_FRAME_EVENT_ERROR | SDE_ENCODER_FRAME_EVENT_PANEL_DEAD Loading
msm/sde/sde_encoder.h +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #define SDE_ENCODER_FRAME_EVENT_PANEL_DEAD BIT(2) #define SDE_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE BIT(3) #define SDE_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE BIT(4) #define SDE_ENCODER_FRAME_EVENT_CWB_DONE BIT(5) #define IDLE_POWERCOLLAPSE_DURATION (66 - 16/2) #define IDLE_POWERCOLLAPSE_IN_EARLY_WAKEUP (200 - 16/2) Loading
msm/sde/sde_encoder_phys_wb.c +6 −2 Original line number Diff line number Diff line Loading @@ -1043,7 +1043,9 @@ static void _sde_encoder_phys_wb_frame_done_helper(void *arg, bool frame_error) event |= SDE_ENCODER_FRAME_EVENT_DONE | SDE_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE; if (!phys_enc->in_clone_mode) if (phys_enc->in_clone_mode) event |= SDE_ENCODER_FRAME_EVENT_CWB_DONE; else event |= SDE_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE; phys_enc->parent_ops.handle_frame_done(phys_enc->parent, Loading Loading @@ -1198,7 +1200,9 @@ static int sde_encoder_phys_wb_frame_timeout(struct sde_encoder_phys *phys_enc) event = SDE_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE | SDE_ENCODER_FRAME_EVENT_ERROR; if (!phys_enc->in_clone_mode) if (phys_enc->in_clone_mode) event |= SDE_ENCODER_FRAME_EVENT_CWB_DONE; else event |= SDE_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE; phys_enc->parent_ops.handle_frame_done( Loading