diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.c | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/ltc_gk20a.c | 10 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/mm_gk20a.c | 9 |
4 files changed, 12 insertions, 10 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index 7617c70a..3fa4f0c6 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c | |||
@@ -567,7 +567,7 @@ static irqreturn_t gk20a_intr_thread_stall(int irq, void *dev_id) | |||
567 | if (mc_intr_0 & mc_intr_0_priv_ring_pending_f()) | 567 | if (mc_intr_0 & mc_intr_0_priv_ring_pending_f()) |
568 | gk20a_priv_ring_isr(g); | 568 | gk20a_priv_ring_isr(g); |
569 | if (mc_intr_0 & mc_intr_0_ltc_pending_f()) | 569 | if (mc_intr_0 & mc_intr_0_ltc_pending_f()) |
570 | gk20a_mm_ltc_isr(g); | 570 | g->ops.ltc.isr(g); |
571 | if (mc_intr_0 & mc_intr_0_pbus_pending_f()) | 571 | if (mc_intr_0 & mc_intr_0_pbus_pending_f()) |
572 | gk20a_pbus_isr(g); | 572 | gk20a_pbus_isr(g); |
573 | 573 | ||
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 13d385f5..366ee5a7 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h | |||
@@ -82,6 +82,7 @@ struct gpu_ops { | |||
82 | void (*sync_debugfs)(struct gk20a *g); | 82 | void (*sync_debugfs)(struct gk20a *g); |
83 | void (*init_fs_state)(struct gk20a *g); | 83 | void (*init_fs_state)(struct gk20a *g); |
84 | void (*elpg_flush)(struct gk20a *g); | 84 | void (*elpg_flush)(struct gk20a *g); |
85 | void (*isr)(struct gk20a *g); | ||
85 | } ltc; | 86 | } ltc; |
86 | struct { | 87 | struct { |
87 | int (*init_fs_state)(struct gk20a *g); | 88 | int (*init_fs_state)(struct gk20a *g); |
diff --git a/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c b/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c index f5c6d7e7..c1ba2aee 100644 --- a/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c | |||
@@ -203,6 +203,15 @@ static void gk20a_ltc_init_fs_state(struct gk20a *g) | |||
203 | g->max_ltc_count = g->ltc_count = 1; | 203 | g->max_ltc_count = g->ltc_count = 1; |
204 | } | 204 | } |
205 | 205 | ||
206 | void gk20a_ltc_isr(struct gk20a *g) | ||
207 | { | ||
208 | u32 intr; | ||
209 | |||
210 | intr = gk20a_readl(g, ltc_ltc0_ltss_intr_r()); | ||
211 | gk20a_err(dev_from_gk20a(g), "ltc: %08x\n", intr); | ||
212 | gk20a_writel(g, ltc_ltc0_ltss_intr_r(), intr); | ||
213 | } | ||
214 | |||
206 | void gk20a_init_ltc(struct gpu_ops *gops) | 215 | void gk20a_init_ltc(struct gpu_ops *gops) |
207 | { | 216 | { |
208 | gops->ltc.determine_L2_size_bytes = gk20a_determine_L2_size_bytes; | 217 | gops->ltc.determine_L2_size_bytes = gk20a_determine_L2_size_bytes; |
@@ -220,4 +229,5 @@ void gk20a_init_ltc(struct gpu_ops *gops) | |||
220 | #endif | 229 | #endif |
221 | gops->ltc.elpg_flush = gk20a_mm_g_elpg_flush_locked; | 230 | gops->ltc.elpg_flush = gk20a_mm_g_elpg_flush_locked; |
222 | gops->ltc.init_fs_state = gk20a_ltc_init_fs_state; | 231 | gops->ltc.init_fs_state = gk20a_ltc_init_fs_state; |
232 | gops->ltc.isr = gk20a_ltc_isr; | ||
223 | } | 233 | } |
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c index 624eec94..be22e4a0 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c | |||
@@ -2996,15 +2996,6 @@ int gk20a_mm_suspend(struct gk20a *g) | |||
2996 | return 0; | 2996 | return 0; |
2997 | } | 2997 | } |
2998 | 2998 | ||
2999 | void gk20a_mm_ltc_isr(struct gk20a *g) | ||
3000 | { | ||
3001 | u32 intr; | ||
3002 | |||
3003 | intr = gk20a_readl(g, ltc_ltc0_ltss_intr_r()); | ||
3004 | gk20a_err(dev_from_gk20a(g), "ltc: %08x\n", intr); | ||
3005 | gk20a_writel(g, ltc_ltc0_ltss_intr_r(), intr); | ||
3006 | } | ||
3007 | |||
3008 | bool gk20a_mm_mmu_debug_mode_enabled(struct gk20a *g) | 2999 | bool gk20a_mm_mmu_debug_mode_enabled(struct gk20a *g) |
3009 | { | 3000 | { |
3010 | u32 debug_ctrl = gk20a_readl(g, fb_mmu_debug_ctrl_r()); | 3001 | u32 debug_ctrl = gk20a_readl(g, fb_mmu_debug_ctrl_r()); |