]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu/jpeg: fix jpeg_v5_0_1_is_idle detection
authorBoyuan Zhang <boyuan.zhang@amd.com>
Wed, 24 Jun 2026 13:50:01 +0000 (09:50 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 1 Jul 2026 17:00:58 +0000 (13:00 -0400)
jpeg_v5_0_1_is_idle() initializes ret to false and then accumulates ring
idle status using &=. Since false & condition always remains false, the
function can never report the JPEG block as idle.

Initialize ret to true so the function returns true only when all JPEG
rings report RB_JOB_DONE.

Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com>
Reviewed-by: David (Ming Qiang) Wu <David.Wu3@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 680adf5faeeabb4585f7aeb53681719e2d6c2f41)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c

index 250316704dfac4b02c73b20459a1497ab5f83072..ae3afc7ab32671ecdbc212314bc881e2871f1b5b 100644 (file)
@@ -657,7 +657,7 @@ static void jpeg_v5_0_1_dec_ring_set_wptr(struct amdgpu_ring *ring)
 static bool jpeg_v5_0_1_is_idle(struct amdgpu_ip_block *ip_block)
 {
        struct amdgpu_device *adev = ip_block->adev;
-       bool ret = false;
+       bool ret = true;
        int i, j;
 
        for (i = 0; i < adev->jpeg.num_jpeg_inst; ++i) {