diff options
author | Sami Kiminki <skiminki@nvidia.com> | 2017-11-02 16:03:15 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-11-10 11:38:19 -0500 |
commit | cefabe7eb1f1f1dba9692e21ab4f1b88b9163489 (patch) | |
tree | b0f4e6ce64cd408e780925b8b3365b45805b7d95 /drivers/gpu/nvgpu/gp10b | |
parent | b584bf8aa814d026498ebcee23480d1963338e47 (diff) |
gpu: nvgpu: Remove PTE kind logic
Since NVGPU_AS_MAP_BUFFER_FLAGS_DIRECT_KIND_CTRL was made mandatory,
kernel does not need to know the details about the PTE kinds
anymore. Thus, we can remove the kind_gk20a.h header and the code
related to kind table setup, as well as simplify buffer mapping code
a bit.
Bug 1902982
Change-Id: Iaf798023c219a64fb0a84da09431c5ce4bc046eb
Signed-off-by: Sami Kiminki <skiminki@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1560933
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b')
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/fb_gp10b.c | 440 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/fb_gp10b.h | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/hal_gp10b.c | 3 |
3 files changed, 0 insertions, 445 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/fb_gp10b.c b/drivers/gpu/nvgpu/gp10b/fb_gp10b.c index a66476b9..9df4c851 100644 --- a/drivers/gpu/nvgpu/gp10b/fb_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/fb_gp10b.c | |||
@@ -23,448 +23,8 @@ | |||
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include "gk20a/gk20a.h" | 25 | #include "gk20a/gk20a.h" |
26 | #include "gm20b/fb_gm20b.h" | ||
27 | #include "gk20a/kind_gk20a.h" | ||
28 | #include "fb_gp10b.h" | 26 | #include "fb_gp10b.h" |
29 | 27 | ||
30 | #include <nvgpu/hw/gp10b/hw_gmmu_gp10b.h> | ||
31 | |||
32 | noinline_for_stack void gp10b_init_uncompressed_kind_map(void) | ||
33 | { | ||
34 | int i; | ||
35 | |||
36 | for (i = 0; i < 256; i++) | ||
37 | gk20a_uc_kind_map[i] = gmmu_pte_kind_invalid_v(); | ||
38 | |||
39 | /* From gp10b */ | ||
40 | gk20a_uc_kind_map[gmmu_pte_kind_z16_2cz_v()] = | ||
41 | gk20a_uc_kind_map[gmmu_pte_kind_z16_ms2_2cz_v()] = | ||
42 | gk20a_uc_kind_map[gmmu_pte_kind_z16_ms4_2cz_v()] = | ||
43 | gk20a_uc_kind_map[gmmu_pte_kind_z16_ms8_2cz_v()] = | ||
44 | gk20a_uc_kind_map[gmmu_pte_kind_z16_ms16_2cz_v()] = | ||
45 | gmmu_pte_kind_z16_v(); | ||
46 | |||
47 | gk20a_uc_kind_map[gmmu_pte_kind_c32_ms4_4cbra_v()] = | ||
48 | gk20a_uc_kind_map[gmmu_pte_kind_c64_ms4_4cbra_v()] = | ||
49 | gmmu_pte_kind_generic_16bx2_v(); | ||
50 | |||
51 | /* From gm20b */ | ||
52 | gk20a_uc_kind_map[gmmu_pte_kind_s8_v()] = | ||
53 | gk20a_uc_kind_map[gmmu_pte_kind_s8_2s_v()] = | ||
54 | gmmu_pte_kind_s8_v(); | ||
55 | |||
56 | /* From gk20a */ | ||
57 | gk20a_uc_kind_map[gmmu_pte_kind_z16_v()] = | ||
58 | gk20a_uc_kind_map[gmmu_pte_kind_z16_2c_v()] = | ||
59 | gk20a_uc_kind_map[gmmu_pte_kind_z16_ms2_2c_v()] = | ||
60 | gk20a_uc_kind_map[gmmu_pte_kind_z16_ms4_2c_v()] = | ||
61 | gk20a_uc_kind_map[gmmu_pte_kind_z16_ms8_2c_v()] = | ||
62 | gk20a_uc_kind_map[gmmu_pte_kind_z16_2z_v()] = | ||
63 | gk20a_uc_kind_map[gmmu_pte_kind_z16_ms2_2z_v()] = | ||
64 | gk20a_uc_kind_map[gmmu_pte_kind_z16_ms4_2z_v()] = | ||
65 | gk20a_uc_kind_map[gmmu_pte_kind_z16_ms8_2z_v()] = | ||
66 | gmmu_pte_kind_z16_v(); | ||
67 | |||
68 | gk20a_uc_kind_map[gmmu_pte_kind_s8z24_v()] = | ||
69 | gk20a_uc_kind_map[gmmu_pte_kind_s8z24_2cz_v()] = | ||
70 | gk20a_uc_kind_map[gmmu_pte_kind_s8z24_ms2_2cz_v()] = | ||
71 | gk20a_uc_kind_map[gmmu_pte_kind_s8z24_ms4_2cz_v()] = | ||
72 | gk20a_uc_kind_map[gmmu_pte_kind_s8z24_ms8_2cz_v()] = | ||
73 | gk20a_uc_kind_map[gmmu_pte_kind_s8z24_2cs_v()] = | ||
74 | gk20a_uc_kind_map[gmmu_pte_kind_s8z24_ms2_2cs_v()] = | ||
75 | gk20a_uc_kind_map[gmmu_pte_kind_s8z24_ms4_2cs_v()] = | ||
76 | gk20a_uc_kind_map[gmmu_pte_kind_s8z24_ms8_2cs_v()] = | ||
77 | gmmu_pte_kind_s8z24_v(); | ||
78 | |||
79 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc4_v()] = | ||
80 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc4_2cs_v()] = | ||
81 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc4_2czv_v()] = | ||
82 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc4_2zv_v()] = | ||
83 | gmmu_pte_kind_v8z24_ms4_vc4_v(); | ||
84 | |||
85 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc8_v()] = | ||
86 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc8_2cs_v()] = | ||
87 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc8_2czv_v()] = | ||
88 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc8_2zv_v()] = | ||
89 | gmmu_pte_kind_v8z24_ms8_vc8_v(); | ||
90 | |||
91 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc12_v()] = | ||
92 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc12_2cs_v()] = | ||
93 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc12_2czv_v()] = | ||
94 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc12_2zv_v()] = | ||
95 | gmmu_pte_kind_v8z24_ms4_vc12_v(); | ||
96 | |||
97 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc24_v()] = | ||
98 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc24_2cs_v()] = | ||
99 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc24_2czv_v()] = | ||
100 | gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc24_2zv_v()] = | ||
101 | gmmu_pte_kind_v8z24_ms8_vc24_v(); | ||
102 | |||
103 | gk20a_uc_kind_map[gmmu_pte_kind_z24s8_v()] = | ||
104 | gk20a_uc_kind_map[gmmu_pte_kind_z24s8_2cs_v()] = | ||
105 | gk20a_uc_kind_map[gmmu_pte_kind_z24s8_ms2_2cs_v()] = | ||
106 | gk20a_uc_kind_map[gmmu_pte_kind_z24s8_ms4_2cs_v()] = | ||
107 | gk20a_uc_kind_map[gmmu_pte_kind_z24s8_ms8_2cs_v()] = | ||
108 | gk20a_uc_kind_map[gmmu_pte_kind_z24s8_2cz_v()] = | ||
109 | gk20a_uc_kind_map[gmmu_pte_kind_z24s8_ms2_2cz_v()] = | ||
110 | gk20a_uc_kind_map[gmmu_pte_kind_z24s8_ms4_2cz_v()] = | ||
111 | gk20a_uc_kind_map[gmmu_pte_kind_z24s8_ms8_2cz_v()] = | ||
112 | gmmu_pte_kind_z24s8_v(); | ||
113 | |||
114 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_v()] = | ||
115 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_2cs_v()] = | ||
116 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_ms2_2cs_v()] = | ||
117 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_ms4_2cs_v()] = | ||
118 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_ms8_2cs_v()] = | ||
119 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_2cz_v()] = | ||
120 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_ms2_2cz_v()] = | ||
121 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_ms4_2cz_v()] = | ||
122 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_ms8_2cz_v()] = | ||
123 | gmmu_pte_kind_zf32_v(); | ||
124 | |||
125 | gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_v()] = | ||
126 | gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_2cs_v()] = | ||
127 | gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_2cszv_v()] = | ||
128 | gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_v(); | ||
129 | |||
130 | gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms4_vc4_v()] = | ||
131 | gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms4_vc4_2cs_v()] = | ||
132 | gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms4_vc4_2cszv_v()] = | ||
133 | gmmu_pte_kind_x8z24_x16v8s8_ms4_vc4_v(); | ||
134 | |||
135 | gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms8_vc8_v()] = | ||
136 | gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms8_vc8_2cs_v()] = | ||
137 | gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms8_vc8_2cszv_v()] = | ||
138 | gmmu_pte_kind_x8z24_x16v8s8_ms8_vc8_v(); | ||
139 | |||
140 | gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_v()] = | ||
141 | gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_2cs_v()] = | ||
142 | gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_2cszv_v()] = | ||
143 | gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_v(); | ||
144 | |||
145 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_v()] = | ||
146 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_2cs_v()] = | ||
147 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_2cszv_v()] = | ||
148 | gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_v(); | ||
149 | |||
150 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms4_vc4_v()] = | ||
151 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms4_vc4_2cs_v()] = | ||
152 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms4_vc4_2cszv_v()] = | ||
153 | gmmu_pte_kind_zf32_x16v8s8_ms4_vc4_v(); | ||
154 | |||
155 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms8_vc8_v()] = | ||
156 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms8_vc8_2cs_v()] = | ||
157 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms8_vc8_2cszv_v()] = | ||
158 | gmmu_pte_kind_zf32_x16v8s8_ms8_vc8_v(); | ||
159 | |||
160 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_v()] = | ||
161 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_2cs_v()] = | ||
162 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_2cszv_v()] = | ||
163 | gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_v(); | ||
164 | |||
165 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_v()] = | ||
166 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_2cszv_v()] = | ||
167 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_ms2_2cszv_v()] = | ||
168 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_ms4_2cszv_v()] = | ||
169 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_ms8_2cszv_v()] = | ||
170 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_2cs_v()] = | ||
171 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_ms2_2cs_v()] = | ||
172 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_ms4_2cs_v()] = | ||
173 | gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_ms8_2cs_v()] = | ||
174 | gmmu_pte_kind_zf32_x24s8_v(); | ||
175 | |||
176 | gk20a_uc_kind_map[gmmu_pte_kind_c32_2c_v()] = | ||
177 | gk20a_uc_kind_map[gmmu_pte_kind_c32_2cba_v()] = | ||
178 | gk20a_uc_kind_map[gmmu_pte_kind_c32_2cra_v()] = | ||
179 | gk20a_uc_kind_map[gmmu_pte_kind_c32_2bra_v()] = | ||
180 | gk20a_uc_kind_map[gmmu_pte_kind_c32_ms2_2c_v()] = | ||
181 | gk20a_uc_kind_map[gmmu_pte_kind_c32_ms2_2cra_v()] = | ||
182 | gk20a_uc_kind_map[gmmu_pte_kind_c32_ms4_2c_v()] = | ||
183 | gk20a_uc_kind_map[gmmu_pte_kind_c32_ms4_2cbr_v()] = | ||
184 | gk20a_uc_kind_map[gmmu_pte_kind_c32_ms4_2cba_v()] = | ||
185 | gk20a_uc_kind_map[gmmu_pte_kind_c32_ms4_2cra_v()] = | ||
186 | gk20a_uc_kind_map[gmmu_pte_kind_c32_ms4_2bra_v()] = | ||
187 | gk20a_uc_kind_map[gmmu_pte_kind_c32_ms8_ms16_2c_v()] = | ||
188 | gk20a_uc_kind_map[gmmu_pte_kind_c32_ms8_ms16_2cra_v()] = | ||
189 | gk20a_uc_kind_map[gmmu_pte_kind_c64_2c_v()] = | ||
190 | gk20a_uc_kind_map[gmmu_pte_kind_c64_2cbr_v()] = | ||
191 | gk20a_uc_kind_map[gmmu_pte_kind_c64_2cba_v()] = | ||
192 | gk20a_uc_kind_map[gmmu_pte_kind_c64_2cra_v()] = | ||
193 | gk20a_uc_kind_map[gmmu_pte_kind_c64_2bra_v()] = | ||
194 | gk20a_uc_kind_map[gmmu_pte_kind_c64_ms2_2c_v()] = | ||
195 | gk20a_uc_kind_map[gmmu_pte_kind_c64_ms2_2cra_v()] = | ||
196 | gk20a_uc_kind_map[gmmu_pte_kind_c64_ms4_2c_v()] = | ||
197 | gk20a_uc_kind_map[gmmu_pte_kind_c64_ms4_2cbr_v()] = | ||
198 | gk20a_uc_kind_map[gmmu_pte_kind_c64_ms4_2cba_v()] = | ||
199 | gk20a_uc_kind_map[gmmu_pte_kind_c64_ms4_2cra_v()] = | ||
200 | gk20a_uc_kind_map[gmmu_pte_kind_c64_ms4_2bra_v()] = | ||
201 | gk20a_uc_kind_map[gmmu_pte_kind_c64_ms8_ms16_2c_v()] = | ||
202 | gk20a_uc_kind_map[gmmu_pte_kind_c64_ms8_ms16_2cra_v()] = | ||
203 | gk20a_uc_kind_map[gmmu_pte_kind_c128_2c_v()] = | ||
204 | gk20a_uc_kind_map[gmmu_pte_kind_c128_2cr_v()] = | ||
205 | gk20a_uc_kind_map[gmmu_pte_kind_c128_ms2_2c_v()] = | ||
206 | gk20a_uc_kind_map[gmmu_pte_kind_c128_ms2_2cr_v()] = | ||
207 | gk20a_uc_kind_map[gmmu_pte_kind_c128_ms4_2c_v()] = | ||
208 | gk20a_uc_kind_map[gmmu_pte_kind_c128_ms4_2cr_v()] = | ||
209 | gk20a_uc_kind_map[gmmu_pte_kind_c128_ms8_ms16_2c_v()] = | ||
210 | gk20a_uc_kind_map[gmmu_pte_kind_c128_ms8_ms16_2cr_v()] = | ||
211 | gmmu_pte_kind_generic_16bx2_v(); | ||
212 | |||
213 | gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms4_vc4_2czv_v()] = | ||
214 | gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms4_vc4_2cs_v()] = | ||
215 | gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms4_vc4_2zv_v()] = | ||
216 | gmmu_pte_kind_z24v8_ms4_vc4_v(); | ||
217 | |||
218 | gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms4_vc12_2czv_v()] = | ||
219 | gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms4_vc12_2cs_v()] = | ||
220 | gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms4_vc12_2zv_v()] = | ||
221 | gmmu_pte_kind_z24v8_ms4_vc12_v(); | ||
222 | |||
223 | gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms8_vc8_2cs_v()] = | ||
224 | gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms8_vc8_2czv_v()] = | ||
225 | gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms8_vc8_2zv_v()] = | ||
226 | gmmu_pte_kind_z24v8_ms8_vc8_v(); | ||
227 | |||
228 | gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms8_vc24_2cs_v()] = | ||
229 | gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms8_vc24_2czv_v()] = | ||
230 | gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms8_vc24_2zv_v()] = | ||
231 | gmmu_pte_kind_z24v8_ms8_vc24_v(); | ||
232 | |||
233 | gk20a_uc_kind_map[gmmu_pte_kind_x8c24_v()] = | ||
234 | gmmu_pte_kind_x8c24_v(); | ||
235 | } | ||
236 | |||
237 | static noinline_for_stack bool gp10b_kind_supported(u8 k) | ||
238 | { | ||
239 | return /* From gp10b */ | ||
240 | (k >= gmmu_pte_kind_z16_2cz_v() && | ||
241 | k <= gmmu_pte_kind_z16_ms8_2cz_v()) | ||
242 | || k == gmmu_pte_kind_z16_ms16_2cz_v() | ||
243 | || k == gmmu_pte_kind_c32_ms4_4cbra_v() | ||
244 | || k == gmmu_pte_kind_c64_ms4_4cbra_v() | ||
245 | /* From gm20b */ | ||
246 | || (k == gmmu_pte_kind_smsked_message_v()) | ||
247 | || (k >= gmmu_pte_kind_s8_v() && | ||
248 | k <= gmmu_pte_kind_s8_2s_v()) | ||
249 | /* From gk20a */ | ||
250 | || gk20a_kind_work_creation(k) | ||
251 | || (k == gmmu_pte_kind_invalid_v()) | ||
252 | || (k == gmmu_pte_kind_pitch_v()) | ||
253 | || (k >= gmmu_pte_kind_z16_v() && | ||
254 | k <= gmmu_pte_kind_z16_ms8_2c_v()) | ||
255 | || (k >= gmmu_pte_kind_z16_2z_v() && | ||
256 | k <= gmmu_pte_kind_z16_ms8_2z_v()) | ||
257 | || (k == gmmu_pte_kind_s8z24_v()) | ||
258 | || (k >= gmmu_pte_kind_s8z24_2cz_v() && | ||
259 | k <= gmmu_pte_kind_s8z24_ms8_2cz_v()) | ||
260 | || (k >= gmmu_pte_kind_v8z24_ms4_vc12_v() && | ||
261 | k <= gmmu_pte_kind_v8z24_ms8_vc24_v()) | ||
262 | || (k >= gmmu_pte_kind_v8z24_ms4_vc12_2czv_v() && | ||
263 | k <= gmmu_pte_kind_v8z24_ms8_vc24_2zv_v()) | ||
264 | || (k == gmmu_pte_kind_z24s8_v()) | ||
265 | || (k >= gmmu_pte_kind_z24s8_2cz_v() && | ||
266 | k <= gmmu_pte_kind_z24s8_ms8_2cz_v()) | ||
267 | || (k == gmmu_pte_kind_zf32_v()) | ||
268 | || (k >= gmmu_pte_kind_zf32_2cz_v() && | ||
269 | k <= gmmu_pte_kind_zf32_ms8_2cz_v()) | ||
270 | || (k >= gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_v() && | ||
271 | k <= gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_v()) | ||
272 | || (k >= gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_2cszv_v() && | ||
273 | k <= gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_v()) | ||
274 | || (k >= gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_2cszv_v() && | ||
275 | k <= gmmu_pte_kind_zf32_x24s8_v()) | ||
276 | || (k >= gmmu_pte_kind_zf32_x24s8_2cszv_v() && | ||
277 | k <= gmmu_pte_kind_zf32_x24s8_ms8_2cszv_v()) | ||
278 | || (k == gmmu_pte_kind_generic_16bx2_v()) | ||
279 | || (k == gmmu_pte_kind_c32_2c_v()) | ||
280 | || (k == gmmu_pte_kind_c32_2cra_v()) | ||
281 | || (k == gmmu_pte_kind_c32_ms2_2c_v()) | ||
282 | || (k == gmmu_pte_kind_c32_ms2_2cra_v()) | ||
283 | || (k >= gmmu_pte_kind_c32_ms4_2c_v() && | ||
284 | k <= gmmu_pte_kind_c32_ms4_2cbr_v()) | ||
285 | || (k >= gmmu_pte_kind_c32_ms4_2cra_v() && | ||
286 | k <= gmmu_pte_kind_c64_2c_v()) | ||
287 | || (k == gmmu_pte_kind_c64_2cra_v()) | ||
288 | || (k == gmmu_pte_kind_c64_ms2_2c_v()) | ||
289 | || (k == gmmu_pte_kind_c64_ms2_2cra_v()) | ||
290 | || (k >= gmmu_pte_kind_c64_ms4_2c_v() && | ||
291 | k <= gmmu_pte_kind_c64_ms4_2cbr_v()) | ||
292 | || (k >= gmmu_pte_kind_c64_ms4_2cra_v() && | ||
293 | k <= gmmu_pte_kind_c128_ms8_ms16_2cr_v()) | ||
294 | || (k == gmmu_pte_kind_pitch_no_swizzle_v()); | ||
295 | } | ||
296 | |||
297 | static noinline_for_stack bool gp10b_kind_z(u8 k) | ||
298 | { | ||
299 | return /* From gp10b */ | ||
300 | (k >= gmmu_pte_kind_z16_2cz_v() && | ||
301 | k <= gmmu_pte_kind_z16_ms8_2cz_v()) | ||
302 | || (k == gmmu_pte_kind_z16_ms16_2cz_v()) | ||
303 | /* From gm20b */ | ||
304 | || (k >= gmmu_pte_kind_s8_v() && | ||
305 | k <= gmmu_pte_kind_s8_2s_v()) | ||
306 | /* From gk20a */ | ||
307 | || (k >= gmmu_pte_kind_z16_v() && | ||
308 | k <= gmmu_pte_kind_v8z24_ms8_vc24_v()) | ||
309 | || (k >= gmmu_pte_kind_v8z24_ms4_vc12_1zv_v() && | ||
310 | k <= gmmu_pte_kind_v8z24_ms8_vc24_2cs_v()) | ||
311 | || (k >= gmmu_pte_kind_v8z24_ms4_vc12_2czv_v() && | ||
312 | k <= gmmu_pte_kind_z24v8_ms8_vc24_v()) | ||
313 | || (k >= gmmu_pte_kind_z24v8_ms4_vc12_1zv_v() && | ||
314 | k <= gmmu_pte_kind_z24v8_ms8_vc24_2cs_v()) | ||
315 | || (k >= gmmu_pte_kind_z24v8_ms4_vc12_2czv_v() && | ||
316 | k <= gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_1cs_v()) | ||
317 | || (k >= gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_1zv_v() && | ||
318 | k <= gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_1cs_v()) | ||
319 | || (k >= gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_1zv_v() && | ||
320 | k <= gmmu_pte_kind_zf32_x24s8_ms16_1cs_v()); | ||
321 | } | ||
322 | |||
323 | static noinline_for_stack bool gp10b_kind_c(u8 k) | ||
324 | { | ||
325 | return gk20a_kind_work_creation(k) | ||
326 | || (k == gmmu_pte_kind_pitch_v()) | ||
327 | || (k == gmmu_pte_kind_generic_16bx2_v()) | ||
328 | || (k >= gmmu_pte_kind_c32_2c_v() && | ||
329 | k <= gmmu_pte_kind_c32_ms2_2cbr_v()) | ||
330 | || (k == gmmu_pte_kind_c32_ms2_2cra_v()) | ||
331 | || (k >= gmmu_pte_kind_c32_ms4_2c_v() && | ||
332 | k <= gmmu_pte_kind_c64_ms2_2cbr_v()) | ||
333 | || (k == gmmu_pte_kind_c64_ms2_2cra_v()) | ||
334 | || (k >= gmmu_pte_kind_c64_ms4_2c_v() && | ||
335 | k <= gmmu_pte_kind_pitch_no_swizzle_v()); | ||
336 | } | ||
337 | |||
338 | static noinline_for_stack bool gp10b_kind_compressible(u8 k) | ||
339 | { | ||
340 | return /* From gp10b */ | ||
341 | (k >= gmmu_pte_kind_z16_2cz_v() && | ||
342 | k <= gmmu_pte_kind_z16_ms8_2cz_v()) | ||
343 | || (k == gmmu_pte_kind_z16_ms16_2cz_v()) | ||
344 | || (k >= gmmu_pte_kind_z16_4cz_v() && | ||
345 | k <= gmmu_pte_kind_z16_ms16_4cz_v()) | ||
346 | || (k == gmmu_pte_kind_c32_ms4_4cbra_v()) | ||
347 | || (k == gmmu_pte_kind_c64_ms4_4cbra_v()) | ||
348 | /* From gm20b */ | ||
349 | || (k >= gmmu_pte_kind_s8_v() && | ||
350 | k <= gmmu_pte_kind_s8_2s_v()) | ||
351 | /* From gk20a */ | ||
352 | || (k >= gmmu_pte_kind_z16_2c_v() && | ||
353 | k <= gmmu_pte_kind_z16_ms16_4cz_v()) | ||
354 | || (k >= gmmu_pte_kind_s8z24_1z_v() && | ||
355 | k <= gmmu_pte_kind_s8z24_ms16_4cszv_v()) | ||
356 | || (k >= gmmu_pte_kind_v8z24_ms4_vc12_1zv_v() && | ||
357 | k <= gmmu_pte_kind_v8z24_ms8_vc24_2cs_v()) | ||
358 | || (k >= gmmu_pte_kind_v8z24_ms4_vc12_2czv_v() && | ||
359 | k <= gmmu_pte_kind_v8z24_ms8_vc24_4cszv_v()) | ||
360 | || (k >= gmmu_pte_kind_z24s8_1z_v() && | ||
361 | k <= gmmu_pte_kind_z24s8_ms16_4cszv_v()) | ||
362 | || (k >= gmmu_pte_kind_z24v8_ms4_vc12_1zv_v() && | ||
363 | k <= gmmu_pte_kind_z24v8_ms8_vc24_2cs_v()) | ||
364 | || (k >= gmmu_pte_kind_z24v8_ms4_vc12_2czv_v() && | ||
365 | k <= gmmu_pte_kind_z24v8_ms8_vc24_4cszv_v()) | ||
366 | || (k >= gmmu_pte_kind_zf32_1z_v() && | ||
367 | k <= gmmu_pte_kind_zf32_ms16_2cz_v()) | ||
368 | || (k >= gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_1cs_v() && | ||
369 | k <= gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_1cs_v()) | ||
370 | || (k >= gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_1zv_v() && | ||
371 | k <= gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_2cszv_v()) | ||
372 | || (k >= gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_1cs_v() && | ||
373 | k <= gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_1cs_v()) | ||
374 | || (k >= gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_1zv_v() && | ||
375 | k <= gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_2cszv_v()) | ||
376 | || (k >= gmmu_pte_kind_zf32_x24s8_1cs_v() && | ||
377 | k <= gmmu_pte_kind_zf32_x24s8_ms16_1cs_v()) | ||
378 | || (k >= gmmu_pte_kind_zf32_x24s8_2cszv_v() && | ||
379 | k <= gmmu_pte_kind_c32_ms2_2cbr_v()) | ||
380 | || (k == gmmu_pte_kind_c32_ms2_2cra_v()) | ||
381 | || (k >= gmmu_pte_kind_c32_ms4_2c_v() && | ||
382 | k <= gmmu_pte_kind_c64_ms2_2cbr_v()) | ||
383 | || (k == gmmu_pte_kind_c64_ms2_2cra_v()) | ||
384 | || (k >= gmmu_pte_kind_c64_ms4_2c_v() && | ||
385 | k <= gmmu_pte_kind_c128_ms8_ms16_2cr_v()); | ||
386 | } | ||
387 | |||
388 | static noinline_for_stack bool gp10b_kind_zbc(u8 k) | ||
389 | { | ||
390 | return /* From gp10b */ | ||
391 | (k >= gmmu_pte_kind_z16_2cz_v() && | ||
392 | k <= gmmu_pte_kind_z16_ms8_2cz_v()) | ||
393 | || (k == gmmu_pte_kind_z16_ms16_2cz_v()) | ||
394 | || (k == gmmu_pte_kind_c32_ms4_4cbra_v()) | ||
395 | || (k == gmmu_pte_kind_c64_ms4_4cbra_v()) | ||
396 | /* From gm20b */ | ||
397 | || (k >= gmmu_pte_kind_s8_v() && | ||
398 | k <= gmmu_pte_kind_s8_2s_v()) | ||
399 | /* From gk20a */ | ||
400 | || (k >= gmmu_pte_kind_z16_2c_v() && | ||
401 | k <= gmmu_pte_kind_z16_ms16_2c_v()) | ||
402 | || (k >= gmmu_pte_kind_z16_4cz_v() && | ||
403 | k <= gmmu_pte_kind_z16_ms16_4cz_v()) | ||
404 | || (k >= gmmu_pte_kind_s8z24_2cz_v() && | ||
405 | k <= gmmu_pte_kind_s8z24_ms16_4cszv_v()) | ||
406 | || (k >= gmmu_pte_kind_v8z24_ms4_vc12_2cs_v() && | ||
407 | k <= gmmu_pte_kind_v8z24_ms8_vc24_2cs_v()) | ||
408 | || (k >= gmmu_pte_kind_v8z24_ms4_vc12_2czv_v() && | ||
409 | k <= gmmu_pte_kind_v8z24_ms8_vc24_2czv_v()) | ||
410 | || (k >= gmmu_pte_kind_v8z24_ms4_vc12_4cszv_v() && | ||
411 | k <= gmmu_pte_kind_v8z24_ms8_vc24_4cszv_v()) | ||
412 | || (k >= gmmu_pte_kind_z24s8_2cs_v() && | ||
413 | k <= gmmu_pte_kind_z24s8_ms16_4cszv_v()) | ||
414 | || (k >= gmmu_pte_kind_z24v8_ms4_vc12_2cs_v() && | ||
415 | k <= gmmu_pte_kind_z24v8_ms8_vc24_2cs_v()) | ||
416 | || (k >= gmmu_pte_kind_z24v8_ms4_vc12_2czv_v() && | ||
417 | k <= gmmu_pte_kind_z24v8_ms8_vc24_2czv_v()) | ||
418 | || (k >= gmmu_pte_kind_z24v8_ms4_vc12_4cszv_v() && | ||
419 | k <= gmmu_pte_kind_z24v8_ms8_vc24_4cszv_v()) | ||
420 | || (k >= gmmu_pte_kind_zf32_2cs_v() && | ||
421 | k <= gmmu_pte_kind_zf32_ms16_2cz_v()) | ||
422 | || (k >= gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_1cs_v() && | ||
423 | k <= gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_1cs_v()) | ||
424 | || (k >= gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_1czv_v() && | ||
425 | k <= gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_2cszv_v()) | ||
426 | || (k >= gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_1cs_v() && | ||
427 | k <= gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_1cs_v()) | ||
428 | || (k >= gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_1czv_v() && | ||
429 | k <= gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_2cszv_v()) | ||
430 | || (k >= gmmu_pte_kind_zf32_x24s8_1cs_v() && | ||
431 | k <= gmmu_pte_kind_zf32_x24s8_ms16_1cs_v()) | ||
432 | || (k >= gmmu_pte_kind_zf32_x24s8_2cszv_v() && | ||
433 | k <= gmmu_pte_kind_c32_2cra_v()) | ||
434 | || (k >= gmmu_pte_kind_c32_ms2_2c_v() && | ||
435 | k <= gmmu_pte_kind_c32_ms2_2cbr_v()) | ||
436 | || (k == gmmu_pte_kind_c32_ms2_2cra_v()) | ||
437 | || (k >= gmmu_pte_kind_c32_ms4_2c_v() && | ||
438 | k <= gmmu_pte_kind_c32_ms4_2cra_v()) | ||
439 | || (k >= gmmu_pte_kind_c32_ms8_ms16_2c_v() && | ||
440 | k <= gmmu_pte_kind_c64_2cra_v()) | ||
441 | || (k >= gmmu_pte_kind_c64_ms2_2c_v() && | ||
442 | k <= gmmu_pte_kind_c64_ms2_2cbr_v()) | ||
443 | || (k == gmmu_pte_kind_c64_ms2_2cra_v()) | ||
444 | || (k >= gmmu_pte_kind_c64_ms4_2c_v() && | ||
445 | k <= gmmu_pte_kind_c64_ms4_2cra_v()) | ||
446 | || (k >= gmmu_pte_kind_c64_ms8_ms16_2c_v() && | ||
447 | k <= gmmu_pte_kind_c128_ms8_ms16_2cr_v()); | ||
448 | } | ||
449 | |||
450 | void gp10b_init_kind_attr(void) | ||
451 | { | ||
452 | u16 k; | ||
453 | |||
454 | for (k = 0; k < NV_KIND_ATTR_SIZE; k++) { | ||
455 | if (gp10b_kind_supported((u8)k)) | ||
456 | gk20a_kind_attr[k] |= GK20A_KIND_ATTR_SUPPORTED; | ||
457 | if (gp10b_kind_compressible((u8)k)) | ||
458 | gk20a_kind_attr[k] |= GK20A_KIND_ATTR_COMPRESSIBLE; | ||
459 | if (gp10b_kind_z((u8)k)) | ||
460 | gk20a_kind_attr[k] |= GK20A_KIND_ATTR_Z; | ||
461 | if (gp10b_kind_c((u8)k)) | ||
462 | gk20a_kind_attr[k] |= GK20A_KIND_ATTR_C; | ||
463 | if (gp10b_kind_zbc((u8)k)) | ||
464 | gk20a_kind_attr[k] |= GK20A_KIND_ATTR_ZBC; | ||
465 | } | ||
466 | } | ||
467 | |||
468 | unsigned int gp10b_fb_compression_page_size(struct gk20a *g) | 28 | unsigned int gp10b_fb_compression_page_size(struct gk20a *g) |
469 | { | 29 | { |
470 | return SZ_64K; | 30 | return SZ_64K; |
diff --git a/drivers/gpu/nvgpu/gp10b/fb_gp10b.h b/drivers/gpu/nvgpu/gp10b/fb_gp10b.h index 12f6178b..52aa2a75 100644 --- a/drivers/gpu/nvgpu/gp10b/fb_gp10b.h +++ b/drivers/gpu/nvgpu/gp10b/fb_gp10b.h | |||
@@ -26,8 +26,6 @@ | |||
26 | #define _NVGPU_GP10B_FB | 26 | #define _NVGPU_GP10B_FB |
27 | struct gk20a; | 27 | struct gk20a; |
28 | 28 | ||
29 | noinline_for_stack void gp10b_init_uncompressed_kind_map(void); | ||
30 | void gp10b_init_kind_attr(void); | ||
31 | unsigned int gp10b_fb_compression_page_size(struct gk20a *g); | 29 | unsigned int gp10b_fb_compression_page_size(struct gk20a *g); |
32 | unsigned int gp10b_fb_compressible_page_size(struct gk20a *g); | 30 | unsigned int gp10b_fb_compressible_page_size(struct gk20a *g); |
33 | 31 | ||
diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c index 7ed91e02..d0aedd1b 100644 --- a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c | |||
@@ -743,9 +743,6 @@ int gp10b_init_hal(struct gk20a *g) | |||
743 | g->pmu_lsf_pmu_wpr_init_done = 0; | 743 | g->pmu_lsf_pmu_wpr_init_done = 0; |
744 | g->bootstrap_owner = LSF_BOOTSTRAP_OWNER_DEFAULT; | 744 | g->bootstrap_owner = LSF_BOOTSTRAP_OWNER_DEFAULT; |
745 | 745 | ||
746 | gp10b_init_uncompressed_kind_map(); | ||
747 | gp10b_init_kind_attr(); | ||
748 | |||
749 | g->name = "gp10b"; | 746 | g->name = "gp10b"; |
750 | 747 | ||
751 | return 0; | 748 | return 0; |