* [PATCH] drm/amd/display: Fail atomic_check early on normalize_zpos error
@ 2023-02-13 15:51 sunpeng.li
2023-02-13 16:01 ` Hamza Mahfooz
0 siblings, 1 reply; 2+ messages in thread
From: sunpeng.li @ 2023-02-13 15:51 UTC (permalink / raw)
To: amd-gfx
Cc: harry.wentland, Rodrigo.Siqueira, hamza.mahfooz, stable, Leo Li,
Mikhail Gavrilov
From: Leo Li <sunpeng.li@amd.com>
[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 <sunpeng.li@amd.com>
Tested-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
---
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
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] drm/amd/display: Fail atomic_check early on normalize_zpos error
2023-02-13 15:51 [PATCH] drm/amd/display: Fail atomic_check early on normalize_zpos error sunpeng.li
@ 2023-02-13 16:01 ` Hamza Mahfooz
0 siblings, 0 replies; 2+ messages in thread
From: Hamza Mahfooz @ 2023-02-13 16:01 UTC (permalink / raw)
To: sunpeng.li, amd-gfx
Cc: harry.wentland, Rodrigo.Siqueira, stable, Mikhail Gavrilov
On 2/13/23 10:51, sunpeng.li@amd.com wrote:
> From: Leo Li <sunpeng.li@amd.com>
>
> [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 <sunpeng.li@amd.com>
> Tested-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
Cc: stable@vger.kernel.org
Reviewed-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
> ---
> 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
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-02-13 16:00 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-13 15:51 [PATCH] drm/amd/display: Fail atomic_check early on normalize_zpos error sunpeng.li
2023-02-13 16:01 ` Hamza Mahfooz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox