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

Tom St Denis tstdenis82 at gmail.com
Mon Feb 13 19:13:20 UTC 2017


Break out of outer loop properly.

Signed-off-by: Tom St Denis <tom.stdenis at amd.com>
Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
---
 drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c b/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c
index 97af4827f652..b34cefc7ebd5 100644
--- a/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c
+++ b/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));
-- 
2.11.0



More information about the amd-gfx mailing list