All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/amd/display: Drop atomic_obj_lock for private obj
@ 2019-03-05 14:14 Nicholas Kazlauskas
       [not found] ` <20190305141417.17020-1-nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 2+ messages in thread
From: Nicholas Kazlauskas @ 2019-03-05 14:14 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: Leo Li, Harry Wentland, Nicholas Kazlauskas

[Why]
New DRM versions manage locking for private objects for us, so this
is no longer needed.

This also prevents a WARN_ON from occurring when the private object is
duplicated during the forced atomic commit that occurs from the HPD
handler.

The HPD handler calls drm_modeset_lock_all before the forced commit
and if the private object is duplicated then the
DEBUG_LOCKS_WARN_ON(ww_ctx->done_acquire) warning will be triggered
since we're trying to lock something when everything should have
already been locked.

[How]
Drop the lock and let DRM manage this.

Cc: Leo Li <sunpeng.li@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 7 -------
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 2 --
 2 files changed, 9 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index bdbc8006d9ea..e6d817b467e7 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -1569,15 +1569,10 @@ static int dm_atomic_get_state(struct drm_atomic_state *state,
 	struct amdgpu_device *adev = dev->dev_private;
 	struct amdgpu_display_manager *dm = &adev->dm;
 	struct drm_private_state *priv_state;
-	int ret;
 
 	if (*dm_state)
 		return 0;
 
-	ret = drm_modeset_lock(&dm->atomic_obj_lock, state->acquire_ctx);
-	if (ret)
-		return ret;
-
 	priv_state = drm_atomic_get_private_obj_state(state, &dm->atomic_obj);
 	if (IS_ERR(priv_state))
 		return PTR_ERR(priv_state);
@@ -1684,8 +1679,6 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev)
 
 	adev->ddev->mode_config.fb_base = adev->gmc.aper_base;
 
-	drm_modeset_lock_init(&adev->dm.atomic_obj_lock);
-
 	state = kzalloc(sizeof(*state), GFP_KERNEL);
 	if (!state)
 		return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
index 74e3a52f4f71..12e3b697ccef 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
@@ -132,8 +132,6 @@ struct amdgpu_display_manager {
 	 */
 	struct drm_private_obj atomic_obj;
 
-	struct drm_modeset_lock atomic_obj_lock;
-
 	/**
 	 * @dc_lock:
 	 *
-- 
2.17.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] drm/amd/display: Drop atomic_obj_lock for private obj
       [not found] ` <20190305141417.17020-1-nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org>
@ 2019-03-05 16:41   ` Li, Sun peng (Leo)
  0 siblings, 0 replies; 2+ messages in thread
From: Li, Sun peng (Leo) @ 2019-03-05 16:41 UTC (permalink / raw)
  To: Kazlauskas, Nicholas, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: Wentland, Harry



On 2019-03-05 9:14 a.m., Nicholas Kazlauskas wrote:
> [Why]
> New DRM versions manage locking for private objects for us, so this
> is no longer needed.
> 
> This also prevents a WARN_ON from occurring when the private object is
> duplicated during the forced atomic commit that occurs from the HPD
> handler.
> 
> The HPD handler calls drm_modeset_lock_all before the forced commit
> and if the private object is duplicated then the
> DEBUG_LOCKS_WARN_ON(ww_ctx->done_acquire) warning will be triggered
> since we're trying to lock something when everything should have
> already been locked.
> 
> [How]
> Drop the lock and let DRM manage this.
> 
> Cc: Leo Li <sunpeng.li@amd.com>
> Cc: Harry Wentland <harry.wentland@amd.com>

Reviewed-by: Leo Li <sunpeng.li@amd.com>

Thanks,
Leo

> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
> ---
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 7 -------
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 2 --
>   2 files changed, 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index bdbc8006d9ea..e6d817b467e7 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -1569,15 +1569,10 @@ static int dm_atomic_get_state(struct drm_atomic_state *state,
>   	struct amdgpu_device *adev = dev->dev_private;
>   	struct amdgpu_display_manager *dm = &adev->dm;
>   	struct drm_private_state *priv_state;
> -	int ret;
>   
>   	if (*dm_state)
>   		return 0;
>   
> -	ret = drm_modeset_lock(&dm->atomic_obj_lock, state->acquire_ctx);
> -	if (ret)
> -		return ret;
> -
>   	priv_state = drm_atomic_get_private_obj_state(state, &dm->atomic_obj);
>   	if (IS_ERR(priv_state))
>   		return PTR_ERR(priv_state);
> @@ -1684,8 +1679,6 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev)
>   
>   	adev->ddev->mode_config.fb_base = adev->gmc.aper_base;
>   
> -	drm_modeset_lock_init(&adev->dm.atomic_obj_lock);
> -
>   	state = kzalloc(sizeof(*state), GFP_KERNEL);
>   	if (!state)
>   		return -ENOMEM;
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> index 74e3a52f4f71..12e3b697ccef 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> @@ -132,8 +132,6 @@ struct amdgpu_display_manager {
>   	 */
>   	struct drm_private_obj atomic_obj;
>   
> -	struct drm_modeset_lock atomic_obj_lock;
> -
>   	/**
>   	 * @dc_lock:
>   	 *
> 
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-03-05 16:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-05 14:14 [PATCH] drm/amd/display: Drop atomic_obj_lock for private obj Nicholas Kazlauskas
     [not found] ` <20190305141417.17020-1-nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org>
2019-03-05 16:41   ` Li, Sun peng (Leo)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.