diff options
author | Mikita Lipski <mikita.lipski@amd.com> | 2018-03-15 16:53:08 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-03-21 00:44:12 -0400 |
commit | e5b03032e34da84ee765ffbe4e36d344fdd04108 (patch) | |
tree | b6355a12e9da1c80820266655b8d7803b3142a8f /drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |
parent | 088e7c16170645f1e2298ec6e0029079ef603635 (diff) |
drm/amdgpu - Disable all irqs before disabling all CRTCs
By moving amdgpu_irq_disable_all earlier in the sequence
fixes an issue with disabling pflip interrupts:
*ERROR* dal_irq_service_dummy_ack: called for non-implemented irq source
Earlier patch fixed a memory corruption and revealed irq
warnings.This way it seems to be there no obvious issues
with unloading the module.
Signed-off-by: Mikita Lipski <mikita.lipski@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_device.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index f59b017e4c61..4fa869b1a9cb 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |||
@@ -1722,9 +1722,6 @@ static int amdgpu_device_ip_fini(struct amdgpu_device *adev) | |||
1722 | int i, r; | 1722 | int i, r; |
1723 | 1723 | ||
1724 | amdgpu_amdkfd_device_fini(adev); | 1724 | amdgpu_amdkfd_device_fini(adev); |
1725 | /* disable all interrupts */ | ||
1726 | amdgpu_irq_disable_all(adev); | ||
1727 | |||
1728 | /* need to disable SMC first */ | 1725 | /* need to disable SMC first */ |
1729 | for (i = 0; i < adev->num_ip_blocks; i++) { | 1726 | for (i = 0; i < adev->num_ip_blocks; i++) { |
1730 | if (!adev->ip_blocks[i].status.hw) | 1727 | if (!adev->ip_blocks[i].status.hw) |
@@ -2447,6 +2444,8 @@ void amdgpu_device_fini(struct amdgpu_device *adev) | |||
2447 | 2444 | ||
2448 | DRM_INFO("amdgpu: finishing device.\n"); | 2445 | DRM_INFO("amdgpu: finishing device.\n"); |
2449 | adev->shutdown = true; | 2446 | adev->shutdown = true; |
2447 | /* disable all interrupts */ | ||
2448 | amdgpu_irq_disable_all(adev); | ||
2450 | if (adev->mode_info.mode_config_initialized){ | 2449 | if (adev->mode_info.mode_config_initialized){ |
2451 | if (!amdgpu_device_has_dc_support(adev)) | 2450 | if (!amdgpu_device_has_dc_support(adev)) |
2452 | drm_crtc_force_disable_all(adev->ddev); | 2451 | drm_crtc_force_disable_all(adev->ddev); |