summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2014-10-27 03:16:51 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:11:52 -0400
commit4739499f07b29282ee1031d08adaa76c238da2a6 (patch)
tree10caa152eea6250e46cad6172553069b4bb3dcb9 /drivers/gpu/nvgpu/gm20b
parentb5bb4f53dbdde8473e1160d4522c5d9da55f115f (diff)
gpu: nvgpu: Sync gk20a and gm20b headers
Synchronize gk20a and gm20b headers. All registers which were added to gk20a are now added to gm20b, and some registers that are unused are removed. Bug 1567274 Change-Id: Ia3b7958c148e495cbff420ee56bb448db0f58680 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/590313 GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b')
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_chiplet_pwr_gm20b.h85
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_ctxsw_prog_gm20b.h68
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_fb_gm20b.h12
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_fifo_gm20b.h4
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_gr_gm20b.h170
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_ltc_gm20b.h4
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_mc_gm20b.h64
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_pbdma_gm20b.h20
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_pwr_gm20b.h12
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_ram_gm20b.h42
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_therm_gm20b.h56
11 files changed, 294 insertions, 243 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/hw_chiplet_pwr_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_chiplet_pwr_gm20b.h
deleted file mode 100644
index a9e28cb5..00000000
--- a/drivers/gpu/nvgpu/gm20b/hw_chiplet_pwr_gm20b.h
+++ /dev/null
@@ -1,85 +0,0 @@
1/*
2 * Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16/*
17 * Function naming determines intended use:
18 *
19 * <x>_r(void) : Returns the offset for register <x>.
20 *
21 * <x>_o(void) : Returns the offset for element <x>.
22 *
23 * <x>_w(void) : Returns the word offset for word (4 byte) element <x>.
24 *
25 * <x>_<y>_s(void) : Returns size of field <y> of register <x> in bits.
26 *
27 * <x>_<y>_f(u32 v) : Returns a value based on 'v' which has been shifted
28 * and masked to place it at field <y> of register <x>. This value
29 * can be |'d with others to produce a full register value for
30 * register <x>.
31 *
32 * <x>_<y>_m(void) : Returns a mask for field <y> of register <x>. This
33 * value can be ~'d and then &'d to clear the value of field <y> for
34 * register <x>.
35 *
36 * <x>_<y>_<z>_f(void) : Returns the constant value <z> after being shifted
37 * to place it at field <y> of register <x>. This value can be |'d
38 * with others to produce a full register value for <x>.
39 *
40 * <x>_<y>_v(u32 r) : Returns the value of field <y> from a full register
41 * <x> value 'r' after being shifted to place its LSB at bit 0.
42 * This value is suitable for direct comparison with other unshifted
43 * values appropriate for use in field <y> of register <x>.
44 *
45 * <x>_<y>_<z>_v(void) : Returns the constant value for <z> defined for
46 * field <y> of register <x>. This value is suitable for direct
47 * comparison with unshifted values appropriate for use in field <y>
48 * of register <x>.
49 */
50#ifndef _hw_chiplet_pwr_gm20b_h_
51#define _hw_chiplet_pwr_gm20b_h_
52
53static inline u32 chiplet_pwr_gpcs_weight_6_r(void)
54{
55 return 0x0010e018;
56}
57static inline u32 chiplet_pwr_gpcs_weight_7_r(void)
58{
59 return 0x0010e01c;
60}
61static inline u32 chiplet_pwr_gpcs_config_1_r(void)
62{
63 return 0x0010e03c;
64}
65static inline u32 chiplet_pwr_gpcs_config_1_ba_enable_yes_f(void)
66{
67 return 0x1;
68}
69static inline u32 chiplet_pwr_fbps_weight_0_r(void)
70{
71 return 0x0010e100;
72}
73static inline u32 chiplet_pwr_fbps_weight_1_r(void)
74{
75 return 0x0010e104;
76}
77static inline u32 chiplet_pwr_fbps_config_1_r(void)
78{
79 return 0x0010e13c;
80}
81static inline u32 chiplet_pwr_fbps_config_1_ba_enable_yes_f(void)
82{
83 return 0x1;
84}
85#endif
diff --git a/drivers/gpu/nvgpu/gm20b/hw_ctxsw_prog_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_ctxsw_prog_gm20b.h
index 01161f17..8783a0bc 100644
--- a/drivers/gpu/nvgpu/gm20b/hw_ctxsw_prog_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/hw_ctxsw_prog_gm20b.h
@@ -90,13 +90,25 @@ static inline u32 ctxsw_prog_main_image_pm_o(void)
90{ 90{
91 return 0x00000028; 91 return 0x00000028;
92} 92}
93static inline u32 ctxsw_prog_main_image_pm_mode_v(u32 r) 93static inline u32 ctxsw_prog_main_image_pm_mode_m(void)
94{ 94{
95 return (r >> 0) & 0x7; 95 return 0x7 << 0;
96} 96}
97static inline u32 ctxsw_prog_main_image_pm_mode_no_ctxsw_v(void) 97static inline u32 ctxsw_prog_main_image_pm_mode_no_ctxsw_f(void)
98{ 98{
99 return 0x00000000; 99 return 0x0;
100}
101static inline u32 ctxsw_prog_main_image_pm_smpc_mode_m(void)
102{
103 return 0x7 << 3;
104}
105static inline u32 ctxsw_prog_main_image_pm_smpc_mode_ctxsw_f(void)
106{
107 return 0x8;
108}
109static inline u32 ctxsw_prog_main_image_pm_smpc_mode_no_ctxsw_f(void)
110{
111 return 0x0;
100} 112}
101static inline u32 ctxsw_prog_main_image_pm_ptr_o(void) 113static inline u32 ctxsw_prog_main_image_pm_ptr_o(void)
102{ 114{
@@ -178,4 +190,52 @@ static inline u32 ctxsw_prog_extended_sm_dsm_perf_counter_control_register_strid
178{ 190{
179 return 0x00000002; 191 return 0x00000002;
180} 192}
193static inline u32 ctxsw_prog_main_image_priv_access_map_config_o(void)
194{
195 return 0x000000a0;
196}
197static inline u32 ctxsw_prog_main_image_priv_access_map_config_mode_s(void)
198{
199 return 2;
200}
201static inline u32 ctxsw_prog_main_image_priv_access_map_config_mode_f(u32 v)
202{
203 return (v & 0x3) << 0;
204}
205static inline u32 ctxsw_prog_main_image_priv_access_map_config_mode_m(void)
206{
207 return 0x3 << 0;
208}
209static inline u32 ctxsw_prog_main_image_priv_access_map_config_mode_v(u32 r)
210{
211 return (r >> 0) & 0x3;
212}
213static inline u32 ctxsw_prog_main_image_priv_access_map_config_mode_allow_all_f(void)
214{
215 return 0x0;
216}
217static inline u32 ctxsw_prog_main_image_priv_access_map_config_mode_use_map_f(void)
218{
219 return 0x2;
220}
221static inline u32 ctxsw_prog_main_image_priv_access_map_addr_lo_o(void)
222{
223 return 0x000000a4;
224}
225static inline u32 ctxsw_prog_main_image_priv_access_map_addr_hi_o(void)
226{
227 return 0x000000a8;
228}
229static inline u32 ctxsw_prog_main_image_misc_options_o(void)
230{
231 return 0x0000003c;
232}
233static inline u32 ctxsw_prog_main_image_misc_options_verif_features_m(void)
234{
235 return 0x1 << 3;
236}
237static inline u32 ctxsw_prog_main_image_misc_options_verif_features_disabled_f(void)
238{
239 return 0x0;
240}
181#endif 241#endif
diff --git a/drivers/gpu/nvgpu/gm20b/hw_fb_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_fb_gm20b.h
index 7655d2a3..91b998ca 100644
--- a/drivers/gpu/nvgpu/gm20b/hw_fb_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/hw_fb_gm20b.h
@@ -178,9 +178,9 @@ static inline u32 fb_mmu_debug_wr_vol_true_f(void)
178{ 178{
179 return 0x4; 179 return 0x4;
180} 180}
181static inline u32 fb_mmu_debug_wr_addr_v(u32 r) 181static inline u32 fb_mmu_debug_wr_addr_f(u32 v)
182{ 182{
183 return (r >> 4) & 0xfffffff; 183 return (v & 0xfffffff) << 4;
184} 184}
185static inline u32 fb_mmu_debug_wr_addr_alignment_v(void) 185static inline u32 fb_mmu_debug_wr_addr_alignment_v(void)
186{ 186{
@@ -198,9 +198,9 @@ static inline u32 fb_mmu_debug_rd_vol_false_f(void)
198{ 198{
199 return 0x0; 199 return 0x0;
200} 200}
201static inline u32 fb_mmu_debug_rd_addr_v(u32 r) 201static inline u32 fb_mmu_debug_rd_addr_f(u32 v)
202{ 202{
203 return (r >> 4) & 0xfffffff; 203 return (v & 0xfffffff) << 4;
204} 204}
205static inline u32 fb_mmu_debug_rd_addr_alignment_v(void) 205static inline u32 fb_mmu_debug_rd_addr_alignment_v(void)
206{ 206{
@@ -222,10 +222,6 @@ static inline u32 fb_mmu_vpr_info_r(void)
222{ 222{
223 return 0x00100cd0; 223 return 0x00100cd0;
224} 224}
225static inline u32 fb_mmu_vpr_info_fetch_f(u32 v)
226{
227 return (v & 0x1) << 2;
228}
229static inline u32 fb_mmu_vpr_info_fetch_v(u32 r) 225static inline u32 fb_mmu_vpr_info_fetch_v(u32 r)
230{ 226{
231 return (r >> 2) & 0x1; 227 return (r >> 2) & 0x1;
diff --git a/drivers/gpu/nvgpu/gm20b/hw_fifo_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_fifo_gm20b.h
index e0f41d34..acbe6a4e 100644
--- a/drivers/gpu/nvgpu/gm20b/hw_fifo_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/hw_fifo_gm20b.h
@@ -206,6 +206,10 @@ static inline u32 fifo_intr_en_0_r(void)
206{ 206{
207 return 0x00002140; 207 return 0x00002140;
208} 208}
209static inline u32 fifo_intr_en_0_sched_error_m(void)
210{
211 return 0x1 << 8;
212}
209static inline u32 fifo_intr_en_1_r(void) 213static inline u32 fifo_intr_en_1_r(void)
210{ 214{
211 return 0x00002528; 215 return 0x00002528;
diff --git a/drivers/gpu/nvgpu/gm20b/hw_gr_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_gr_gm20b.h
index 21a46d33..95d06cc6 100644
--- a/drivers/gpu/nvgpu/gm20b/hw_gr_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/hw_gr_gm20b.h
@@ -78,6 +78,26 @@ static inline u32 gr_intr_illegal_method_reset_f(void)
78{ 78{
79 return 0x10; 79 return 0x10;
80} 80}
81static inline u32 gr_intr_illegal_notify_pending_f(void)
82{
83 return 0x40;
84}
85static inline u32 gr_intr_illegal_notify_reset_f(void)
86{
87 return 0x40;
88}
89static inline u32 gr_intr_firmware_method_f(u32 v)
90{
91 return (v & 0x1) << 8;
92}
93static inline u32 gr_intr_firmware_method_pending_f(void)
94{
95 return 0x100;
96}
97static inline u32 gr_intr_firmware_method_reset_f(void)
98{
99 return 0x100;
100}
81static inline u32 gr_intr_illegal_class_pending_f(void) 101static inline u32 gr_intr_illegal_class_pending_f(void)
82{ 102{
83 return 0x20; 103 return 0x20;
@@ -86,6 +106,14 @@ static inline u32 gr_intr_illegal_class_reset_f(void)
86{ 106{
87 return 0x20; 107 return 0x20;
88} 108}
109static inline u32 gr_intr_fecs_error_pending_f(void)
110{
111 return 0x80000;
112}
113static inline u32 gr_intr_fecs_error_reset_f(void)
114{
115 return 0x80000;
116}
89static inline u32 gr_intr_class_error_pending_f(void) 117static inline u32 gr_intr_class_error_pending_f(void)
90{ 118{
91 return 0x100000; 119 return 0x100000;
@@ -102,6 +130,26 @@ static inline u32 gr_intr_exception_reset_f(void)
102{ 130{
103 return 0x200000; 131 return 0x200000;
104} 132}
133static inline u32 gr_fecs_intr_r(void)
134{
135 return 0x00400144;
136}
137static inline u32 gr_class_error_r(void)
138{
139 return 0x00400110;
140}
141static inline u32 gr_class_error_code_v(u32 r)
142{
143 return (r >> 0) & 0xffff;
144}
145static inline u32 gr_intr_nonstall_r(void)
146{
147 return 0x00400120;
148}
149static inline u32 gr_intr_nonstall_trap_pending_f(void)
150{
151 return 0x2;
152}
105static inline u32 gr_intr_en_r(void) 153static inline u32 gr_intr_en_r(void)
106{ 154{
107 return 0x0040013c; 155 return 0x0040013c;
@@ -198,6 +246,10 @@ static inline u32 gr_status_r(void)
198{ 246{
199 return 0x00400700; 247 return 0x00400700;
200} 248}
249static inline u32 gr_status_fe_method_upper_v(u32 r)
250{
251 return (r >> 1) & 0x1;
252}
201static inline u32 gr_status_fe_method_lower_v(u32 r) 253static inline u32 gr_status_fe_method_lower_v(u32 r)
202{ 254{
203 return (r >> 2) & 0x1; 255 return (r >> 2) & 0x1;
@@ -206,6 +258,10 @@ static inline u32 gr_status_fe_method_lower_idle_v(void)
206{ 258{
207 return 0x00000000; 259 return 0x00000000;
208} 260}
261static inline u32 gr_status_fe_gi_v(u32 r)
262{
263 return (r >> 21) & 0x1;
264}
209static inline u32 gr_status_mask_r(void) 265static inline u32 gr_status_mask_r(void)
210{ 266{
211 return 0x00400610; 267 return 0x00400610;
@@ -662,6 +718,22 @@ static inline u32 gr_fecs_method_push_adr_set_watchdog_timeout_f(void)
662{ 718{
663 return 0x21; 719 return 0x21;
664} 720}
721static inline u32 gr_fecs_host_int_status_r(void)
722{
723 return 0x00409c18;
724}
725static inline u32 gr_fecs_host_int_status_umimp_firmware_method_f(u32 v)
726{
727 return (v & 0x1) << 17;
728}
729static inline u32 gr_fecs_host_int_status_umimp_illegal_method_f(u32 v)
730{
731 return (v & 0x1) << 18;
732}
733static inline u32 gr_fecs_host_int_clear_r(void)
734{
735 return 0x00409c20;
736}
665static inline u32 gr_fecs_host_int_enable_r(void) 737static inline u32 gr_fecs_host_int_enable_r(void)
666{ 738{
667 return 0x00409c24; 739 return 0x00409c24;
@@ -2570,26 +2642,6 @@ static inline u32 gr_gpcs_tpcs_mpc_vtg_cb_global_base_addr_valid_true_f(void)
2570{ 2642{
2571 return 0x10000000; 2643 return 0x10000000;
2572} 2644}
2573static inline u32 gr_gpcs_tpcs_sm_pm_ctrl_r(void)
2574{
2575 return 0x00419e00;
2576}
2577static inline u32 gr_gpcs_tpcs_sm_pm_ctrl_core_enable_m(void)
2578{
2579 return 0x1 << 7;
2580}
2581static inline u32 gr_gpcs_tpcs_sm_pm_ctrl_core_enable_enable_f(void)
2582{
2583 return 0x80;
2584}
2585static inline u32 gr_gpcs_tpcs_sm_pm_ctrl_qctl_enable_m(void)
2586{
2587 return 0x1 << 15;
2588}
2589static inline u32 gr_gpcs_tpcs_sm_pm_ctrl_qctl_enable_enable_f(void)
2590{
2591 return 0x8000;
2592}
2593static inline u32 gr_gpcs_tpcs_sm_hww_warp_esr_report_mask_r(void) 2645static inline u32 gr_gpcs_tpcs_sm_hww_warp_esr_report_mask_r(void)
2594{ 2646{
2595 return 0x00419e44; 2647 return 0x00419e44;
@@ -2714,51 +2766,51 @@ static inline u32 gr_gpcs_tpcs_sm_hww_global_esr_report_mask_single_step_complet
2714{ 2766{
2715 return 0x40; 2767 return 0x40;
2716} 2768}
2717static inline u32 gr_gpc0_tpc0_tpccs_tpc_exception_en_r(void) 2769static inline u32 gr_gpcs_tpcs_tpccs_tpc_exception_en_r(void)
2718{ 2770{
2719 return 0x0050450c; 2771 return 0x00419d0c;
2720} 2772}
2721static inline u32 gr_gpc0_tpc0_tpccs_tpc_exception_en_sm_enabled_f(void) 2773static inline u32 gr_gpcs_tpcs_tpccs_tpc_exception_en_sm_enabled_f(void)
2722{ 2774{
2723 return 0x2; 2775 return 0x2;
2724} 2776}
2725static inline u32 gr_gpc0_tpc0_tpccs_tpc_exception_en_sm_disabled_f(void) 2777static inline u32 gr_gpc0_tpc0_tpccs_tpc_exception_en_r(void)
2726{ 2778{
2727 return 0x0; 2779 return 0x0050450c;
2728} 2780}
2729static inline u32 gr_gpc0_gpccs_gpc_exception_en_r(void) 2781static inline u32 gr_gpc0_tpc0_tpccs_tpc_exception_en_sm_enabled_f(void)
2730{ 2782{
2731 return 0x00502c94; 2783 return 0x2;
2732} 2784}
2733static inline u32 gr_gpc0_gpccs_gpc_exception_en_tpc_0_enabled_f(void) 2785static inline u32 gr_gpcs_gpccs_gpc_exception_en_r(void)
2734{ 2786{
2735 return 0x10000; 2787 return 0x0041ac94;
2736} 2788}
2737static inline u32 gr_gpc0_gpccs_gpc_exception_en_tpc_0_disabled_f(void) 2789static inline u32 gr_gpcs_gpccs_gpc_exception_en_tpc_f(u32 v)
2738{ 2790{
2739 return 0x0; 2791 return (v & 0xff) << 16;
2740} 2792}
2741static inline u32 gr_gpcs_gpccs_gpc_exception_r(void) 2793static inline u32 gr_gpc0_gpccs_gpc_exception_r(void)
2742{ 2794{
2743 return 0x0041ac90; 2795 return 0x00502c90;
2744} 2796}
2745static inline u32 gr_gpcs_gpccs_gpc_exception_tpc_v(u32 r) 2797static inline u32 gr_gpc0_gpccs_gpc_exception_tpc_v(u32 r)
2746{ 2798{
2747 return (r >> 16) & 0xff; 2799 return (r >> 16) & 0xff;
2748} 2800}
2749static inline u32 gr_gpcs_gpccs_gpc_exception_tpc_0_pending_v(void) 2801static inline u32 gr_gpc0_gpccs_gpc_exception_tpc_0_pending_v(void)
2750{ 2802{
2751 return 0x00000001; 2803 return 0x00000001;
2752} 2804}
2753static inline u32 gr_gpcs_tpcs_tpccs_tpc_exception_r(void) 2805static inline u32 gr_gpc0_tpc0_tpccs_tpc_exception_r(void)
2754{ 2806{
2755 return 0x00419d08; 2807 return 0x00504508;
2756} 2808}
2757static inline u32 gr_gpcs_tpcs_tpccs_tpc_exception_sm_v(u32 r) 2809static inline u32 gr_gpc0_tpc0_tpccs_tpc_exception_sm_v(u32 r)
2758{ 2810{
2759 return (r >> 1) & 0x1; 2811 return (r >> 1) & 0x1;
2760} 2812}
2761static inline u32 gr_gpcs_tpcs_tpccs_tpc_exception_sm_pending_v(void) 2813static inline u32 gr_gpc0_tpc0_tpccs_tpc_exception_sm_pending_v(void)
2762{ 2814{
2763 return 0x00000001; 2815 return 0x00000001;
2764} 2816}
@@ -2854,10 +2906,6 @@ static inline u32 gr_gpcs_tpcs_sm_debug_sfe_control_read_half_ctl_f(u32 v)
2854{ 2906{
2855 return (v & 0x1) << 0; 2907 return (v & 0x1) << 0;
2856} 2908}
2857static inline u32 gr_gpcs_tpcs_sm_power_throttle_r(void)
2858{
2859 return 0x00419ed8;
2860}
2861static inline u32 gr_gpcs_tpcs_pes_vsc_vpc_r(void) 2909static inline u32 gr_gpcs_tpcs_pes_vsc_vpc_r(void)
2862{ 2910{
2863 return 0x0041be08; 2911 return 0x0041be08;
@@ -3122,42 +3170,6 @@ static inline u32 gr_fe_pwr_mode_req_done_v(void)
3122{ 3170{
3123 return 0x00000000; 3171 return 0x00000000;
3124} 3172}
3125static inline u32 gr_gpcs_tpcs_sm_sfe_ba_control_r(void)
3126{
3127 return 0x00419f88;
3128}
3129static inline u32 gr_gpcs_tpcs_sm_sfe_ba_control_blkactivity_enable_f(u32 v)
3130{
3131 return (v & 0x1) << 31;
3132}
3133static inline u32 gr_gpcs_tpcs_sm_sfe_ba_control_blkactivity_enable_m(void)
3134{
3135 return 0x1 << 31;
3136}
3137static inline u32 gr_gpcs_tpcs_sm_quad_ba_control_r(void)
3138{
3139 return 0x00419f80;
3140}
3141static inline u32 gr_gpcs_tpcs_sm_quad_ba_control_blkactivity_enable_f(u32 v)
3142{
3143 return (v & 0x1) << 31;
3144}
3145static inline u32 gr_gpcs_tpcs_sm_quad_ba_control_blkactivity_enable_m(void)
3146{
3147 return 0x1 << 31;
3148}
3149static inline u32 gr_gpcs_tpcs_sm_mio_ba_control_r(void)
3150{
3151 return 0x00419ccc;
3152}
3153static inline u32 gr_gpcs_tpcs_sm_mio_ba_control_blkactivity_enable_f(u32 v)
3154{
3155 return (v & 0x1) << 31;
3156}
3157static inline u32 gr_gpcs_tpcs_sm_mio_ba_control_blkactivity_enable_m(void)
3158{
3159 return 0x1 << 31;
3160}
3161static inline u32 gr_gpcs_pri_mmu_ctrl_r(void) 3173static inline u32 gr_gpcs_pri_mmu_ctrl_r(void)
3162{ 3174{
3163 return 0x00418880; 3175 return 0x00418880;
diff --git a/drivers/gpu/nvgpu/gm20b/hw_ltc_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_ltc_gm20b.h
index 467bd665..95e0c43d 100644
--- a/drivers/gpu/nvgpu/gm20b/hw_ltc_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/hw_ltc_gm20b.h
@@ -50,6 +50,10 @@
50#ifndef _hw_ltc_gm20b_h_ 50#ifndef _hw_ltc_gm20b_h_
51#define _hw_ltc_gm20b_h_ 51#define _hw_ltc_gm20b_h_
52 52
53static inline u32 ltc_ltcs_lts0_cbc_ctrl1_r(void)
54{
55 return 0x0014046c;
56}
53static inline u32 ltc_ltc0_lts0_dstg_cfg0_r(void) 57static inline u32 ltc_ltc0_lts0_dstg_cfg0_r(void)
54{ 58{
55 return 0x00140518; 59 return 0x00140518;
diff --git a/drivers/gpu/nvgpu/gm20b/hw_mc_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_mc_gm20b.h
index 1b741677..96e21899 100644
--- a/drivers/gpu/nvgpu/gm20b/hw_mc_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/hw_mc_gm20b.h
@@ -50,31 +50,47 @@
50#ifndef _hw_mc_gm20b_h_ 50#ifndef _hw_mc_gm20b_h_
51#define _hw_mc_gm20b_h_ 51#define _hw_mc_gm20b_h_
52 52
53static inline u32 mc_intr_0_r(void) 53static inline u32 mc_boot_0_r(void)
54{ 54{
55 return 0x00000100; 55 return 0x00000000;
56} 56}
57static inline u32 mc_intr_0_pfifo_pending_f(void) 57static inline u32 mc_boot_0_architecture_v(u32 r)
58{ 58{
59 return 0x100; 59 return (r >> 24) & 0x1f;
60} 60}
61static inline u32 mc_intr_0_pgraph_pending_f(void) 61static inline u32 mc_boot_0_implementation_v(u32 r)
62{ 62{
63 return 0x1000; 63 return (r >> 20) & 0xf;
64}
65static inline u32 mc_boot_0_major_revision_v(u32 r)
66{
67 return (r >> 4) & 0xf;
68}
69static inline u32 mc_boot_0_minor_revision_v(u32 r)
70{
71 return (r >> 0) & 0xf;
64} 72}
65static inline u32 mc_intr_0_pmu_pending_f(void) 73static inline u32 mc_intr_r(u32 i)
74{
75 return 0x00000100 + i*4;
76}
77static inline u32 mc_intr_pfifo_pending_f(void)
78{
79 return 0x100;
80}
81static inline u32 mc_intr_pmu_pending_f(void)
66{ 82{
67 return 0x1000000; 83 return 0x1000000;
68} 84}
69static inline u32 mc_intr_0_ltc_pending_f(void) 85static inline u32 mc_intr_ltc_pending_f(void)
70{ 86{
71 return 0x2000000; 87 return 0x2000000;
72} 88}
73static inline u32 mc_intr_0_priv_ring_pending_f(void) 89static inline u32 mc_intr_priv_ring_pending_f(void)
74{ 90{
75 return 0x40000000; 91 return 0x40000000;
76} 92}
77static inline u32 mc_intr_0_pbus_pending_f(void) 93static inline u32 mc_intr_pbus_pending_f(void)
78{ 94{
79 return 0x10000000; 95 return 0x10000000;
80} 96}
@@ -98,6 +114,30 @@ static inline u32 mc_intr_en_0_inta_hardware_f(void)
98{ 114{
99 return 0x1; 115 return 0x1;
100} 116}
117static inline u32 mc_intr_mask_1_r(void)
118{
119 return 0x00000644;
120}
121static inline u32 mc_intr_mask_1_pmu_s(void)
122{
123 return 1;
124}
125static inline u32 mc_intr_mask_1_pmu_f(u32 v)
126{
127 return (v & 0x1) << 24;
128}
129static inline u32 mc_intr_mask_1_pmu_m(void)
130{
131 return 0x1 << 24;
132}
133static inline u32 mc_intr_mask_1_pmu_v(u32 r)
134{
135 return (r >> 24) & 0x1;
136}
137static inline u32 mc_intr_mask_1_pmu_enabled_f(void)
138{
139 return 0x1000000;
140}
101static inline u32 mc_intr_en_1_r(void) 141static inline u32 mc_intr_en_1_r(void)
102{ 142{
103 return 0x00000144; 143 return 0x00000144;
@@ -106,6 +146,10 @@ static inline u32 mc_intr_en_1_inta_disabled_f(void)
106{ 146{
107 return 0x0; 147 return 0x0;
108} 148}
149static inline u32 mc_intr_en_1_inta_hardware_f(void)
150{
151 return 0x1;
152}
109static inline u32 mc_enable_r(void) 153static inline u32 mc_enable_r(void)
110{ 154{
111 return 0x00000200; 155 return 0x00000200;
diff --git a/drivers/gpu/nvgpu/gm20b/hw_pbdma_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_pbdma_gm20b.h
index c64184cb..7b25d4af 100644
--- a/drivers/gpu/nvgpu/gm20b/hw_pbdma_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/hw_pbdma_gm20b.h
@@ -174,6 +174,10 @@ static inline u32 pbdma_pb_header_type_inc_f(void)
174{ 174{
175 return 0x20000000; 175 return 0x20000000;
176} 176}
177static inline u32 pbdma_hdr_shadow_r(u32 i)
178{
179 return 0x00040118 + i*8192;
180}
177static inline u32 pbdma_subdevice_r(u32 i) 181static inline u32 pbdma_subdevice_r(u32 i)
178{ 182{
179 return 0x00040094 + i*8192; 183 return 0x00040094 + i*8192;
@@ -466,4 +470,20 @@ static inline u32 pbdma_syncpointb_syncpt_index_v(u32 r)
466{ 470{
467 return (r >> 8) & 0xff; 471 return (r >> 8) & 0xff;
468} 472}
473static inline u32 pbdma_runlist_timeslice_r(u32 i)
474{
475 return 0x000400f8 + i*8192;
476}
477static inline u32 pbdma_runlist_timeslice_timeout_128_f(void)
478{
479 return 0x80;
480}
481static inline u32 pbdma_runlist_timeslice_timescale_3_f(void)
482{
483 return 0x3000;
484}
485static inline u32 pbdma_runlist_timeslice_enable_true_f(void)
486{
487 return 0x10000000;
488}
469#endif 489#endif
diff --git a/drivers/gpu/nvgpu/gm20b/hw_pwr_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_pwr_gm20b.h
index 384a9ab5..7f1814f0 100644
--- a/drivers/gpu/nvgpu/gm20b/hw_pwr_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/hw_pwr_gm20b.h
@@ -378,6 +378,18 @@ static inline u32 pwr_falcon_bootvec_vec_f(u32 v)
378{ 378{
379 return (v & 0xffffffff) << 0; 379 return (v & 0xffffffff) << 0;
380} 380}
381static inline u32 pwr_falcon_dmactl_r(void)
382{
383 return 0x0010a10c;
384}
385static inline u32 pwr_falcon_dmactl_dmem_scrubbing_m(void)
386{
387 return 0x1 << 1;
388}
389static inline u32 pwr_falcon_dmactl_imem_scrubbing_m(void)
390{
391 return 0x1 << 2;
392}
381static inline u32 pwr_falcon_hwcfg_r(void) 393static inline u32 pwr_falcon_hwcfg_r(void)
382{ 394{
383 return 0x0010a108; 395 return 0x0010a108;
diff --git a/drivers/gpu/nvgpu/gm20b/hw_ram_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_ram_gm20b.h
index 2e1df1d4..a05f1c2b 100644
--- a/drivers/gpu/nvgpu/gm20b/hw_ram_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/hw_ram_gm20b.h
@@ -338,7 +338,7 @@ static inline u32 ram_fc_chid_id_w(void)
338{ 338{
339 return 0; 339 return 0;
340} 340}
341static inline u32 ram_fc_pb_timeslice_w(void) 341static inline u32 ram_fc_runlist_timeslice_w(void)
342{ 342{
343 return 62; 343 return 62;
344} 344}
@@ -402,4 +402,44 @@ static inline u32 ram_rl_entry_size_v(void)
402{ 402{
403 return 0x00000008; 403 return 0x00000008;
404} 404}
405static inline u32 ram_rl_entry_chid_f(u32 v)
406{
407 return (v & 0xfff) << 0;
408}
409static inline u32 ram_rl_entry_id_f(u32 v)
410{
411 return (v & 0xfff) << 0;
412}
413static inline u32 ram_rl_entry_type_f(u32 v)
414{
415 return (v & 0x1) << 13;
416}
417static inline u32 ram_rl_entry_type_chid_f(void)
418{
419 return 0x0;
420}
421static inline u32 ram_rl_entry_type_tsg_f(void)
422{
423 return 0x2000;
424}
425static inline u32 ram_rl_entry_timeslice_scale_f(u32 v)
426{
427 return (v & 0xf) << 14;
428}
429static inline u32 ram_rl_entry_timeslice_scale_3_f(void)
430{
431 return 0xc000;
432}
433static inline u32 ram_rl_entry_timeslice_timeout_f(u32 v)
434{
435 return (v & 0xff) << 18;
436}
437static inline u32 ram_rl_entry_timeslice_timeout_128_f(void)
438{
439 return 0x2000000;
440}
441static inline u32 ram_rl_entry_tsg_length_f(u32 v)
442{
443 return (v & 0x3f) << 26;
444}
405#endif 445#endif
diff --git a/drivers/gpu/nvgpu/gm20b/hw_therm_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_therm_gm20b.h
index 09bd5830..d928d70e 100644
--- a/drivers/gpu/nvgpu/gm20b/hw_therm_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/hw_therm_gm20b.h
@@ -66,66 +66,10 @@ static inline u32 therm_evt_ext_therm_2_r(void)
66{ 66{
67 return 0x00020708; 67 return 0x00020708;
68} 68}
69static inline u32 therm_evt_ba_w0_t1h_r(void)
70{
71 return 0x00020750;
72}
73static inline u32 therm_weight_1_r(void) 69static inline u32 therm_weight_1_r(void)
74{ 70{
75 return 0x00020024; 71 return 0x00020024;
76} 72}
77static inline u32 therm_peakpower_config1_r(u32 i)
78{
79 return 0x00020154 + i*4;
80}
81static inline u32 therm_peakpower_config1_window_period_2m_v(void)
82{
83 return 0x0000000f;
84}
85static inline u32 therm_peakpower_config1_window_period_2m_f(void)
86{
87 return 0xf;
88}
89static inline u32 therm_peakpower_config1_window_en_enabled_f(void)
90{
91 return 0x80000000;
92}
93static inline u32 therm_peakpower_config8_r(u32 i)
94{
95 return 0x000202e8 + i*4;
96}
97static inline u32 therm_peakpower_config8_ba_sum_shift_s(void)
98{
99 return 5;
100}
101static inline u32 therm_peakpower_config8_ba_sum_shift_f(u32 v)
102{
103 return (v & 0x1f) << 8;
104}
105static inline u32 therm_peakpower_config8_ba_sum_shift_m(void)
106{
107 return 0x1f << 8;
108}
109static inline u32 therm_peakpower_config8_ba_sum_shift_v(u32 r)
110{
111 return (r >> 8) & 0x1f;
112}
113static inline u32 therm_peakpower_config2_r(u32 i)
114{
115 return 0x00020170 + i*4;
116}
117static inline u32 therm_peakpower_config4_r(u32 i)
118{
119 return 0x000201c0 + i*4;
120}
121static inline u32 therm_peakpower_config6_r(u32 i)
122{
123 return 0x00020270 + i*4;
124}
125static inline u32 therm_peakpower_config9_r(u32 i)
126{
127 return 0x000202f4 + i*4;
128}
129static inline u32 therm_config1_r(void) 73static inline u32 therm_config1_r(void)
130{ 74{
131 return 0x00020050; 75 return 0x00020050;