Message ID | 20181116184238.170034-25-sean@poorly.run (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/msm: Various dpu locking and legacy cleanups | expand |
On 2018-11-16 10:42, Sean Paul wrote: > From: Sean Paul <seanpaul@chromium.org> > > Each time it's called we're holding the crtc modeset lock, so it's > redundant. > > Changes in v2: > - None > > Signed-off-by: Sean Paul <seanpaul@chromium.org> Reviewed-by: Jeykumar Sankaran <jsanka@codeaurora.org> > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 11 ----------- > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 3 --- > 2 files changed, 14 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > index f15cba2584a0..70b5104d1111 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > @@ -69,7 +69,6 @@ static void dpu_crtc_destroy(struct drm_crtc *crtc) > return; > > drm_crtc_cleanup(crtc); > - mutex_destroy(&dpu_crtc->crtc_lock); > kfree(dpu_crtc); > } > > @@ -806,8 +805,6 @@ static void dpu_crtc_disable(struct drm_crtc *crtc, > old_crtc_state->encoder_mask) > dpu_encoder_assign_crtc(encoder, NULL); > > - mutex_lock(&dpu_crtc->crtc_lock); > - > /* wait for frame_event_done completion */ > if (_dpu_crtc_wait_for_frame_done(crtc)) > DPU_ERROR("crtc%d wait for frame done > failed;frame_pending%d\n", > @@ -836,8 +833,6 @@ static void dpu_crtc_disable(struct drm_crtc *crtc, > cstate->bw_control = false; > cstate->bw_split_vote = false; > > - mutex_unlock(&dpu_crtc->crtc_lock); > - > if (crtc->state->event && !crtc->state->active) { > spin_lock_irqsave(&crtc->dev->event_lock, flags); > drm_crtc_send_vblank_event(crtc, crtc->state->event); > @@ -870,12 +865,9 @@ static void dpu_crtc_enable(struct drm_crtc *crtc, > dpu_encoder_register_frame_event_callback(encoder, > dpu_crtc_frame_event_cb, (void *)crtc); > > - mutex_lock(&dpu_crtc->crtc_lock); > trace_dpu_crtc_enable(DRMID(crtc), true, dpu_crtc); > dpu_crtc->enabled = true; > > - mutex_unlock(&dpu_crtc->crtc_lock); > - > drm_for_each_encoder_mask(encoder, crtc->dev, > crtc->state->encoder_mask) > dpu_encoder_assign_crtc(encoder, crtc); > > @@ -1177,7 +1169,6 @@ static int _dpu_debugfs_status_show(struct > seq_file > *s, void *data) > drm_modeset_lock_all(crtc->dev); > cstate = to_dpu_crtc_state(crtc->state); > > - mutex_lock(&dpu_crtc->crtc_lock); > mode = &crtc->state->adjusted_mode; > out_width = _dpu_crtc_get_mixer_width(cstate, mode); > > @@ -1264,7 +1255,6 @@ static int _dpu_debugfs_status_show(struct > seq_file > *s, void *data) > dpu_crtc->vblank_cb_time = ktime_set(0, 0); > } > > - mutex_unlock(&dpu_crtc->crtc_lock); > drm_modeset_unlock_all(crtc->dev); > > return 0; > @@ -1414,7 +1404,6 @@ struct drm_crtc *dpu_crtc_init(struct drm_device > *dev, struct drm_plane *plane, > crtc = &dpu_crtc->base; > crtc->dev = dev; > > - mutex_init(&dpu_crtc->crtc_lock); > spin_lock_init(&dpu_crtc->spin_lock); > atomic_set(&dpu_crtc->frame_pending, 0); > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h > b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h > index 2b358546af49..34f0c4d4d774 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h > @@ -140,7 +140,6 @@ struct dpu_crtc_frame_event { > * @dirty_list : list of color processing features are dirty > * @ad_dirty: list containing ad properties that are dirty > * @ad_active: list containing ad properties that are active > - * @crtc_lock : crtc lock around create, destroy and access. > * @frame_pending : Whether or not an update is pending > * @frame_events : static allocation of in-flight frame events > * @frame_event_list : available frame event list > @@ -173,8 +172,6 @@ struct dpu_crtc { > struct list_head ad_dirty; > struct list_head ad_active; > > - struct mutex crtc_lock; > - > atomic_t frame_pending; > struct dpu_crtc_frame_event > frame_events[DPU_CRTC_FRAME_EVENT_SIZE]; > struct list_head frame_event_list;
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c index f15cba2584a0..70b5104d1111 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c @@ -69,7 +69,6 @@ static void dpu_crtc_destroy(struct drm_crtc *crtc) return; drm_crtc_cleanup(crtc); - mutex_destroy(&dpu_crtc->crtc_lock); kfree(dpu_crtc); } @@ -806,8 +805,6 @@ static void dpu_crtc_disable(struct drm_crtc *crtc, old_crtc_state->encoder_mask) dpu_encoder_assign_crtc(encoder, NULL); - mutex_lock(&dpu_crtc->crtc_lock); - /* wait for frame_event_done completion */ if (_dpu_crtc_wait_for_frame_done(crtc)) DPU_ERROR("crtc%d wait for frame done failed;frame_pending%d\n", @@ -836,8 +833,6 @@ static void dpu_crtc_disable(struct drm_crtc *crtc, cstate->bw_control = false; cstate->bw_split_vote = false; - mutex_unlock(&dpu_crtc->crtc_lock); - if (crtc->state->event && !crtc->state->active) { spin_lock_irqsave(&crtc->dev->event_lock, flags); drm_crtc_send_vblank_event(crtc, crtc->state->event); @@ -870,12 +865,9 @@ static void dpu_crtc_enable(struct drm_crtc *crtc, dpu_encoder_register_frame_event_callback(encoder, dpu_crtc_frame_event_cb, (void *)crtc); - mutex_lock(&dpu_crtc->crtc_lock); trace_dpu_crtc_enable(DRMID(crtc), true, dpu_crtc); dpu_crtc->enabled = true; - mutex_unlock(&dpu_crtc->crtc_lock); - drm_for_each_encoder_mask(encoder, crtc->dev, crtc->state->encoder_mask) dpu_encoder_assign_crtc(encoder, crtc); @@ -1177,7 +1169,6 @@ static int _dpu_debugfs_status_show(struct seq_file *s, void *data) drm_modeset_lock_all(crtc->dev); cstate = to_dpu_crtc_state(crtc->state); - mutex_lock(&dpu_crtc->crtc_lock); mode = &crtc->state->adjusted_mode; out_width = _dpu_crtc_get_mixer_width(cstate, mode); @@ -1264,7 +1255,6 @@ static int _dpu_debugfs_status_show(struct seq_file *s, void *data) dpu_crtc->vblank_cb_time = ktime_set(0, 0); } - mutex_unlock(&dpu_crtc->crtc_lock); drm_modeset_unlock_all(crtc->dev); return 0; @@ -1414,7 +1404,6 @@ struct drm_crtc *dpu_crtc_init(struct drm_device *dev, struct drm_plane *plane, crtc = &dpu_crtc->base; crtc->dev = dev; - mutex_init(&dpu_crtc->crtc_lock); spin_lock_init(&dpu_crtc->spin_lock); atomic_set(&dpu_crtc->frame_pending, 0); diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h index 2b358546af49..34f0c4d4d774 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h @@ -140,7 +140,6 @@ struct dpu_crtc_frame_event { * @dirty_list : list of color processing features are dirty * @ad_dirty: list containing ad properties that are dirty * @ad_active: list containing ad properties that are active - * @crtc_lock : crtc lock around create, destroy and access. * @frame_pending : Whether or not an update is pending * @frame_events : static allocation of in-flight frame events * @frame_event_list : available frame event list @@ -173,8 +172,6 @@ struct dpu_crtc { struct list_head ad_dirty; struct list_head ad_active; - struct mutex crtc_lock; - atomic_t frame_pending; struct dpu_crtc_frame_event frame_events[DPU_CRTC_FRAME_EVENT_SIZE]; struct list_head frame_event_list;