drm/amd/amdgpu: Fix flow control in uvd_v4_2_stop()
authorTom St Denis <tom.stdenis@amd.com>
Mon, 13 Feb 2017 19:11:40 +0000 (14:11 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 16 Feb 2017 16:43:44 +0000 (11:43 -0500)
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>
drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c

index 97af482..b34cefc 100644 (file)
@@ -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));