summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
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/gk20a
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/gk20a')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c12
-rw-r--r--drivers/gpu/nvgpu/gk20a/hw_chiplet_pwr_gk20a.h85
-rw-r--r--drivers/gpu/nvgpu/gk20a/hw_fb_gk20a.h4
-rw-r--r--drivers/gpu/nvgpu/gk20a/hw_fifo_gk20a.h8
-rw-r--r--drivers/gpu/nvgpu/gk20a/hw_gmmu_gk20a.h6
-rw-r--r--drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h64
-rw-r--r--drivers/gpu/nvgpu/gk20a/hw_ltc_gk20a.h194
-rw-r--r--drivers/gpu/nvgpu/gk20a/hw_pwr_gk20a.h36
-rw-r--r--drivers/gpu/nvgpu/gk20a/hw_ram_gk20a.h2
-rw-r--r--drivers/gpu/nvgpu/gk20a/hw_therm_gk20a.h82
-rw-r--r--drivers/gpu/nvgpu/gk20a/hw_trim_gk20a.h10
-rw-r--r--drivers/gpu/nvgpu/gk20a/therm_gk20a.c73
12 files changed, 279 insertions, 297 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
index 58dde415..9f2e0017 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
@@ -186,9 +186,9 @@ static int channel_gk20a_set_schedule_params(struct channel_gk20a *c,
186 } 186 }
187 187
188 /* set new timeslice */ 188 /* set new timeslice */
189 gk20a_mem_wr32(inst_ptr, ram_fc_eng_timeslice_w(), 189 gk20a_mem_wr32(inst_ptr, ram_fc_runlist_timeslice_w(),
190 value | (shift << 12) | 190 value | (shift << 12) |
191 fifo_eng_timeslice_enable_true_f()); 191 fifo_runlist_timeslice_enable_true_f());
192 192
193 /* enable channel */ 193 /* enable channel */
194 gk20a_writel(c->g, ccsr_channel_r(c->hw_chid), 194 gk20a_writel(c->g, ccsr_channel_r(c->hw_chid),
@@ -249,10 +249,10 @@ int channel_gk20a_setup_ramfc(struct channel_gk20a *c,
249 pbdma_acquire_timeout_man_max_f() | 249 pbdma_acquire_timeout_man_max_f() |
250 pbdma_acquire_timeout_en_disable_f()); 250 pbdma_acquire_timeout_en_disable_f());
251 251
252 gk20a_mem_wr32(inst_ptr, ram_fc_eng_timeslice_w(), 252 gk20a_mem_wr32(inst_ptr, ram_fc_runlist_timeslice_w(),
253 fifo_eng_timeslice_timeout_128_f() | 253 fifo_runlist_timeslice_timeout_128_f() |
254 fifo_eng_timeslice_timescale_3_f() | 254 fifo_runlist_timeslice_timescale_3_f() |
255 fifo_eng_timeslice_enable_true_f()); 255 fifo_runlist_timeslice_enable_true_f());
256 256
257 gk20a_mem_wr32(inst_ptr, ram_fc_pb_timeslice_w(), 257 gk20a_mem_wr32(inst_ptr, ram_fc_pb_timeslice_w(),
258 fifo_pb_timeslice_timeout_16_f() | 258 fifo_pb_timeslice_timeout_16_f() |
diff --git a/drivers/gpu/nvgpu/gk20a/hw_chiplet_pwr_gk20a.h b/drivers/gpu/nvgpu/gk20a/hw_chiplet_pwr_gk20a.h
deleted file mode 100644
index 66bf01b0..00000000
--- a/drivers/gpu/nvgpu/gk20a/hw_chiplet_pwr_gk20a.h
+++ /dev/null
@@ -1,85 +0,0 @@
1/*
2 * Copyright (c) 2012-2013, 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_gk20a_h_
51#define _hw_chiplet_pwr_gk20a_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/gk20a/hw_fb_gk20a.h b/drivers/gpu/nvgpu/gk20a/hw_fb_gk20a.h
index 1c50d0d5..6b8b6718 100644
--- a/drivers/gpu/nvgpu/gk20a/hw_fb_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/hw_fb_gk20a.h
@@ -62,6 +62,10 @@ static inline u32 fb_mmu_ctrl_vm_pg_size_128kb_f(void)
62{ 62{
63 return 0x0; 63 return 0x0;
64} 64}
65static inline u32 fb_mmu_ctrl_vm_pg_size_64kb_f(void)
66{
67 return 0x1;
68}
65static inline u32 fb_mmu_ctrl_pri_fifo_empty_v(u32 r) 69static inline u32 fb_mmu_ctrl_pri_fifo_empty_v(u32 r)
66{ 70{
67 return (r >> 15) & 0x1; 71 return (r >> 15) & 0x1;
diff --git a/drivers/gpu/nvgpu/gk20a/hw_fifo_gk20a.h b/drivers/gpu/nvgpu/gk20a/hw_fifo_gk20a.h
index f549bac4..757ae3f0 100644
--- a/drivers/gpu/nvgpu/gk20a/hw_fifo_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/hw_fifo_gk20a.h
@@ -114,19 +114,19 @@ static inline u32 fifo_eng_runlist_pending_true_f(void)
114{ 114{
115 return 0x100000; 115 return 0x100000;
116} 116}
117static inline u32 fifo_eng_timeslice_r(u32 i) 117static inline u32 fifo_runlist_timeslice_r(u32 i)
118{ 118{
119 return 0x00002310 + i*4; 119 return 0x00002310 + i*4;
120} 120}
121static inline u32 fifo_eng_timeslice_timeout_128_f(void) 121static inline u32 fifo_runlist_timeslice_timeout_128_f(void)
122{ 122{
123 return 0x80; 123 return 0x80;
124} 124}
125static inline u32 fifo_eng_timeslice_timescale_3_f(void) 125static inline u32 fifo_runlist_timeslice_timescale_3_f(void)
126{ 126{
127 return 0x3000; 127 return 0x3000;
128} 128}
129static inline u32 fifo_eng_timeslice_enable_true_f(void) 129static inline u32 fifo_runlist_timeslice_enable_true_f(void)
130{ 130{
131 return 0x10000000; 131 return 0x10000000;
132} 132}
diff --git a/drivers/gpu/nvgpu/gk20a/hw_gmmu_gk20a.h b/drivers/gpu/nvgpu/gk20a/hw_gmmu_gk20a.h
index e0118946..45ae59d6 100644
--- a/drivers/gpu/nvgpu/gk20a/hw_gmmu_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/hw_gmmu_gk20a.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2012-2013, NVIDIA CORPORATION. All rights reserved. 2 * Copyright (c) 2012-2014, NVIDIA CORPORATION. All rights reserved.
3 * 3 *
4 * This program is free software; you can redistribute it and/or modify it 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, 5 * under the terms and conditions of the GNU General Public License,
@@ -142,6 +142,10 @@ static inline u32 gmmu_pte_valid_true_f(void)
142{ 142{
143 return 0x1; 143 return 0x1;
144} 144}
145static inline u32 gmmu_pte_valid_false_f(void)
146{
147 return 0x0;
148}
145static inline u32 gmmu_pte_address_sys_f(u32 v) 149static inline u32 gmmu_pte_address_sys_f(u32 v)
146{ 150{
147 return (v & 0xfffffff) << 4; 151 return (v & 0xfffffff) << 4;
diff --git a/drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h b/drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h
index f18e19be..463443d6 100644
--- a/drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h
@@ -2618,30 +2618,6 @@ static inline u32 gr_gpcs_tpcs_pe_pin_cb_global_base_addr_valid_true_f(void)
2618{ 2618{
2619 return 0x10000000; 2619 return 0x10000000;
2620} 2620}
2621static inline u32 gr_gpcs_tpcs_l1c_pm_r(void)
2622{
2623 return 0x00419ca8;
2624}
2625static inline u32 gr_gpcs_tpcs_l1c_pm_enable_m(void)
2626{
2627 return 0x1 << 31;
2628}
2629static inline u32 gr_gpcs_tpcs_l1c_pm_enable_enable_f(void)
2630{
2631 return 0x80000000;
2632}
2633static inline u32 gr_gpcs_tpcs_l1c_cfg_r(void)
2634{
2635 return 0x00419cb8;
2636}
2637static inline u32 gr_gpcs_tpcs_l1c_cfg_blkactivity_enable_m(void)
2638{
2639 return 0x1 << 31;
2640}
2641static inline u32 gr_gpcs_tpcs_l1c_cfg_blkactivity_enable_enable_f(void)
2642{
2643 return 0x80000000;
2644}
2645static inline u32 gr_gpcs_tpcs_mpc_vtg_debug_r(void) 2621static inline u32 gr_gpcs_tpcs_mpc_vtg_debug_r(void)
2646{ 2622{
2647 return 0x00419c00; 2623 return 0x00419c00;
@@ -2654,26 +2630,6 @@ static inline u32 gr_gpcs_tpcs_mpc_vtg_debug_timeslice_mode_enabled_f(void)
2654{ 2630{
2655 return 0x8; 2631 return 0x8;
2656} 2632}
2657static inline u32 gr_gpcs_tpcs_sm_pm_ctrl_r(void)
2658{
2659 return 0x00419e00;
2660}
2661static inline u32 gr_gpcs_tpcs_sm_pm_ctrl_core_enable_m(void)
2662{
2663 return 0x1 << 7;
2664}
2665static inline u32 gr_gpcs_tpcs_sm_pm_ctrl_core_enable_enable_f(void)
2666{
2667 return 0x80;
2668}
2669static inline u32 gr_gpcs_tpcs_sm_pm_ctrl_qctl_enable_m(void)
2670{
2671 return 0x1 << 15;
2672}
2673static inline u32 gr_gpcs_tpcs_sm_pm_ctrl_qctl_enable_enable_f(void)
2674{
2675 return 0x8000;
2676}
2677static inline u32 gr_gpcs_tpcs_sm_hww_warp_esr_report_mask_r(void) 2633static inline u32 gr_gpcs_tpcs_sm_hww_warp_esr_report_mask_r(void)
2678{ 2634{
2679 return 0x00419e44; 2635 return 0x00419e44;
@@ -2906,14 +2862,6 @@ static inline u32 gr_gpcs_tpcs_sm_halfctl_ctrl_r(void)
2906{ 2862{
2907 return 0x00419f70; 2863 return 0x00419f70;
2908} 2864}
2909static inline u32 gr_gpcs_tpcs_sm_halfctl_ctrl_sctl_blkactivity_enable_m(void)
2910{
2911 return 0x1 << 1;
2912}
2913static inline u32 gr_gpcs_tpcs_sm_halfctl_ctrl_sctl_blkactivity_enable_enable_f(void)
2914{
2915 return 0x2;
2916}
2917static inline u32 gr_gpcs_tpcs_sm_halfctl_ctrl_sctl_read_quad_ctl_m(void) 2865static inline u32 gr_gpcs_tpcs_sm_halfctl_ctrl_sctl_read_quad_ctl_m(void)
2918{ 2866{
2919 return 0x1 << 4; 2867 return 0x1 << 4;
@@ -2938,18 +2886,6 @@ static inline u32 gr_gpcs_tpcs_sm_debug_sfe_control_read_half_ctl_f(u32 v)
2938{ 2886{
2939 return (v & 0x1) << 0; 2887 return (v & 0x1) << 0;
2940} 2888}
2941static inline u32 gr_gpcs_tpcs_sm_debug_sfe_control_blkactivity_enable_m(void)
2942{
2943 return 0x1 << 16;
2944}
2945static inline u32 gr_gpcs_tpcs_sm_debug_sfe_control_blkactivity_enable_enable_f(void)
2946{
2947 return 0x10000;
2948}
2949static inline u32 gr_gpcs_tpcs_sm_power_throttle_r(void)
2950{
2951 return 0x00419ed0;
2952}
2953static inline u32 gr_gpcs_tpcs_pes_vsc_vpc_r(void) 2889static inline u32 gr_gpcs_tpcs_pes_vsc_vpc_r(void)
2954{ 2890{
2955 return 0x0041be08; 2891 return 0x0041be08;
diff --git a/drivers/gpu/nvgpu/gk20a/hw_ltc_gk20a.h b/drivers/gpu/nvgpu/gk20a/hw_ltc_gk20a.h
index f60b34e2..6db5654b 100644
--- a/drivers/gpu/nvgpu/gk20a/hw_ltc_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/hw_ltc_gk20a.h
@@ -54,6 +54,14 @@ static inline u32 ltc_ltcs_lts0_cbc_ctrl1_r(void)
54{ 54{
55 return 0x001410c8; 55 return 0x001410c8;
56} 56}
57static inline u32 ltc_ltc0_lts0_dstg_cfg0_r(void)
58{
59 return 0x00141200;
60}
61static inline u32 ltc_ltcs_ltss_dstg_cfg0_r(void)
62{
63 return 0x0017ea00;
64}
57static inline u32 ltc_ltc0_lts0_tstg_cfg1_r(void) 65static inline u32 ltc_ltc0_lts0_tstg_cfg1_r(void)
58{ 66{
59 return 0x00141104; 67 return 0x00141104;
@@ -104,7 +112,7 @@ static inline u32 ltc_ltcs_ltss_cbc_ctrl1_clear_active_f(void)
104} 112}
105static inline u32 ltc_ltc0_lts0_cbc_ctrl1_r(void) 113static inline u32 ltc_ltc0_lts0_cbc_ctrl1_r(void)
106{ 114{
107 return 0x0017e8c8; 115 return 0x001410c8;
108} 116}
109static inline u32 ltc_ltcs_ltss_cbc_ctrl2_r(void) 117static inline u32 ltc_ltcs_ltss_cbc_ctrl2_r(void)
110{ 118{
@@ -242,4 +250,188 @@ static inline u32 ltc_ltc0_ltss_intr_r(void)
242{ 250{
243 return 0x00140820; 251 return 0x00140820;
244} 252}
253static inline u32 ltc_ltcs_ltss_intr_r(void)
254{
255 return 0x0017e820;
256}
257static inline u32 ltc_ltcs_ltss_intr_en_evicted_cb_m(void)
258{
259 return 0x1 << 20;
260}
261static inline u32 ltc_ltc0_lts0_intr_r(void)
262{
263 return 0x00141020;
264}
265static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_r(void)
266{
267 return 0x0017e910;
268}
269static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_invalidate_v(u32 r)
270{
271 return (r >> 0) & 0x1;
272}
273static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_invalidate_pending_v(void)
274{
275 return 0x00000001;
276}
277static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_invalidate_pending_f(void)
278{
279 return 0x1;
280}
281static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_max_cycles_between_invalidates_v(u32 r)
282{
283 return (r >> 8) & 0xf;
284}
285static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_max_cycles_between_invalidates_3_v(void)
286{
287 return 0x00000003;
288}
289static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_max_cycles_between_invalidates_3_f(void)
290{
291 return 0x300;
292}
293static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_invalidate_evict_last_class_v(u32 r)
294{
295 return (r >> 28) & 0x1;
296}
297static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_invalidate_evict_last_class_true_v(void)
298{
299 return 0x00000001;
300}
301static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_invalidate_evict_last_class_true_f(void)
302{
303 return 0x10000000;
304}
305static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_invalidate_evict_normal_class_v(u32 r)
306{
307 return (r >> 29) & 0x1;
308}
309static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_invalidate_evict_normal_class_true_v(void)
310{
311 return 0x00000001;
312}
313static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_invalidate_evict_normal_class_true_f(void)
314{
315 return 0x20000000;
316}
317static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_invalidate_evict_first_class_v(u32 r)
318{
319 return (r >> 30) & 0x1;
320}
321static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_invalidate_evict_first_class_true_v(void)
322{
323 return 0x00000001;
324}
325static inline u32 ltc_ltcs_ltss_tstg_cmgmt0_invalidate_evict_first_class_true_f(void)
326{
327 return 0x40000000;
328}
329static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_r(void)
330{
331 return 0x0017e914;
332}
333static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_clean_v(u32 r)
334{
335 return (r >> 0) & 0x1;
336}
337static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_clean_pending_v(void)
338{
339 return 0x00000001;
340}
341static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_clean_pending_f(void)
342{
343 return 0x1;
344}
345static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_max_cycles_between_cleans_v(u32 r)
346{
347 return (r >> 8) & 0xf;
348}
349static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_max_cycles_between_cleans_3_v(void)
350{
351 return 0x00000003;
352}
353static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_max_cycles_between_cleans_3_f(void)
354{
355 return 0x300;
356}
357static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_clean_wait_for_fb_to_pull_v(u32 r)
358{
359 return (r >> 16) & 0x1;
360}
361static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_clean_wait_for_fb_to_pull_true_v(void)
362{
363 return 0x00000001;
364}
365static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_clean_wait_for_fb_to_pull_true_f(void)
366{
367 return 0x10000;
368}
369static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_clean_evict_last_class_v(u32 r)
370{
371 return (r >> 28) & 0x1;
372}
373static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_clean_evict_last_class_true_v(void)
374{
375 return 0x00000001;
376}
377static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_clean_evict_last_class_true_f(void)
378{
379 return 0x10000000;
380}
381static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_clean_evict_normal_class_v(u32 r)
382{
383 return (r >> 29) & 0x1;
384}
385static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_clean_evict_normal_class_true_v(void)
386{
387 return 0x00000001;
388}
389static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_clean_evict_normal_class_true_f(void)
390{
391 return 0x20000000;
392}
393static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_clean_evict_first_class_v(u32 r)
394{
395 return (r >> 30) & 0x1;
396}
397static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_clean_evict_first_class_true_v(void)
398{
399 return 0x00000001;
400}
401static inline u32 ltc_ltcs_ltss_tstg_cmgmt1_clean_evict_first_class_true_f(void)
402{
403 return 0x40000000;
404}
405static inline u32 ltc_ltc0_ltss_tstg_cmgmt0_r(void)
406{
407 return 0x00140910;
408}
409static inline u32 ltc_ltc0_ltss_tstg_cmgmt0_invalidate_v(u32 r)
410{
411 return (r >> 0) & 0x1;
412}
413static inline u32 ltc_ltc0_ltss_tstg_cmgmt0_invalidate_pending_v(void)
414{
415 return 0x00000001;
416}
417static inline u32 ltc_ltc0_ltss_tstg_cmgmt0_invalidate_pending_f(void)
418{
419 return 0x1;
420}
421static inline u32 ltc_ltc0_ltss_tstg_cmgmt1_r(void)
422{
423 return 0x00140914;
424}
425static inline u32 ltc_ltc0_ltss_tstg_cmgmt1_clean_v(u32 r)
426{
427 return (r >> 0) & 0x1;
428}
429static inline u32 ltc_ltc0_ltss_tstg_cmgmt1_clean_pending_v(void)
430{
431 return 0x00000001;
432}
433static inline u32 ltc_ltc0_ltss_tstg_cmgmt1_clean_pending_f(void)
434{
435 return 0x1;
436}
245#endif 437#endif
diff --git a/drivers/gpu/nvgpu/gk20a/hw_pwr_gk20a.h b/drivers/gpu/nvgpu/gk20a/hw_pwr_gk20a.h
index d7d26b80..35312bd4 100644
--- a/drivers/gpu/nvgpu/gk20a/hw_pwr_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/hw_pwr_gk20a.h
@@ -290,6 +290,42 @@ static inline u32 pwr_falcon_cpuctl_startcpu_f(u32 v)
290{ 290{
291 return (v & 0x1) << 1; 291 return (v & 0x1) << 1;
292} 292}
293static inline u32 pwr_falcon_cpuctl_halt_intr_f(u32 v)
294{
295 return (v & 0x1) << 4;
296}
297static inline u32 pwr_falcon_cpuctl_halt_intr_m(void)
298{
299 return 0x1 << 4;
300}
301static inline u32 pwr_falcon_cpuctl_halt_intr_v(u32 r)
302{
303 return (r >> 4) & 0x1;
304}
305static inline u32 pwr_falcon_imemc_r(u32 i)
306{
307 return 0x0010a180 + i*16;
308}
309static inline u32 pwr_falcon_imemc_offs_f(u32 v)
310{
311 return (v & 0x3f) << 2;
312}
313static inline u32 pwr_falcon_imemc_blk_f(u32 v)
314{
315 return (v & 0xff) << 8;
316}
317static inline u32 pwr_falcon_imemc_aincw_f(u32 v)
318{
319 return (v & 0x1) << 24;
320}
321static inline u32 pwr_falcon_imemd_r(u32 i)
322{
323 return 0x0010a184 + i*16;
324}
325static inline u32 pwr_falcon_imemt_r(u32 i)
326{
327 return 0x0010a188 + i*16;
328}
293static inline u32 pwr_falcon_bootvec_r(void) 329static inline u32 pwr_falcon_bootvec_r(void)
294{ 330{
295 return 0x0010a104; 331 return 0x0010a104;
diff --git a/drivers/gpu/nvgpu/gk20a/hw_ram_gk20a.h b/drivers/gpu/nvgpu/gk20a/hw_ram_gk20a.h
index a039685e..0f4f6726 100644
--- a/drivers/gpu/nvgpu/gk20a/hw_ram_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/hw_ram_gk20a.h
@@ -318,7 +318,7 @@ static inline u32 ram_fc_chid_id_w(void)
318{ 318{
319 return 0; 319 return 0;
320} 320}
321static inline u32 ram_fc_eng_timeslice_w(void) 321static inline u32 ram_fc_runlist_timeslice_w(void)
322{ 322{
323 return 62; 323 return 62;
324} 324}
diff --git a/drivers/gpu/nvgpu/gk20a/hw_therm_gk20a.h b/drivers/gpu/nvgpu/gk20a/hw_therm_gk20a.h
index 5d6397b4..42a31c5d 100644
--- a/drivers/gpu/nvgpu/gk20a/hw_therm_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/hw_therm_gk20a.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2012-2013, NVIDIA CORPORATION. All rights reserved. 2 * Copyright (c) 2012-2014, NVIDIA CORPORATION. All rights reserved.
3 * 3 *
4 * This program is free software; you can redistribute it and/or modify it 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, 5 * under the terms and conditions of the GNU General Public License,
@@ -66,70 +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_ba_sum_shift_s(void)
90{
91 return 6;
92}
93static inline u32 therm_peakpower_config1_ba_sum_shift_f(u32 v)
94{
95 return (v & 0x3f) << 8;
96}
97static inline u32 therm_peakpower_config1_ba_sum_shift_m(void)
98{
99 return 0x3f << 8;
100}
101static inline u32 therm_peakpower_config1_ba_sum_shift_v(u32 r)
102{
103 return (r >> 8) & 0x3f;
104}
105static inline u32 therm_peakpower_config1_ba_sum_shift_20_f(void)
106{
107 return 0x1400;
108}
109static inline u32 therm_peakpower_config1_window_en_enabled_f(void)
110{
111 return 0x80000000;
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_config8_r(u32 i)
126{
127 return 0x000202e8 + i*4;
128}
129static inline u32 therm_peakpower_config9_r(u32 i)
130{
131 return 0x000202f4 + i*4;
132}
133static inline u32 therm_config1_r(void) 73static inline u32 therm_config1_r(void)
134{ 74{
135 return 0x00020050; 75 return 0x00020050;
@@ -222,4 +162,24 @@ static inline u32 therm_hubmmu_idle_filter_value_m(void)
222{ 162{
223 return 0xffffffff << 0; 163 return 0xffffffff << 0;
224} 164}
165static inline u32 therm_clk_slowdown_r(u32 i)
166{
167 return 0x00020160 + i*4;
168}
169static inline u32 therm_clk_slowdown_idle_factor_f(u32 v)
170{
171 return (v & 0x3f) << 16;
172}
173static inline u32 therm_clk_slowdown_idle_factor_m(void)
174{
175 return 0x3f << 16;
176}
177static inline u32 therm_clk_slowdown_idle_factor_v(u32 r)
178{
179 return (r >> 16) & 0x3f;
180}
181static inline u32 therm_clk_slowdown_idle_factor_disabled_f(void)
182{
183 return 0x0;
184}
225#endif 185#endif
diff --git a/drivers/gpu/nvgpu/gk20a/hw_trim_gk20a.h b/drivers/gpu/nvgpu/gk20a/hw_trim_gk20a.h
index 826e9bd1..3b0aa05b 100644
--- a/drivers/gpu/nvgpu/gk20a/hw_trim_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/hw_trim_gk20a.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2012-2013, NVIDIA CORPORATION. All rights reserved. 2 * Copyright (c) 2012-2014, NVIDIA CORPORATION. All rights reserved.
3 * 3 *
4 * This program is free software; you can redistribute it and/or modify it 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, 5 * under the terms and conditions of the GNU General Public License,
@@ -110,6 +110,10 @@ static inline u32 trim_sys_gpcpll_coeff_mdiv_f(u32 v)
110{ 110{
111 return (v & 0xff) << 0; 111 return (v & 0xff) << 0;
112} 112}
113static inline u32 trim_sys_gpcpll_coeff_mdiv_m(void)
114{
115 return 0xff << 0;
116}
113static inline u32 trim_sys_gpcpll_coeff_mdiv_v(u32 r) 117static inline u32 trim_sys_gpcpll_coeff_mdiv_v(u32 r)
114{ 118{
115 return (r >> 0) & 0xff; 119 return (r >> 0) & 0xff;
@@ -130,6 +134,10 @@ static inline u32 trim_sys_gpcpll_coeff_pldiv_f(u32 v)
130{ 134{
131 return (v & 0x3f) << 16; 135 return (v & 0x3f) << 16;
132} 136}
137static inline u32 trim_sys_gpcpll_coeff_pldiv_m(void)
138{
139 return 0x3f << 16;
140}
133static inline u32 trim_sys_gpcpll_coeff_pldiv_v(u32 r) 141static inline u32 trim_sys_gpcpll_coeff_pldiv_v(u32 r)
134{ 142{
135 return (r >> 16) & 0x3f; 143 return (r >> 16) & 0x3f;
diff --git a/drivers/gpu/nvgpu/gk20a/therm_gk20a.c b/drivers/gpu/nvgpu/gk20a/therm_gk20a.c
index da911979..b02113ad 100644
--- a/drivers/gpu/nvgpu/gk20a/therm_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/therm_gk20a.c
@@ -20,7 +20,6 @@
20 */ 20 */
21 21
22#include "gk20a.h" 22#include "gk20a.h"
23#include "hw_chiplet_pwr_gk20a.h"
24#include "hw_gr_gk20a.h" 23#include "hw_gr_gk20a.h"
25#include "hw_therm_gk20a.h" 24#include "hw_therm_gk20a.h"
26 25
@@ -45,78 +44,6 @@ static int gk20a_init_therm_setup_hw(struct gk20a *g)
45 gk20a_writel(g, therm_evt_ext_therm_2_r(), 44 gk20a_writel(g, therm_evt_ext_therm_2_r(),
46 NV_THERM_EVT_EXT_THERM_2_INIT); 45 NV_THERM_EVT_EXT_THERM_2_INIT);
47 46
48/*
49 u32 data;
50
51 data = gk20a_readl(g, gr_gpcs_tpcs_l1c_cfg_r());
52 data = set_field(data, gr_gpcs_tpcs_l1c_cfg_blkactivity_enable_m(),
53 gr_gpcs_tpcs_l1c_cfg_blkactivity_enable_enable_f());
54 gk20a_writel(g, gr_gpcs_tpcs_l1c_cfg_r(), data);
55
56 data = gk20a_readl(g, gr_gpcs_tpcs_l1c_pm_r());
57 data = set_field(data, gr_gpcs_tpcs_l1c_pm_enable_m(),
58 gr_gpcs_tpcs_l1c_pm_enable_enable_f());
59 gk20a_writel(g, gr_gpcs_tpcs_l1c_pm_r(), data);
60
61 data = gk20a_readl(g, gr_gpcs_tpcs_sm_pm_ctrl_r());
62 data = set_field(data, gr_gpcs_tpcs_sm_pm_ctrl_core_enable_m(),
63 gr_gpcs_tpcs_sm_pm_ctrl_core_enable_enable_f());
64 data = set_field(data, gr_gpcs_tpcs_sm_pm_ctrl_qctl_enable_m(),
65 gr_gpcs_tpcs_sm_pm_ctrl_qctl_enable_enable_f());
66 gk20a_writel(g, gr_gpcs_tpcs_sm_pm_ctrl_r(), data);
67
68 data = gk20a_readl(g, gr_gpcs_tpcs_sm_halfctl_ctrl_r());
69 data = set_field(data, gr_gpcs_tpcs_sm_halfctl_ctrl_sctl_blkactivity_enable_m(),
70 gr_gpcs_tpcs_sm_halfctl_ctrl_sctl_blkactivity_enable_enable_f());
71 gk20a_writel(g, gr_gpcs_tpcs_sm_halfctl_ctrl_r(), data);
72
73 data = gk20a_readl(g, gr_gpcs_tpcs_sm_debug_sfe_control_r());
74 data = set_field(data, gr_gpcs_tpcs_sm_debug_sfe_control_blkactivity_enable_m(),
75 gr_gpcs_tpcs_sm_debug_sfe_control_blkactivity_enable_enable_f());
76 gk20a_writel(g, gr_gpcs_tpcs_sm_debug_sfe_control_r(), data);
77
78 gk20a_writel(g, therm_peakpower_config6_r(0),
79 therm_peakpower_config6_trigger_cfg_1h_intr_f() |
80 therm_peakpower_config6_trigger_cfg_1l_intr_f());
81
82 gk20a_writel(g, chiplet_pwr_gpcs_config_1_r(),
83 chiplet_pwr_gpcs_config_1_ba_enable_yes_f());
84 gk20a_writel(g, chiplet_pwr_fbps_config_1_r(),
85 chiplet_pwr_fbps_config_1_ba_enable_yes_f());
86
87 data = gk20a_readl(g, therm_config1_r());
88 data = set_field(data, therm_config1_ba_enable_m(),
89 therm_config1_ba_enable_yes_f());
90 gk20a_writel(g, therm_config1_r(), data);
91
92 gk20a_writel(g, gr_gpcs_tpcs_sm_power_throttle_r(), 0x441a);
93
94 gk20a_writel(g, therm_weight_1_r(), 0xd3);
95 gk20a_writel(g, chiplet_pwr_gpcs_weight_6_r(), 0x7d);
96 gk20a_writel(g, chiplet_pwr_gpcs_weight_7_r(), 0xff);
97 gk20a_writel(g, chiplet_pwr_fbps_weight_0_r(), 0x13000000);
98 gk20a_writel(g, chiplet_pwr_fbps_weight_1_r(), 0x19);
99
100 gk20a_writel(g, therm_peakpower_config8_r(0), 0x8);
101 gk20a_writel(g, therm_peakpower_config9_r(0), 0x0);
102
103 gk20a_writel(g, therm_evt_ba_w0_t1h_r(), 0x100);
104
105 gk20a_writel(g, therm_use_a_r(), therm_use_a_ba_w0_t1h_yes_f());
106
107 gk20a_writel(g, therm_peakpower_config1_r(0),
108 therm_peakpower_config1_window_period_2m_f() |
109 therm_peakpower_config1_ba_sum_shift_20_f() |
110 therm_peakpower_config1_window_en_enabled_f());
111
112 gk20a_writel(g, therm_peakpower_config2_r(0),
113 therm_peakpower_config2_ba_threshold_1h_val_f(1) |
114 therm_peakpower_config2_ba_threshold_1h_en_enabled_f());
115
116 gk20a_writel(g, therm_peakpower_config4_r(0),
117 therm_peakpower_config4_ba_threshold_1l_val_f(1) |
118 therm_peakpower_config4_ba_threshold_1l_en_enabled_f());
119*/
120 return 0; 47 return 0;
121} 48}
122 49