]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/amdgpu: pull ras controller int status only when ras enabled
authorHawking Zhang <Hawking.Zhang@amd.com>
Mon, 18 Nov 2019 10:17:12 +0000 (18:17 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 19 Nov 2019 17:09:23 +0000 (12:09 -0500)
ras_controller_irq and athub_err_event_irq are only registered
when PCIE_BIF ras is marked as supported. as the result, the driver
also just need pull the int status in such case.

Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: John Clements <john.clements@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c

index 30d540d23b778a0ac01a2224988730cd7b38f042..5ed4227f304bd49050139505622cdf2673878e8a 100644 (file)
@@ -55,6 +55,7 @@
 #include "amdgpu_connectors.h"
 #include "amdgpu_trace.h"
 #include "amdgpu_amdkfd.h"
+#include "amdgpu_ras.h"
 
 #include <linux/pm_runtime.h>
 
@@ -162,13 +163,15 @@ irqreturn_t amdgpu_irq_handler(int irq, void *arg)
         * register to check whether the interrupt is triggered or not, and properly
         * ack the interrupt if it is there
         */
-       if (adev->nbio.funcs &&
-           adev->nbio.funcs->handle_ras_controller_intr_no_bifring)
-               adev->nbio.funcs->handle_ras_controller_intr_no_bifring(adev);
-
-       if (adev->nbio.funcs &&
-           adev->nbio.funcs->handle_ras_err_event_athub_intr_no_bifring)
-               adev->nbio.funcs->handle_ras_err_event_athub_intr_no_bifring(adev);
+       if (amdgpu_ras_is_supported(adev, AMDGPU_RAS_BLOCK__PCIE_BIF)) {
+               if (adev->nbio.funcs &&
+                   adev->nbio.funcs->handle_ras_controller_intr_no_bifring)
+                       adev->nbio.funcs->handle_ras_controller_intr_no_bifring(adev);
+
+               if (adev->nbio.funcs &&
+                   adev->nbio.funcs->handle_ras_err_event_athub_intr_no_bifring)
+                       adev->nbio.funcs->handle_ras_err_event_athub_intr_no_bifring(adev);
+       }
 
        return ret;
 }