Re: [DPU PATCH 08/11] drm/msm: Remove hand-rolled out fences
On 2018-03-12 13:30, Sean Paul wrote: On Fri, Mar 02, 2018 at 04:44:55PM -0800, Jeykumar Sankaran wrote: On 2018-02-28 11:19, Sean Paul wrote: > Remove release/output/retire fences from the dpu driver. These are > already available via drm core's OUT_FENCE property. > > Change-Id: Id4238d0b5457f2c8ee2e87bb7814e1850a573623 > Signed-off-by: Sean PaulReviewed-by: Jeykumar Sankaran > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c | 66 +-- > drivers/gpu/drm/msm/disp/dpu1/dpu_connector.h | 23 --- > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 178 +++--- > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 28 --- > drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 3 - > drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 4 +- > .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h | 8 - > .../drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 73 +-- > .../drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 19 -- > .../drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 12 +- > drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 30 --- > drivers/gpu/drm/msm/msm_drv.h | 3 - > 12 files changed, 36 insertions(+), 411 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c > b/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c > index 57b8627ef418..cc5bfa862cb7 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c > @@ -521,7 +521,6 @@ static void dpu_connector_destroy(struct > drm_connector > *connector) >backlight_device_unregister(c_conn->bl_device); >drm_connector_unregister(connector); >mutex_destroy(_conn->lock); > - dpu_fence_deinit(_conn->retire_fence); >drm_connector_cleanup(connector); >kfree(c_conn); > } > @@ -906,12 +905,9 @@ static int dpu_connector_atomic_get_property(struct > drm_connector *connector, >c_state = to_dpu_connector_state(state); > >idx = msm_property_index(_conn->property_info, property); > - if (idx == CONNECTOR_PROP_RETIRE_FENCE) > - rc = dpu_fence_create(_conn->retire_fence, val, 0); > - else > - /* get cached property value */ > - rc = msm_property_atomic_get(_conn->property_info, > - _state->property_state, property, val); > + /* get cached property value */ > + rc = msm_property_atomic_get(_conn->property_info, > + _state->property_state, property, val); > >/* allow for custom override */ >if (c_conn->ops.get_property) > @@ -923,39 +919,6 @@ static int dpu_connector_atomic_get_property(struct > drm_connector *connector, >return rc; > } > > -void dpu_connector_prepare_fence(struct drm_connector *connector) > -{ > - if (!connector) { > - DPU_ERROR("invalid connector\n"); > - return; > - } > - > - dpu_fence_prepare(_dpu_connector(connector)->retire_fence); > -} > - > -void dpu_connector_complete_commit(struct drm_connector *connector, > - ktime_t ts) > -{ > - if (!connector) { > - DPU_ERROR("invalid connector\n"); > - return; > - } > - > - /* signal connector's retire fence */ > - dpu_fence_signal(_dpu_connector(connector)->retire_fence, ts, > false); > -} > - > -void dpu_connector_commit_reset(struct drm_connector *connector, > ktime_t > ts) > -{ > - if (!connector) { > - DPU_ERROR("invalid connector\n"); > - return; > - } > - > - /* signal connector's retire fence */ > - dpu_fence_signal(_dpu_connector(connector)->retire_fence, ts, > true); > -} > - > static enum drm_connector_status > dpu_connector_detect(struct drm_connector *connector, bool force) > { > @@ -1214,26 +1177,19 @@ struct drm_connector *dpu_connector_init(struct > drm_device *dev, >"conn%u", >c_conn->base.base.id); > > - rc = dpu_fence_init(_conn->retire_fence, c_conn->name, > - c_conn->base.base.id); > - if (rc) { > - DPU_ERROR("failed to init fence, %d\n", rc); > - goto error_cleanup_conn; > - } > - >mutex_init(_conn->lock); > >rc = drm_mode_connector_attach_encoder(_conn->base, encoder); >if (rc) { >DPU_ERROR("failed to attach encoder to connector, %d\n", > rc); > - goto error_cleanup_fence; > + goto error_cleanup_conn; >} > > #ifdef CONFIG_DRM_MSM_DSI_STAGING >rc = dpu_backlight_setup(c_conn, dev); >if (rc) { >DPU_ERROR("failed to setup backlight, rc=%d\n", rc); > - goto error_cleanup_fence; > + goto error_cleanup_conn; >} > #endif > > @@ -1248,7 +1204,7 @@ struct drm_connector *dpu_connector_init(struct > drm_device *dev, >if (!info) { >DPU_ERROR("failed to allocate info buffer\n"); >rc = -ENOMEM; > - goto error_cleanup_fence; > + goto error_cleanup_conn; >} > >
Re: [DPU PATCH 08/11] drm/msm: Remove hand-rolled out fences
On Fri, Mar 02, 2018 at 04:44:55PM -0800, Jeykumar Sankaran wrote: > On 2018-02-28 11:19, Sean Paul wrote: > > Remove release/output/retire fences from the dpu driver. These are > > already available via drm core's OUT_FENCE property. > > > > Change-Id: Id4238d0b5457f2c8ee2e87bb7814e1850a573623 > > Signed-off-by: Sean Paul> > --- > > drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c | 66 +-- > > drivers/gpu/drm/msm/disp/dpu1/dpu_connector.h | 23 --- > > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 178 +++--- > > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 28 --- > > drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 3 - > > drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 4 +- > > .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h | 8 - > > .../drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 73 +-- > > .../drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 19 -- > > .../drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 12 +- > > drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 30 --- > > drivers/gpu/drm/msm/msm_drv.h | 3 - > > 12 files changed, 36 insertions(+), 411 deletions(-) > > > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c > > b/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c > > index 57b8627ef418..cc5bfa862cb7 100644 > > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c > > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c > > @@ -521,7 +521,6 @@ static void dpu_connector_destroy(struct > > drm_connector > > *connector) > > backlight_device_unregister(c_conn->bl_device); > > drm_connector_unregister(connector); > > mutex_destroy(_conn->lock); > > - dpu_fence_deinit(_conn->retire_fence); > > drm_connector_cleanup(connector); > > kfree(c_conn); > > } > > @@ -906,12 +905,9 @@ static int dpu_connector_atomic_get_property(struct > > drm_connector *connector, > > c_state = to_dpu_connector_state(state); > > > > idx = msm_property_index(_conn->property_info, property); > > - if (idx == CONNECTOR_PROP_RETIRE_FENCE) > > - rc = dpu_fence_create(_conn->retire_fence, val, 0); > > - else > > - /* get cached property value */ > > - rc = msm_property_atomic_get(_conn->property_info, > > - _state->property_state, property, val); > > + /* get cached property value */ > > + rc = msm_property_atomic_get(_conn->property_info, > > + _state->property_state, property, val); > > > > /* allow for custom override */ > > if (c_conn->ops.get_property) > > @@ -923,39 +919,6 @@ static int dpu_connector_atomic_get_property(struct > > drm_connector *connector, > > return rc; > > } > > > > -void dpu_connector_prepare_fence(struct drm_connector *connector) > > -{ > > - if (!connector) { > > - DPU_ERROR("invalid connector\n"); > > - return; > > - } > > - > > - dpu_fence_prepare(_dpu_connector(connector)->retire_fence); > > -} > > - > > -void dpu_connector_complete_commit(struct drm_connector *connector, > > - ktime_t ts) > > -{ > > - if (!connector) { > > - DPU_ERROR("invalid connector\n"); > > - return; > > - } > > - > > - /* signal connector's retire fence */ > > - dpu_fence_signal(_dpu_connector(connector)->retire_fence, ts, > > false); > > -} > > - > > -void dpu_connector_commit_reset(struct drm_connector *connector, > > ktime_t > > ts) > > -{ > > - if (!connector) { > > - DPU_ERROR("invalid connector\n"); > > - return; > > - } > > - > > - /* signal connector's retire fence */ > > - dpu_fence_signal(_dpu_connector(connector)->retire_fence, ts, > > true); > > -} > > - > > static enum drm_connector_status > > dpu_connector_detect(struct drm_connector *connector, bool force) > > { > > @@ -1214,26 +1177,19 @@ struct drm_connector *dpu_connector_init(struct > > drm_device *dev, > > "conn%u", > > c_conn->base.base.id); > > > > - rc = dpu_fence_init(_conn->retire_fence, c_conn->name, > > - c_conn->base.base.id); > > - if (rc) { > > - DPU_ERROR("failed to init fence, %d\n", rc); > > - goto error_cleanup_conn; > > - } > > - > > mutex_init(_conn->lock); > > > > rc = drm_mode_connector_attach_encoder(_conn->base, encoder); > > if (rc) { > > DPU_ERROR("failed to attach encoder to connector, %d\n", > > rc); > > - goto error_cleanup_fence; > > + goto error_cleanup_conn; > > } > > > > #ifdef CONFIG_DRM_MSM_DSI_STAGING > > rc = dpu_backlight_setup(c_conn, dev); > > if (rc) { > > DPU_ERROR("failed to setup backlight, rc=%d\n", rc); > > - goto error_cleanup_fence; > > + goto error_cleanup_conn; > > } > > #endif > > > > @@ -1248,7 +1204,7 @@ struct drm_connector *dpu_connector_init(struct > > drm_device *dev, > > if (!info) { > >
Re: [DPU PATCH 08/11] drm/msm: Remove hand-rolled out fences
On 2018-02-28 11:19, Sean Paul wrote: Remove release/output/retire fences from the dpu driver. These are already available via drm core's OUT_FENCE property. Change-Id: Id4238d0b5457f2c8ee2e87bb7814e1850a573623 Signed-off-by: Sean Paul--- drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c | 66 +-- drivers/gpu/drm/msm/disp/dpu1/dpu_connector.h | 23 --- drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 178 +++--- drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 28 --- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 3 - drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 4 +- .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h | 8 - .../drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 73 +-- .../drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 19 -- .../drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 12 +- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 30 --- drivers/gpu/drm/msm/msm_drv.h | 3 - 12 files changed, 36 insertions(+), 411 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c index 57b8627ef418..cc5bfa862cb7 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c @@ -521,7 +521,6 @@ static void dpu_connector_destroy(struct drm_connector *connector) backlight_device_unregister(c_conn->bl_device); drm_connector_unregister(connector); mutex_destroy(_conn->lock); - dpu_fence_deinit(_conn->retire_fence); drm_connector_cleanup(connector); kfree(c_conn); } @@ -906,12 +905,9 @@ static int dpu_connector_atomic_get_property(struct drm_connector *connector, c_state = to_dpu_connector_state(state); idx = msm_property_index(_conn->property_info, property); - if (idx == CONNECTOR_PROP_RETIRE_FENCE) - rc = dpu_fence_create(_conn->retire_fence, val, 0); - else - /* get cached property value */ - rc = msm_property_atomic_get(_conn->property_info, - _state->property_state, property, val); + /* get cached property value */ + rc = msm_property_atomic_get(_conn->property_info, + _state->property_state, property, val); /* allow for custom override */ if (c_conn->ops.get_property) @@ -923,39 +919,6 @@ static int dpu_connector_atomic_get_property(struct drm_connector *connector, return rc; } -void dpu_connector_prepare_fence(struct drm_connector *connector) -{ - if (!connector) { - DPU_ERROR("invalid connector\n"); - return; - } - - dpu_fence_prepare(_dpu_connector(connector)->retire_fence); -} - -void dpu_connector_complete_commit(struct drm_connector *connector, - ktime_t ts) -{ - if (!connector) { - DPU_ERROR("invalid connector\n"); - return; - } - - /* signal connector's retire fence */ - dpu_fence_signal(_dpu_connector(connector)->retire_fence, ts, false); -} - -void dpu_connector_commit_reset(struct drm_connector *connector, ktime_t ts) -{ - if (!connector) { - DPU_ERROR("invalid connector\n"); - return; - } - - /* signal connector's retire fence */ - dpu_fence_signal(_dpu_connector(connector)->retire_fence, ts, true); -} - static enum drm_connector_status dpu_connector_detect(struct drm_connector *connector, bool force) { @@ -1214,26 +1177,19 @@ struct drm_connector *dpu_connector_init(struct drm_device *dev, "conn%u", c_conn->base.base.id); - rc = dpu_fence_init(_conn->retire_fence, c_conn->name, - c_conn->base.base.id); - if (rc) { - DPU_ERROR("failed to init fence, %d\n", rc); - goto error_cleanup_conn; - } - mutex_init(_conn->lock); rc = drm_mode_connector_attach_encoder(_conn->base, encoder); if (rc) { DPU_ERROR("failed to attach encoder to connector, %d\n", rc); - goto error_cleanup_fence; + goto error_cleanup_conn; } #ifdef CONFIG_DRM_MSM_DSI_STAGING rc = dpu_backlight_setup(c_conn, dev); if (rc) { DPU_ERROR("failed to setup backlight, rc=%d\n", rc); - goto error_cleanup_fence; + goto error_cleanup_conn; } #endif @@ -1248,7 +1204,7 @@ struct drm_connector *dpu_connector_init(struct drm_device *dev, if (!info) { DPU_ERROR("failed to allocate info buffer\n"); rc = -ENOMEM; - goto error_cleanup_fence; + goto error_cleanup_conn; } dpu_kms_info_reset(info); @@ -1256,7 +1212,7 @@ struct drm_connector *dpu_connector_init(struct drm_device *dev,
[DPU PATCH 08/11] drm/msm: Remove hand-rolled out fences
Remove release/output/retire fences from the dpu driver. These are already available via drm core's OUT_FENCE property. Change-Id: Id4238d0b5457f2c8ee2e87bb7814e1850a573623 Signed-off-by: Sean Paul--- drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c | 66 +-- drivers/gpu/drm/msm/disp/dpu1/dpu_connector.h | 23 --- drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 178 +++--- drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 28 --- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 3 - drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 4 +- .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h | 8 - .../drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 73 +-- .../drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 19 -- .../drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 12 +- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 30 --- drivers/gpu/drm/msm/msm_drv.h | 3 - 12 files changed, 36 insertions(+), 411 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c index 57b8627ef418..cc5bfa862cb7 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c @@ -521,7 +521,6 @@ static void dpu_connector_destroy(struct drm_connector *connector) backlight_device_unregister(c_conn->bl_device); drm_connector_unregister(connector); mutex_destroy(_conn->lock); - dpu_fence_deinit(_conn->retire_fence); drm_connector_cleanup(connector); kfree(c_conn); } @@ -906,12 +905,9 @@ static int dpu_connector_atomic_get_property(struct drm_connector *connector, c_state = to_dpu_connector_state(state); idx = msm_property_index(_conn->property_info, property); - if (idx == CONNECTOR_PROP_RETIRE_FENCE) - rc = dpu_fence_create(_conn->retire_fence, val, 0); - else - /* get cached property value */ - rc = msm_property_atomic_get(_conn->property_info, - _state->property_state, property, val); + /* get cached property value */ + rc = msm_property_atomic_get(_conn->property_info, + _state->property_state, property, val); /* allow for custom override */ if (c_conn->ops.get_property) @@ -923,39 +919,6 @@ static int dpu_connector_atomic_get_property(struct drm_connector *connector, return rc; } -void dpu_connector_prepare_fence(struct drm_connector *connector) -{ - if (!connector) { - DPU_ERROR("invalid connector\n"); - return; - } - - dpu_fence_prepare(_dpu_connector(connector)->retire_fence); -} - -void dpu_connector_complete_commit(struct drm_connector *connector, - ktime_t ts) -{ - if (!connector) { - DPU_ERROR("invalid connector\n"); - return; - } - - /* signal connector's retire fence */ - dpu_fence_signal(_dpu_connector(connector)->retire_fence, ts, false); -} - -void dpu_connector_commit_reset(struct drm_connector *connector, ktime_t ts) -{ - if (!connector) { - DPU_ERROR("invalid connector\n"); - return; - } - - /* signal connector's retire fence */ - dpu_fence_signal(_dpu_connector(connector)->retire_fence, ts, true); -} - static enum drm_connector_status dpu_connector_detect(struct drm_connector *connector, bool force) { @@ -1214,26 +1177,19 @@ struct drm_connector *dpu_connector_init(struct drm_device *dev, "conn%u", c_conn->base.base.id); - rc = dpu_fence_init(_conn->retire_fence, c_conn->name, - c_conn->base.base.id); - if (rc) { - DPU_ERROR("failed to init fence, %d\n", rc); - goto error_cleanup_conn; - } - mutex_init(_conn->lock); rc = drm_mode_connector_attach_encoder(_conn->base, encoder); if (rc) { DPU_ERROR("failed to attach encoder to connector, %d\n", rc); - goto error_cleanup_fence; + goto error_cleanup_conn; } #ifdef CONFIG_DRM_MSM_DSI_STAGING rc = dpu_backlight_setup(c_conn, dev); if (rc) { DPU_ERROR("failed to setup backlight, rc=%d\n", rc); - goto error_cleanup_fence; + goto error_cleanup_conn; } #endif @@ -1248,7 +1204,7 @@ struct drm_connector *dpu_connector_init(struct drm_device *dev, if (!info) { DPU_ERROR("failed to allocate info buffer\n"); rc = -ENOMEM; - goto error_cleanup_fence; + goto error_cleanup_conn; } dpu_kms_info_reset(info); @@ -1256,7 +1212,7 @@ struct drm_connector *dpu_connector_init(struct drm_device *dev, if (rc) {