summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b/hal_gp10b.c')
-rw-r--r--drivers/gpu/nvgpu/gp10b/hal_gp10b.c98
1 files changed, 98 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
new file mode 100644
index 00000000..61bae5c7
--- /dev/null
+++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
@@ -0,0 +1,98 @@
1/*
2 * GP10B Tegra HAL interface
3 *
4 * Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms and conditions of the GNU General Public License,
8 * version 2, as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 */
15
16#include <linux/types.h>
17#include <linux/printk.h>
18
19#include <linux/types.h>
20
21#include "gk20a/gk20a.h"
22
23#include "gp10b/gr_gp10b.h"
24
25#include "gm20b/ltc_gm20b.h"
26#include "gm20b/fb_gm20b.h"
27#include "gm20b/gm20b_gating_reglist.h"
28#include "gm20b/fifo_gm20b.h"
29#include "gm20b/gr_ctx_gm20b.h"
30#include "gm20b/mm_gm20b.h"
31#include "gm20b/pmu_gm20b.h"
32#include "gm20b/clk_gm20b.h"
33
34struct gpu_ops gp10b_ops = {
35 .clock_gating = {
36 .slcg_bus_load_gating_prod =
37 gm20b_slcg_bus_load_gating_prod,
38 .slcg_ce2_load_gating_prod =
39 gm20b_slcg_ce2_load_gating_prod,
40 .slcg_chiplet_load_gating_prod =
41 gm20b_slcg_chiplet_load_gating_prod,
42 .slcg_ctxsw_firmware_load_gating_prod =
43 gm20b_slcg_ctxsw_firmware_load_gating_prod,
44 .slcg_fb_load_gating_prod =
45 gm20b_slcg_fb_load_gating_prod,
46 .slcg_fifo_load_gating_prod =
47 gm20b_slcg_fifo_load_gating_prod,
48 .slcg_gr_load_gating_prod =
49 gr_gm20b_slcg_gr_load_gating_prod,
50 .slcg_ltc_load_gating_prod =
51 ltc_gm20b_slcg_ltc_load_gating_prod,
52 .slcg_perf_load_gating_prod =
53 gm20b_slcg_perf_load_gating_prod,
54 .slcg_priring_load_gating_prod =
55 gm20b_slcg_priring_load_gating_prod,
56 .slcg_pmu_load_gating_prod =
57 gm20b_slcg_pmu_load_gating_prod,
58 .slcg_therm_load_gating_prod =
59 gm20b_slcg_therm_load_gating_prod,
60 .slcg_xbar_load_gating_prod =
61 gm20b_slcg_xbar_load_gating_prod,
62 .blcg_bus_load_gating_prod =
63 gm20b_blcg_bus_load_gating_prod,
64 .blcg_ctxsw_firmware_load_gating_prod =
65 gm20b_blcg_ctxsw_firmware_load_gating_prod,
66 .blcg_fb_load_gating_prod =
67 gm20b_blcg_fb_load_gating_prod,
68 .blcg_fifo_load_gating_prod =
69 gm20b_blcg_fifo_load_gating_prod,
70 .blcg_gr_load_gating_prod =
71 gm20b_blcg_gr_load_gating_prod,
72 .blcg_ltc_load_gating_prod =
73 gm20b_blcg_ltc_load_gating_prod,
74 .blcg_pwr_csb_load_gating_prod =
75 gm20b_blcg_pwr_csb_load_gating_prod,
76 .blcg_pmu_load_gating_prod =
77 gm20b_blcg_pmu_load_gating_prod,
78 .pg_gr_load_gating_prod =
79 gr_gm20b_pg_gr_load_gating_prod,
80 }
81};
82
83int gp10b_init_hal(struct gpu_ops *gops)
84{
85 *gops = gp10b_ops;
86 gm20b_init_ltc(gops);
87 gp10b_init_gr(gops);
88 gm20b_init_ltc(gops);
89 gm20b_init_fb(gops);
90 gm20b_init_fifo(gops);
91 gm20b_init_gr_ctx(gops);
92 gm20b_init_mm(gops);
93 gm20b_init_pmu_ops(gops);
94 gm20b_init_clk_ops(gops);
95 gops->name = "gp10b";
96
97 return 0;
98}