[PATCH] drm/amd/display: fix wrong plane_count check in dm_gpureset_toggle_interrupts()

yaolu@kylinos.cn posted 1 patch 1 day, 19 hours ago
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] drm/amd/display: fix wrong plane_count check in dm_gpureset_toggle_interrupts()
Posted by yaolu@kylinos.cn 1 day, 19 hours ago
From: Lu Yao <yaolu@kylinos.cn>

The else-if branch in dm_gpureset_toggle_interrupts() condition was
incorrectly checking plane_count != 0, which is the same as the
preceding if-branch and can never be true in the else path.

Fixes: 8382cd234981 ("drm/amd/display: consolidate DCN vblank/flip handling onto vupdate_no_lock")
Signed-off-by: Lu Yao <yaolu@kylinos.cn>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
 1 file changed, 1 insertion(+), 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 9c564cd5edee..a11c64277d1d 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -3353,7 +3353,7 @@ static void dm_gpureset_toggle_interrupts(struct amdgpu_device *adev,
 			if (!dc_interrupt_set(adev->dm.dc, irq_source, enable))
 				drm_warn(adev_to_drm(adev), "Failed to %sable vblank interrupt\n", enable ? "en" : "dis");
 
-		} else if (acrtc && state->stream_status[i].plane_count != 0) {
+		} else if (acrtc && state->stream_status[i].plane_count == 0) {
 			/* DCN only needs to toggle VUPDATE_NO_LOCK */
 			rc = amdgpu_dm_crtc_set_vupdate_irq(&acrtc->base, enable);
 			if (rc)
-- 
2.25.1
Re: [PATCH] drm/amd/display: fix wrong plane_count check in dm_gpureset_toggle_interrupts()
Posted by Leo Li 1 day, 8 hours ago

On 2026-07-22 21:55, yaolu@kylinos.cn wrote:
> From: Lu Yao <yaolu@kylinos.cn>
> 
> The else-if branch in dm_gpureset_toggle_interrupts() condition was
> incorrectly checking plane_count != 0, which is the same as the
> preceding if-branch and can never be true in the else path.
> 
> Fixes: 8382cd234981 ("drm/amd/display: consolidate DCN vblank/flip handling onto vupdate_no_lock")
> Signed-off-by: Lu Yao <yaolu@kylinos.cn>
> ---
>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
>  1 file changed, 1 insertion(+), 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 9c564cd5edee..a11c64277d1d 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -3353,7 +3353,7 @@ static void dm_gpureset_toggle_interrupts(struct amdgpu_device *adev,
>  			if (!dc_interrupt_set(adev->dm.dc, irq_source, enable))
>  				drm_warn(adev_to_drm(adev), "Failed to %sable vblank interrupt\n", enable ? "en" : "dis");
>  
> -		} else if (acrtc && state->stream_status[i].plane_count != 0) {
> +		} else if (acrtc && state->stream_status[i].plane_count == 0) {

It looks like the `amdgpu_ip_version(adev, DCE_HWIP, 0) == 0) {` condition was lost when I rebased
the tagged "Fixes" change on 7.2...
https://gitlab.freedesktop.org/agd5f/linux/-/commit/991d045abfe30cbef19b92edfb304d209fcdf7e3?file_path=drivers%2Fgpu%2Fdrm%2Famd%2Fdisplay%2Famdgpu_dm%2Famdgpu_dm.c#line_298241cee_A1561

Fix incoming.
- Leo

>  			/* DCN only needs to toggle VUPDATE_NO_LOCK */
>  			rc = amdgpu_dm_crtc_set_vupdate_irq(&acrtc->base, enable);
>  			if (rc)