Re: [PATCH] drm/amd/display: Fail atomic_check early on normalize_zpos error

2023-02-13 Thread Hamza Mahfooz

On 2/13/23 10:51, sunpeng...@amd.com wrote:

From: Leo Li 

[Why]

drm_atomic_normalize_zpos() can return an error code when there's
modeset lock contention. This was being ignored.

[How]

Bail out of atomic check if normalize_zpos() returns an error.

Fixes: b261509952bc ("drm/amd/display: Fix double cursor on non-video RGB MPO")
Signed-off-by: Leo Li 
Tested-by: Mikhail Gavrilov 


Cc: sta...@vger.kernel.org

Reviewed-by: Hamza Mahfooz 


---
  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 6 +-
  1 file changed, 5 insertions(+), 1 deletion(-)

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 c10982f841f98..cb2a57503000d 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -9889,7 +9889,11 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev,
 * `dcn10_can_pipe_disable_cursor`). By now, all modified planes are in
 * atomic state, so call drm helper to normalize zpos.
 */
-   drm_atomic_normalize_zpos(dev, state);
+   ret = drm_atomic_normalize_zpos(dev, state);
+   if (ret) {
+   drm_dbg(dev, "drm_atomic_normalize_zpos() failed\n");
+   goto fail;
+   }
  
  	/* Remove exiting planes if they are modified */

for_each_oldnew_plane_in_state_reverse(state, plane, old_plane_state, 
new_plane_state, i) {


--
Hamza



[PATCH] drm/amd/display: Fail atomic_check early on normalize_zpos error

2023-02-13 Thread sunpeng.li
From: Leo Li 

[Why]

drm_atomic_normalize_zpos() can return an error code when there's
modeset lock contention. This was being ignored.

[How]

Bail out of atomic check if normalize_zpos() returns an error.

Fixes: b261509952bc ("drm/amd/display: Fix double cursor on non-video RGB MPO")
Signed-off-by: Leo Li 
Tested-by: Mikhail Gavrilov 
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

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 c10982f841f98..cb2a57503000d 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -9889,7 +9889,11 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev,
 * `dcn10_can_pipe_disable_cursor`). By now, all modified planes are in
 * atomic state, so call drm helper to normalize zpos.
 */
-   drm_atomic_normalize_zpos(dev, state);
+   ret = drm_atomic_normalize_zpos(dev, state);
+   if (ret) {
+   drm_dbg(dev, "drm_atomic_normalize_zpos() failed\n");
+   goto fail;
+   }
 
/* Remove exiting planes if they are modified */
for_each_oldnew_plane_in_state_reverse(state, plane, old_plane_state, 
new_plane_state, i) {
-- 
2.39.1