]> Git Repo - linux.git/blobdiff - drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_irq.c
index eea2bbbbb3df464d08e6d440b234ee6559f49dc4..90f50561b43a9d707f1782bf79b6315bede7095a 100644 (file)
@@ -92,6 +92,7 @@ const char *soc15_ih_clientid_name[] = {
        "DF",
        "SDMA7 or VCE1",
        "PWR",
+       "reserved",
        "UTCL2",
        "EA",
        "UTCL2LOG",
@@ -198,13 +199,13 @@ irqreturn_t amdgpu_irq_handler(int irq, void *arg)
         * ack the interrupt if it is there
         */
        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.ras_funcs &&
+                   adev->nbio.ras_funcs->handle_ras_controller_intr_no_bifring)
+                       adev->nbio.ras_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 (adev->nbio.ras_funcs &&
+                   adev->nbio.ras_funcs->handle_ras_err_event_athub_intr_no_bifring)
+                       adev->nbio.ras_funcs->handle_ras_err_event_athub_intr_no_bifring(adev);
        }
 
        return ret;
@@ -381,11 +382,6 @@ void amdgpu_irq_fini(struct amdgpu_device *adev)
 
                        kfree(src->enabled_types);
                        src->enabled_types = NULL;
-                       if (src->data) {
-                               kfree(src->data);
-                               kfree(src);
-                               adev->irq.client[i].sources[j] = NULL;
-                       }
                }
                kfree(adev->irq.client[i].sources);
                adev->irq.client[i].sources = NULL;
@@ -569,7 +565,7 @@ void amdgpu_irq_gpu_reset_resume_helper(struct amdgpu_device *adev)
                for (j = 0; j < AMDGPU_MAX_IRQ_SRC_ID; ++j) {
                        struct amdgpu_irq_src *src = adev->irq.client[i].sources[j];
 
-                       if (!src)
+                       if (!src || !src->funcs || !src->funcs->set)
                                continue;
                        for (k = 0; k < src->num_types; k++)
                                amdgpu_irq_update(adev, src, k);
This page took 0.036088 seconds and 4 git commands to generate.