summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/os/linux/intr.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/os/linux/intr.c')
-rw-r--r--drivers/gpu/nvgpu/os/linux/intr.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/os/linux/intr.c b/drivers/gpu/nvgpu/os/linux/intr.c
index 7ffc7e87..5ed6e35c 100644
--- a/drivers/gpu/nvgpu/os/linux/intr.c
+++ b/drivers/gpu/nvgpu/os/linux/intr.c
@@ -15,7 +15,6 @@
15#include <linux/irqreturn.h> 15#include <linux/irqreturn.h>
16 16
17#include "gk20a/gk20a.h" 17#include "gk20a/gk20a.h"
18#include "gk20a/mc_gk20a.h"
19 18
20#include <nvgpu/atomic.h> 19#include <nvgpu/atomic.h>
21#include <nvgpu/unit.h> 20#include <nvgpu/unit.h>
@@ -107,6 +106,21 @@ irqreturn_t nvgpu_intr_nonstall(struct gk20a *g)
107 return IRQ_HANDLED; 106 return IRQ_HANDLED;
108} 107}
109 108
109static void mc_gk20a_handle_intr_nonstall(struct gk20a *g, u32 ops)
110{
111 bool semaphore_wakeup, post_events;
112
113 semaphore_wakeup =
114 (((ops & GK20A_NONSTALL_OPS_WAKEUP_SEMAPHORE) != 0U) ?
115 true : false);
116 post_events = (((ops & GK20A_NONSTALL_OPS_POST_EVENTS) != 0U) ?
117 true: false);
118
119 if (semaphore_wakeup) {
120 g->ops.semaphore_wakeup(g, post_events);
121 }
122}
123
110void nvgpu_intr_nonstall_cb(struct work_struct *work) 124void nvgpu_intr_nonstall_cb(struct work_struct *work)
111{ 125{
112 struct nvgpu_os_linux *l = 126 struct nvgpu_os_linux *l =