diff options
author | Tom St Denis <tom.stdenis@amd.com> | 2017-02-13 14:11:40 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-02-16 11:43:44 -0500 |
commit | e89d5b5c202831648b853be20a5b9f8170d642d5 (patch) | |
tree | 91e66d6c5684e40f077f5b28b1ec3e9867eea150 | |
parent | fce293ca3d088b9a398c4fa3f7e9489283a70cf5 (diff) |
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>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 9 |
1 files 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) | |||
401 | break; | 401 | break; |
402 | mdelay(1); | 402 | mdelay(1); |
403 | } | 403 | } |
404 | break; | 404 | if (status & 2) |
405 | break; | ||
405 | } | 406 | } |
406 | 407 | ||
407 | for (i = 0; i < 10; ++i) { | 408 | for (i = 0; i < 10; ++i) { |
@@ -411,7 +412,8 @@ static void uvd_v4_2_stop(struct amdgpu_device *adev) | |||
411 | break; | 412 | break; |
412 | mdelay(1); | 413 | mdelay(1); |
413 | } | 414 | } |
414 | break; | 415 | if (status & 0xf) |
416 | break; | ||
415 | } | 417 | } |
416 | 418 | ||
417 | /* Stall UMC and register bus before resetting VCPU */ | 419 | /* Stall UMC and register bus before resetting VCPU */ |
@@ -424,7 +426,8 @@ static void uvd_v4_2_stop(struct amdgpu_device *adev) | |||
424 | break; | 426 | break; |
425 | mdelay(1); | 427 | mdelay(1); |
426 | } | 428 | } |
427 | break; | 429 | if (status & 0x240) |
430 | break; | ||
428 | } | 431 | } |
429 | 432 | ||
430 | WREG32_P(0x3D49, 0, ~(1 << 2)); | 433 | WREG32_P(0x3D49, 0, ~(1 << 2)); |