Re: [DPU PATCH 08/11] drm/msm: Remove hand-rolled out fences

2018-03-13 Thread Jeykumar Sankaran

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 Paul 


Reviewed-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

2018-03-12 Thread Sean Paul
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

2018-03-02 Thread Jeykumar Sankaran

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

2018-02-28 Thread Sean Paul
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) {