Jelajahi Sumber

drm/amd/amdgpu: Fix flow control in uvd_v4_2_stop()

Break out of outer loop properly.

Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Tom St Denis 8 tahun lalu
induk
melakukan
e89d5b5c20
1 mengubah file dengan 6 tambahan dan 3 penghapusan
  1. 6 3
      drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c

+ 6 - 3
drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c

@@ -401,7 +401,8 @@ static void uvd_v4_2_stop(struct amdgpu_device *adev)
 				break;
 			mdelay(1);
 		}
-		break;
+		if (status & 2)
+			break;
 	}
 
 	for (i = 0; i < 10; ++i) {
@@ -411,7 +412,8 @@ static void uvd_v4_2_stop(struct amdgpu_device *adev)
 				break;
 			mdelay(1);
 		}
-		break;
+		if (status & 0xf)
+			break;
 	}
 
 	/* Stall UMC and register bus before resetting VCPU */
@@ -424,7 +426,8 @@ static void uvd_v4_2_stop(struct amdgpu_device *adev)
 				break;
 			mdelay(1);
 		}
-		break;
+		if (status & 0x240)
+			break;
 	}
 
 	WREG32_P(0x3D49, 0, ~(1 << 2));