summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gk20a.h
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2014-10-27 05:03:00 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:11:56 -0400
commit8371833f4273c2d4a6f923eb3270b4ab93967743 (patch)
tree92faf9b7bc19bdc14a5c46b25f3ab7acc6cf65e3 /drivers/gpu/nvgpu/gk20a/gk20a.h
parenteb690cb391ca0578a2c086eff5085f16c32f651e (diff)
gpu: nvgpu: Per-chip interrupt processing
Move accesses to MC registers under HAL so that they can be reimplemented per chip. Do chip detection and HAL initialization only once. Bug 1567274 Change-Id: I20bf2f439d267d284bfd536f1a1dfb5d5a2dce4c Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/590385
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a.h')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index 5669e1c5..a111a040 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -29,7 +29,8 @@ struct acr_gm20b;
29 29
30#include <linux/sched.h> 30#include <linux/sched.h>
31#include <linux/spinlock.h> 31#include <linux/spinlock.h>
32#include <uapi/linux/nvgpu.h> 32#include <linux/nvgpu.h>
33#include <linux/irqreturn.h>
33#include <linux/tegra-soc.h> 34#include <linux/tegra-soc.h>
34 35
35#include "../../../arch/arm/mach-tegra/iomap.h" 36#include "../../../arch/arm/mach-tegra/iomap.h"
@@ -335,6 +336,13 @@ struct gpu_ops {
335 *get_qctl_whitelist_ranges)(void); 336 *get_qctl_whitelist_ranges)(void);
336 int (*get_qctl_whitelist_ranges_count)(void); 337 int (*get_qctl_whitelist_ranges_count)(void);
337 } regops; 338 } regops;
339 struct {
340 void (*intr_enable)(struct gk20a *g);
341 irqreturn_t (*isr_stall)(struct gk20a *g);
342 irqreturn_t (*isr_nonstall)(struct gk20a *g);
343 irqreturn_t (*isr_thread_stall)(struct gk20a *g);
344 irqreturn_t (*isr_thread_nonstall)(struct gk20a *g);
345 } mc;
338}; 346};
339 347
340struct gk20a { 348struct gk20a {
@@ -734,6 +742,8 @@ gk20a_request_firmware(struct gk20a *g, const char *fw_name);
734 742
735int gk20a_init_gpu_characteristics(struct gk20a *g); 743int gk20a_init_gpu_characteristics(struct gk20a *g);
736 744
745void gk20a_pbus_isr(struct gk20a *g);
746
737int gk20a_user_init(struct platform_device *dev); 747int gk20a_user_init(struct platform_device *dev);
738void gk20a_user_deinit(struct platform_device *dev); 748void gk20a_user_deinit(struct platform_device *dev);
739 749