aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3827-drm-amdgpu-Disable-all-irqs-before-disabling-all-CRT.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3827-drm-amdgpu-Disable-all-irqs-before-disabling-all-CRT.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3827-drm-amdgpu-Disable-all-irqs-before-disabling-all-CRT.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3827-drm-amdgpu-Disable-all-irqs-before-disabling-all-CRT.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3827-drm-amdgpu-Disable-all-irqs-before-disabling-all-CRT.patch
new file mode 100644
index 00000000..ff9c4f89
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3827-drm-amdgpu-Disable-all-irqs-before-disabling-all-CRT.patch
@@ -0,0 +1,47 @@
+From 6291fb650a4e95d479a9802f4f1d382f15250286 Mon Sep 17 00:00:00 2001
+From: Mikita Lipski <mikita.lipski@amd.com>
+Date: Thu, 15 Mar 2018 16:53:08 -0400
+Subject: [PATCH 3827/4131] 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>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 5 ++---
+ 1 file 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 dc71a0e..8ce6354 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -1507,9 +1507,6 @@ static int amdgpu_device_ip_fini(struct amdgpu_device *adev)
+ int i, r;
+
+ amdgpu_amdkfd_device_fini(adev);
+- /* disable all interrupts */
+- amdgpu_irq_disable_all(adev);
+-
+ /* need to disable SMC first */
+ for (i = 0; i < adev->num_ip_blocks; i++) {
+ if (!adev->ip_blocks[i].status.hw)
+@@ -2161,6 +2158,8 @@ void amdgpu_device_fini(struct amdgpu_device *adev)
+
+ DRM_INFO("amdgpu: finishing device.\n");
+ adev->shutdown = true;
++ /* disable all interrupts */
++ amdgpu_irq_disable_all(adev);
+ if (adev->mode_info.mode_config_initialized){
+ if (!amdgpu_device_has_dc_support(adev))
+ drm_crtc_force_disable_all(adev->ddev);
+--
+2.7.4
+