diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index 235f3902643a..039b57e4644c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h | |||
| @@ -1943,6 +1943,7 @@ struct amdgpu_ip_block_status { | |||
| 1943 | bool valid; | 1943 | bool valid; |
| 1944 | bool sw; | 1944 | bool sw; |
| 1945 | bool hw; | 1945 | bool hw; |
| 1946 | bool late_initialized; | ||
| 1946 | bool hang; | 1947 | bool hang; |
| 1947 | }; | 1948 | }; |
| 1948 | 1949 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 99a15cad6789..a58513f271e3 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |||
| @@ -1424,6 +1424,7 @@ static int amdgpu_late_init(struct amdgpu_device *adev) | |||
| 1424 | DRM_ERROR("late_init of IP block <%s> failed %d\n", adev->ip_blocks[i].funcs->name, r); | 1424 | DRM_ERROR("late_init of IP block <%s> failed %d\n", adev->ip_blocks[i].funcs->name, r); |
| 1425 | return r; | 1425 | return r; |
| 1426 | } | 1426 | } |
| 1427 | adev->ip_block_status[i].late_initialized = true; | ||
| 1427 | } | 1428 | } |
| 1428 | } | 1429 | } |
| 1429 | 1430 | ||
| @@ -1469,8 +1470,11 @@ static int amdgpu_fini(struct amdgpu_device *adev) | |||
| 1469 | } | 1470 | } |
| 1470 | 1471 | ||
| 1471 | for (i = adev->num_ip_blocks - 1; i >= 0; i--) { | 1472 | for (i = adev->num_ip_blocks - 1; i >= 0; i--) { |
| 1473 | if (!adev->ip_block_status[i].late_initialized) | ||
| 1474 | continue; | ||
| 1472 | if (adev->ip_blocks[i].funcs->late_fini) | 1475 | if (adev->ip_blocks[i].funcs->late_fini) |
| 1473 | adev->ip_blocks[i].funcs->late_fini((void *)adev); | 1476 | adev->ip_blocks[i].funcs->late_fini((void *)adev); |
| 1477 | adev->ip_block_status[i].late_initialized = false; | ||
| 1474 | } | 1478 | } |
| 1475 | 1479 | ||
| 1476 | return 0; | 1480 | return 0; |
