diff options
author | Andrey Grodzovsky <andrey.grodzovsky@amd.com> | 2018-11-29 20:21:53 +0300 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-12-03 19:15:08 +0300 |
commit | a82400b57abb6aff068bb3b21d1cccd63acbb863 (patch) | |
tree | 69a85209edb417f47210e3cccde644d0b88a25a4 /drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | |
parent | 38cd8a280d725cd4e0be14b0fbc2797c26cd9de5 (diff) | |
download | linux-a82400b57abb6aff068bb3b21d1cccd63acbb863.tar.xz |
drm/amdgpu: Handle xgmi device removal.
XGMI hive has some resources allocted on device init which
needs to be deallocated when the device is unregistered.
v2: Remove creation of dedicated wq for XGMI hive reset.
v3: Use the gmc.xgmi.supported flag
Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c index f8c86d0593dd..1b15ff3266b1 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c @@ -135,3 +135,23 @@ exit: mutex_unlock(&xgmi_mutex); return ret; } + +void amdgpu_xgmi_remove_device(struct amdgpu_device *adev) +{ + struct amdgpu_hive_info *hive; + + if (!adev->gmc.xgmi.supported) + return; + + mutex_lock(&xgmi_mutex); + + hive = amdgpu_get_xgmi_hive(adev); + if (!hive) + goto exit; + + if (!(hive->number_devices--)) + mutex_destroy(&hive->hive_lock); + +exit: + mutex_unlock(&xgmi_mutex); +} |