Commit | Line | Data |
---|---|---|
e0f74ed4 ZW |
1 | // SPDX-License-Identifier: MIT |
2 | /* | |
3 | * Copyright © 2020 Intel Corporation | |
4 | */ | |
5 | ||
b43edc50 | 6 | #include "display/intel_audio_regs.h" |
a9b4c16d | 7 | #include "display/intel_backlight_regs.h" |
ae3a70ad | 8 | #include "display/intel_color_regs.h" |
acc855d3 | 9 | #include "display/intel_display_types.h" |
1e1d2e18 | 10 | #include "display/intel_dmc_regs.h" |
89e790ec | 11 | #include "display/intel_dp_aux_regs.h" |
99417adb | 12 | #include "display/intel_dpio_phy.h" |
04500bfd | 13 | #include "display/intel_fdi_regs.h" |
16bede13 | 14 | #include "display/intel_lvds_regs.h" |
7f6947fd | 15 | #include "display/intel_psr_regs.h" |
689e61a4 | 16 | #include "display/skl_watermark_regs.h" |
e0f74ed4 | 17 | #include "display/vlv_dsi_pll_regs.h" |
80cf8f18 | 18 | #include "gt/intel_engine_regs.h" |
e0f74ed4 | 19 | #include "gt/intel_gt_regs.h" |
80cf8f18 | 20 | #include "gvt/reg.h" |
b43edc50 | 21 | |
e0f74ed4 ZW |
22 | #include "i915_drv.h" |
23 | #include "i915_pvinfo.h" | |
24 | #include "i915_reg.h" | |
25 | #include "intel_gvt.h" | |
26 | #include "intel_mchbar_regs.h" | |
27 | ||
28 | #define MMIO_F(reg, s) do { \ | |
29 | int ret; \ | |
30 | ret = iter->handle_mmio_cb(iter, i915_mmio_reg_offset(reg), s); \ | |
31 | if (ret) \ | |
32 | return ret; \ | |
33 | } while (0) | |
34 | ||
35 | #define MMIO_D(reg) MMIO_F(reg, 4) | |
36 | ||
37 | #define MMIO_RING_F(prefix, s) do { \ | |
38 | MMIO_F(prefix(RENDER_RING_BASE), s); \ | |
39 | MMIO_F(prefix(BLT_RING_BASE), s); \ | |
40 | MMIO_F(prefix(GEN6_BSD_RING_BASE), s); \ | |
41 | MMIO_F(prefix(VEBOX_RING_BASE), s); \ | |
42 | if (HAS_ENGINE(to_gt(iter->i915), VCS1)) \ | |
43 | MMIO_F(prefix(GEN8_BSD2_RING_BASE), s); \ | |
44 | } while (0) | |
45 | ||
46 | #define MMIO_RING_D(prefix) \ | |
47 | MMIO_RING_F(prefix, 4) | |
48 | ||
49 | static int iterate_generic_mmio(struct intel_gvt_mmio_table_iter *iter) | |
50 | { | |
51 | struct drm_i915_private *dev_priv = iter->i915; | |
52 | ||
53 | MMIO_RING_D(RING_IMR); | |
54 | MMIO_D(SDEIMR); | |
55 | MMIO_D(SDEIER); | |
56 | MMIO_D(SDEIIR); | |
57 | MMIO_D(SDEISR); | |
58 | MMIO_RING_D(RING_HWSTAM); | |
59 | MMIO_D(BSD_HWS_PGA_GEN7); | |
60 | MMIO_D(BLT_HWS_PGA_GEN7); | |
61 | MMIO_D(VEBOX_HWS_PGA_GEN7); | |
62 | ||
63 | #define RING_REG(base) _MMIO((base) + 0x28) | |
64 | MMIO_RING_D(RING_REG); | |
65 | #undef RING_REG | |
66 | ||
67 | #define RING_REG(base) _MMIO((base) + 0x134) | |
68 | MMIO_RING_D(RING_REG); | |
69 | #undef RING_REG | |
70 | ||
71 | #define RING_REG(base) _MMIO((base) + 0x6c) | |
72 | MMIO_RING_D(RING_REG); | |
73 | #undef RING_REG | |
74 | MMIO_D(_MMIO(0x2148)); | |
75 | MMIO_D(CCID(RENDER_RING_BASE)); | |
76 | MMIO_D(_MMIO(0x12198)); | |
77 | MMIO_D(GEN7_CXT_SIZE); | |
78 | MMIO_RING_D(RING_TAIL); | |
79 | MMIO_RING_D(RING_HEAD); | |
80 | MMIO_RING_D(RING_CTL); | |
81 | MMIO_RING_D(RING_ACTHD); | |
82 | MMIO_RING_D(RING_START); | |
83 | ||
84 | /* RING MODE */ | |
85 | #define RING_REG(base) _MMIO((base) + 0x29c) | |
86 | MMIO_RING_D(RING_REG); | |
87 | #undef RING_REG | |
88 | ||
89 | MMIO_RING_D(RING_MI_MODE); | |
90 | MMIO_RING_D(RING_INSTPM); | |
91 | MMIO_RING_D(RING_TIMESTAMP); | |
92 | MMIO_RING_D(RING_TIMESTAMP_UDW); | |
93 | MMIO_D(GEN7_GT_MODE); | |
94 | MMIO_D(CACHE_MODE_0_GEN7); | |
95 | MMIO_D(CACHE_MODE_1); | |
96 | MMIO_D(CACHE_MODE_0); | |
97 | MMIO_D(_MMIO(0x2124)); | |
98 | MMIO_D(_MMIO(0x20dc)); | |
99 | MMIO_D(_3D_CHICKEN3); | |
100 | MMIO_D(_MMIO(0x2088)); | |
101 | MMIO_D(FF_SLICE_CS_CHICKEN2); | |
102 | MMIO_D(_MMIO(0x2470)); | |
103 | MMIO_D(GAM_ECOCHK); | |
104 | MMIO_D(GEN7_COMMON_SLICE_CHICKEN1); | |
105 | MMIO_D(COMMON_SLICE_CHICKEN2); | |
106 | MMIO_D(_MMIO(0x9030)); | |
107 | MMIO_D(_MMIO(0x20a0)); | |
108 | MMIO_D(_MMIO(0x2420)); | |
109 | MMIO_D(_MMIO(0x2430)); | |
110 | MMIO_D(_MMIO(0x2434)); | |
111 | MMIO_D(_MMIO(0x2438)); | |
112 | MMIO_D(_MMIO(0x243c)); | |
113 | MMIO_D(_MMIO(0x7018)); | |
dfa13f1b | 114 | MMIO_D(HSW_HALF_SLICE_CHICKEN3); |
e0f74ed4 ZW |
115 | MMIO_D(GEN7_HALF_SLICE_CHICKEN1); |
116 | /* display */ | |
117 | MMIO_F(_MMIO(0x60220), 0x20); | |
118 | MMIO_D(_MMIO(0x602a0)); | |
119 | MMIO_D(_MMIO(0x65050)); | |
120 | MMIO_D(_MMIO(0x650b4)); | |
121 | MMIO_D(_MMIO(0xc4040)); | |
122 | MMIO_D(DERRMR); | |
123 | MMIO_D(PIPEDSL(PIPE_A)); | |
124 | MMIO_D(PIPEDSL(PIPE_B)); | |
125 | MMIO_D(PIPEDSL(PIPE_C)); | |
126 | MMIO_D(PIPEDSL(_PIPE_EDP)); | |
3eb08ea5 VS |
127 | MMIO_D(TRANSCONF(TRANSCODER_A)); |
128 | MMIO_D(TRANSCONF(TRANSCODER_B)); | |
129 | MMIO_D(TRANSCONF(TRANSCODER_C)); | |
130 | MMIO_D(TRANSCONF(TRANSCODER_EDP)); | |
e0f74ed4 ZW |
131 | MMIO_D(PIPESTAT(PIPE_A)); |
132 | MMIO_D(PIPESTAT(PIPE_B)); | |
133 | MMIO_D(PIPESTAT(PIPE_C)); | |
134 | MMIO_D(PIPESTAT(_PIPE_EDP)); | |
135 | MMIO_D(PIPE_FLIPCOUNT_G4X(PIPE_A)); | |
136 | MMIO_D(PIPE_FLIPCOUNT_G4X(PIPE_B)); | |
137 | MMIO_D(PIPE_FLIPCOUNT_G4X(PIPE_C)); | |
138 | MMIO_D(PIPE_FLIPCOUNT_G4X(_PIPE_EDP)); | |
139 | MMIO_D(PIPE_FRMCOUNT_G4X(PIPE_A)); | |
140 | MMIO_D(PIPE_FRMCOUNT_G4X(PIPE_B)); | |
141 | MMIO_D(PIPE_FRMCOUNT_G4X(PIPE_C)); | |
142 | MMIO_D(PIPE_FRMCOUNT_G4X(_PIPE_EDP)); | |
143 | MMIO_D(CURCNTR(PIPE_A)); | |
144 | MMIO_D(CURCNTR(PIPE_B)); | |
145 | MMIO_D(CURCNTR(PIPE_C)); | |
146 | MMIO_D(CURPOS(PIPE_A)); | |
147 | MMIO_D(CURPOS(PIPE_B)); | |
148 | MMIO_D(CURPOS(PIPE_C)); | |
149 | MMIO_D(CURBASE(PIPE_A)); | |
150 | MMIO_D(CURBASE(PIPE_B)); | |
151 | MMIO_D(CURBASE(PIPE_C)); | |
152 | MMIO_D(CUR_FBC_CTL(PIPE_A)); | |
153 | MMIO_D(CUR_FBC_CTL(PIPE_B)); | |
154 | MMIO_D(CUR_FBC_CTL(PIPE_C)); | |
155 | MMIO_D(_MMIO(0x700ac)); | |
156 | MMIO_D(_MMIO(0x710ac)); | |
157 | MMIO_D(_MMIO(0x720ac)); | |
158 | MMIO_D(_MMIO(0x70090)); | |
159 | MMIO_D(_MMIO(0x70094)); | |
160 | MMIO_D(_MMIO(0x70098)); | |
161 | MMIO_D(_MMIO(0x7009c)); | |
162 | MMIO_D(DSPCNTR(PIPE_A)); | |
163 | MMIO_D(DSPADDR(PIPE_A)); | |
164 | MMIO_D(DSPSTRIDE(PIPE_A)); | |
165 | MMIO_D(DSPPOS(PIPE_A)); | |
166 | MMIO_D(DSPSIZE(PIPE_A)); | |
167 | MMIO_D(DSPSURF(PIPE_A)); | |
168 | MMIO_D(DSPOFFSET(PIPE_A)); | |
169 | MMIO_D(DSPSURFLIVE(PIPE_A)); | |
170 | MMIO_D(REG_50080(PIPE_A, PLANE_PRIMARY)); | |
171 | MMIO_D(DSPCNTR(PIPE_B)); | |
172 | MMIO_D(DSPADDR(PIPE_B)); | |
173 | MMIO_D(DSPSTRIDE(PIPE_B)); | |
174 | MMIO_D(DSPPOS(PIPE_B)); | |
175 | MMIO_D(DSPSIZE(PIPE_B)); | |
176 | MMIO_D(DSPSURF(PIPE_B)); | |
177 | MMIO_D(DSPOFFSET(PIPE_B)); | |
178 | MMIO_D(DSPSURFLIVE(PIPE_B)); | |
179 | MMIO_D(REG_50080(PIPE_B, PLANE_PRIMARY)); | |
180 | MMIO_D(DSPCNTR(PIPE_C)); | |
181 | MMIO_D(DSPADDR(PIPE_C)); | |
182 | MMIO_D(DSPSTRIDE(PIPE_C)); | |
183 | MMIO_D(DSPPOS(PIPE_C)); | |
184 | MMIO_D(DSPSIZE(PIPE_C)); | |
185 | MMIO_D(DSPSURF(PIPE_C)); | |
186 | MMIO_D(DSPOFFSET(PIPE_C)); | |
187 | MMIO_D(DSPSURFLIVE(PIPE_C)); | |
188 | MMIO_D(REG_50080(PIPE_C, PLANE_PRIMARY)); | |
189 | MMIO_D(SPRCTL(PIPE_A)); | |
190 | MMIO_D(SPRLINOFF(PIPE_A)); | |
191 | MMIO_D(SPRSTRIDE(PIPE_A)); | |
192 | MMIO_D(SPRPOS(PIPE_A)); | |
193 | MMIO_D(SPRSIZE(PIPE_A)); | |
194 | MMIO_D(SPRKEYVAL(PIPE_A)); | |
195 | MMIO_D(SPRKEYMSK(PIPE_A)); | |
196 | MMIO_D(SPRSURF(PIPE_A)); | |
197 | MMIO_D(SPRKEYMAX(PIPE_A)); | |
198 | MMIO_D(SPROFFSET(PIPE_A)); | |
199 | MMIO_D(SPRSCALE(PIPE_A)); | |
200 | MMIO_D(SPRSURFLIVE(PIPE_A)); | |
201 | MMIO_D(REG_50080(PIPE_A, PLANE_SPRITE0)); | |
202 | MMIO_D(SPRCTL(PIPE_B)); | |
203 | MMIO_D(SPRLINOFF(PIPE_B)); | |
204 | MMIO_D(SPRSTRIDE(PIPE_B)); | |
205 | MMIO_D(SPRPOS(PIPE_B)); | |
206 | MMIO_D(SPRSIZE(PIPE_B)); | |
207 | MMIO_D(SPRKEYVAL(PIPE_B)); | |
208 | MMIO_D(SPRKEYMSK(PIPE_B)); | |
209 | MMIO_D(SPRSURF(PIPE_B)); | |
210 | MMIO_D(SPRKEYMAX(PIPE_B)); | |
211 | MMIO_D(SPROFFSET(PIPE_B)); | |
212 | MMIO_D(SPRSCALE(PIPE_B)); | |
213 | MMIO_D(SPRSURFLIVE(PIPE_B)); | |
214 | MMIO_D(REG_50080(PIPE_B, PLANE_SPRITE0)); | |
215 | MMIO_D(SPRCTL(PIPE_C)); | |
216 | MMIO_D(SPRLINOFF(PIPE_C)); | |
217 | MMIO_D(SPRSTRIDE(PIPE_C)); | |
218 | MMIO_D(SPRPOS(PIPE_C)); | |
219 | MMIO_D(SPRSIZE(PIPE_C)); | |
220 | MMIO_D(SPRKEYVAL(PIPE_C)); | |
221 | MMIO_D(SPRKEYMSK(PIPE_C)); | |
222 | MMIO_D(SPRSURF(PIPE_C)); | |
223 | MMIO_D(SPRKEYMAX(PIPE_C)); | |
224 | MMIO_D(SPROFFSET(PIPE_C)); | |
225 | MMIO_D(SPRSCALE(PIPE_C)); | |
226 | MMIO_D(SPRSURFLIVE(PIPE_C)); | |
227 | MMIO_D(REG_50080(PIPE_C, PLANE_SPRITE0)); | |
5ac421a9 VS |
228 | MMIO_D(TRANS_HTOTAL(TRANSCODER_A)); |
229 | MMIO_D(TRANS_HBLANK(TRANSCODER_A)); | |
230 | MMIO_D(TRANS_HSYNC(TRANSCODER_A)); | |
231 | MMIO_D(TRANS_VTOTAL(TRANSCODER_A)); | |
232 | MMIO_D(TRANS_VBLANK(TRANSCODER_A)); | |
233 | MMIO_D(TRANS_VSYNC(TRANSCODER_A)); | |
e0f74ed4 | 234 | MMIO_D(BCLRPAT(TRANSCODER_A)); |
5ac421a9 | 235 | MMIO_D(TRANS_VSYNCSHIFT(TRANSCODER_A)); |
e0f74ed4 | 236 | MMIO_D(PIPESRC(TRANSCODER_A)); |
5ac421a9 VS |
237 | MMIO_D(TRANS_HTOTAL(TRANSCODER_B)); |
238 | MMIO_D(TRANS_HBLANK(TRANSCODER_B)); | |
239 | MMIO_D(TRANS_HSYNC(TRANSCODER_B)); | |
240 | MMIO_D(TRANS_VTOTAL(TRANSCODER_B)); | |
241 | MMIO_D(TRANS_VBLANK(TRANSCODER_B)); | |
242 | MMIO_D(TRANS_VSYNC(TRANSCODER_B)); | |
e0f74ed4 | 243 | MMIO_D(BCLRPAT(TRANSCODER_B)); |
5ac421a9 | 244 | MMIO_D(TRANS_VSYNCSHIFT(TRANSCODER_B)); |
e0f74ed4 | 245 | MMIO_D(PIPESRC(TRANSCODER_B)); |
5ac421a9 VS |
246 | MMIO_D(TRANS_HTOTAL(TRANSCODER_C)); |
247 | MMIO_D(TRANS_HBLANK(TRANSCODER_C)); | |
248 | MMIO_D(TRANS_HSYNC(TRANSCODER_C)); | |
249 | MMIO_D(TRANS_VTOTAL(TRANSCODER_C)); | |
250 | MMIO_D(TRANS_VBLANK(TRANSCODER_C)); | |
251 | MMIO_D(TRANS_VSYNC(TRANSCODER_C)); | |
e0f74ed4 | 252 | MMIO_D(BCLRPAT(TRANSCODER_C)); |
5ac421a9 | 253 | MMIO_D(TRANS_VSYNCSHIFT(TRANSCODER_C)); |
e0f74ed4 | 254 | MMIO_D(PIPESRC(TRANSCODER_C)); |
5ac421a9 VS |
255 | MMIO_D(TRANS_HTOTAL(TRANSCODER_EDP)); |
256 | MMIO_D(TRANS_HBLANK(TRANSCODER_EDP)); | |
257 | MMIO_D(TRANS_HSYNC(TRANSCODER_EDP)); | |
258 | MMIO_D(TRANS_VTOTAL(TRANSCODER_EDP)); | |
259 | MMIO_D(TRANS_VBLANK(TRANSCODER_EDP)); | |
260 | MMIO_D(TRANS_VSYNC(TRANSCODER_EDP)); | |
e0f74ed4 | 261 | MMIO_D(BCLRPAT(TRANSCODER_EDP)); |
5ac421a9 | 262 | MMIO_D(TRANS_VSYNCSHIFT(TRANSCODER_EDP)); |
e0f74ed4 ZW |
263 | MMIO_D(PIPE_DATA_M1(TRANSCODER_A)); |
264 | MMIO_D(PIPE_DATA_N1(TRANSCODER_A)); | |
265 | MMIO_D(PIPE_DATA_M2(TRANSCODER_A)); | |
266 | MMIO_D(PIPE_DATA_N2(TRANSCODER_A)); | |
267 | MMIO_D(PIPE_LINK_M1(TRANSCODER_A)); | |
268 | MMIO_D(PIPE_LINK_N1(TRANSCODER_A)); | |
269 | MMIO_D(PIPE_LINK_M2(TRANSCODER_A)); | |
270 | MMIO_D(PIPE_LINK_N2(TRANSCODER_A)); | |
271 | MMIO_D(PIPE_DATA_M1(TRANSCODER_B)); | |
272 | MMIO_D(PIPE_DATA_N1(TRANSCODER_B)); | |
273 | MMIO_D(PIPE_DATA_M2(TRANSCODER_B)); | |
274 | MMIO_D(PIPE_DATA_N2(TRANSCODER_B)); | |
275 | MMIO_D(PIPE_LINK_M1(TRANSCODER_B)); | |
276 | MMIO_D(PIPE_LINK_N1(TRANSCODER_B)); | |
277 | MMIO_D(PIPE_LINK_M2(TRANSCODER_B)); | |
278 | MMIO_D(PIPE_LINK_N2(TRANSCODER_B)); | |
279 | MMIO_D(PIPE_DATA_M1(TRANSCODER_C)); | |
280 | MMIO_D(PIPE_DATA_N1(TRANSCODER_C)); | |
281 | MMIO_D(PIPE_DATA_M2(TRANSCODER_C)); | |
282 | MMIO_D(PIPE_DATA_N2(TRANSCODER_C)); | |
283 | MMIO_D(PIPE_LINK_M1(TRANSCODER_C)); | |
284 | MMIO_D(PIPE_LINK_N1(TRANSCODER_C)); | |
285 | MMIO_D(PIPE_LINK_M2(TRANSCODER_C)); | |
286 | MMIO_D(PIPE_LINK_N2(TRANSCODER_C)); | |
287 | MMIO_D(PIPE_DATA_M1(TRANSCODER_EDP)); | |
288 | MMIO_D(PIPE_DATA_N1(TRANSCODER_EDP)); | |
289 | MMIO_D(PIPE_DATA_M2(TRANSCODER_EDP)); | |
290 | MMIO_D(PIPE_DATA_N2(TRANSCODER_EDP)); | |
291 | MMIO_D(PIPE_LINK_M1(TRANSCODER_EDP)); | |
292 | MMIO_D(PIPE_LINK_N1(TRANSCODER_EDP)); | |
293 | MMIO_D(PIPE_LINK_M2(TRANSCODER_EDP)); | |
294 | MMIO_D(PIPE_LINK_N2(TRANSCODER_EDP)); | |
295 | MMIO_D(PF_CTL(PIPE_A)); | |
296 | MMIO_D(PF_WIN_SZ(PIPE_A)); | |
297 | MMIO_D(PF_WIN_POS(PIPE_A)); | |
298 | MMIO_D(PF_VSCALE(PIPE_A)); | |
299 | MMIO_D(PF_HSCALE(PIPE_A)); | |
300 | MMIO_D(PF_CTL(PIPE_B)); | |
301 | MMIO_D(PF_WIN_SZ(PIPE_B)); | |
302 | MMIO_D(PF_WIN_POS(PIPE_B)); | |
303 | MMIO_D(PF_VSCALE(PIPE_B)); | |
304 | MMIO_D(PF_HSCALE(PIPE_B)); | |
305 | MMIO_D(PF_CTL(PIPE_C)); | |
306 | MMIO_D(PF_WIN_SZ(PIPE_C)); | |
307 | MMIO_D(PF_WIN_POS(PIPE_C)); | |
308 | MMIO_D(PF_VSCALE(PIPE_C)); | |
309 | MMIO_D(PF_HSCALE(PIPE_C)); | |
310 | MMIO_D(WM0_PIPE_ILK(PIPE_A)); | |
311 | MMIO_D(WM0_PIPE_ILK(PIPE_B)); | |
312 | MMIO_D(WM0_PIPE_ILK(PIPE_C)); | |
313 | MMIO_D(WM1_LP_ILK); | |
314 | MMIO_D(WM2_LP_ILK); | |
315 | MMIO_D(WM3_LP_ILK); | |
316 | MMIO_D(WM1S_LP_ILK); | |
317 | MMIO_D(WM2S_LP_IVB); | |
318 | MMIO_D(WM3S_LP_IVB); | |
319 | MMIO_D(BLC_PWM_CPU_CTL2); | |
320 | MMIO_D(BLC_PWM_CPU_CTL); | |
321 | MMIO_D(BLC_PWM_PCH_CTL1); | |
322 | MMIO_D(BLC_PWM_PCH_CTL2); | |
323 | MMIO_D(_MMIO(0x48268)); | |
324 | MMIO_F(PCH_GMBUS0, 4 * 4); | |
325 | MMIO_F(PCH_GPIO_BASE, 6 * 4); | |
326 | MMIO_F(_MMIO(0xe4f00), 0x28); | |
327 | MMIO_D(_MMIO(_PCH_TRANSACONF)); | |
328 | MMIO_D(_MMIO(_PCH_TRANSBCONF)); | |
329 | MMIO_D(FDI_RX_IIR(PIPE_A)); | |
330 | MMIO_D(FDI_RX_IIR(PIPE_B)); | |
331 | MMIO_D(FDI_RX_IIR(PIPE_C)); | |
332 | MMIO_D(FDI_RX_IMR(PIPE_A)); | |
333 | MMIO_D(FDI_RX_IMR(PIPE_B)); | |
334 | MMIO_D(FDI_RX_IMR(PIPE_C)); | |
335 | MMIO_D(FDI_RX_CTL(PIPE_A)); | |
336 | MMIO_D(FDI_RX_CTL(PIPE_B)); | |
337 | MMIO_D(FDI_RX_CTL(PIPE_C)); | |
338 | MMIO_D(_MMIO(_PCH_TRANS_HTOTAL_A)); | |
339 | MMIO_D(_MMIO(_PCH_TRANS_HBLANK_A)); | |
340 | MMIO_D(_MMIO(_PCH_TRANS_HSYNC_A)); | |
341 | MMIO_D(_MMIO(_PCH_TRANS_VTOTAL_A)); | |
342 | MMIO_D(_MMIO(_PCH_TRANS_VBLANK_A)); | |
343 | MMIO_D(_MMIO(_PCH_TRANS_VSYNC_A)); | |
344 | MMIO_D(_MMIO(_PCH_TRANS_VSYNCSHIFT_A)); | |
345 | MMIO_D(_MMIO(_PCH_TRANS_HTOTAL_B)); | |
346 | MMIO_D(_MMIO(_PCH_TRANS_HBLANK_B)); | |
347 | MMIO_D(_MMIO(_PCH_TRANS_HSYNC_B)); | |
348 | MMIO_D(_MMIO(_PCH_TRANS_VTOTAL_B)); | |
349 | MMIO_D(_MMIO(_PCH_TRANS_VBLANK_B)); | |
350 | MMIO_D(_MMIO(_PCH_TRANS_VSYNC_B)); | |
351 | MMIO_D(_MMIO(_PCH_TRANS_VSYNCSHIFT_B)); | |
352 | MMIO_D(_MMIO(_PCH_TRANSA_DATA_M1)); | |
353 | MMIO_D(_MMIO(_PCH_TRANSA_DATA_N1)); | |
354 | MMIO_D(_MMIO(_PCH_TRANSA_DATA_M2)); | |
355 | MMIO_D(_MMIO(_PCH_TRANSA_DATA_N2)); | |
356 | MMIO_D(_MMIO(_PCH_TRANSA_LINK_M1)); | |
357 | MMIO_D(_MMIO(_PCH_TRANSA_LINK_N1)); | |
358 | MMIO_D(_MMIO(_PCH_TRANSA_LINK_M2)); | |
359 | MMIO_D(_MMIO(_PCH_TRANSA_LINK_N2)); | |
360 | MMIO_D(TRANS_DP_CTL(PIPE_A)); | |
361 | MMIO_D(TRANS_DP_CTL(PIPE_B)); | |
362 | MMIO_D(TRANS_DP_CTL(PIPE_C)); | |
363 | MMIO_D(TVIDEO_DIP_CTL(PIPE_A)); | |
364 | MMIO_D(TVIDEO_DIP_DATA(PIPE_A)); | |
365 | MMIO_D(TVIDEO_DIP_GCP(PIPE_A)); | |
366 | MMIO_D(TVIDEO_DIP_CTL(PIPE_B)); | |
367 | MMIO_D(TVIDEO_DIP_DATA(PIPE_B)); | |
368 | MMIO_D(TVIDEO_DIP_GCP(PIPE_B)); | |
369 | MMIO_D(TVIDEO_DIP_CTL(PIPE_C)); | |
370 | MMIO_D(TVIDEO_DIP_DATA(PIPE_C)); | |
371 | MMIO_D(TVIDEO_DIP_GCP(PIPE_C)); | |
372 | MMIO_D(_MMIO(_FDI_RXA_MISC)); | |
373 | MMIO_D(_MMIO(_FDI_RXB_MISC)); | |
374 | MMIO_D(_MMIO(_FDI_RXA_TUSIZE1)); | |
375 | MMIO_D(_MMIO(_FDI_RXA_TUSIZE2)); | |
376 | MMIO_D(_MMIO(_FDI_RXB_TUSIZE1)); | |
377 | MMIO_D(_MMIO(_FDI_RXB_TUSIZE2)); | |
378 | MMIO_D(PCH_PP_CONTROL); | |
379 | MMIO_D(PCH_PP_DIVISOR); | |
380 | MMIO_D(PCH_PP_STATUS); | |
381 | MMIO_D(PCH_LVDS); | |
382 | MMIO_D(_MMIO(_PCH_DPLL_A)); | |
383 | MMIO_D(_MMIO(_PCH_DPLL_B)); | |
384 | MMIO_D(_MMIO(_PCH_FPA0)); | |
385 | MMIO_D(_MMIO(_PCH_FPA1)); | |
386 | MMIO_D(_MMIO(_PCH_FPB0)); | |
387 | MMIO_D(_MMIO(_PCH_FPB1)); | |
388 | MMIO_D(PCH_DREF_CONTROL); | |
389 | MMIO_D(PCH_RAWCLK_FREQ); | |
390 | MMIO_D(PCH_DPLL_SEL); | |
391 | MMIO_D(_MMIO(0x61208)); | |
392 | MMIO_D(_MMIO(0x6120c)); | |
393 | MMIO_D(PCH_PP_ON_DELAYS); | |
394 | MMIO_D(PCH_PP_OFF_DELAYS); | |
395 | MMIO_D(_MMIO(0xe651c)); | |
396 | MMIO_D(_MMIO(0xe661c)); | |
397 | MMIO_D(_MMIO(0xe671c)); | |
398 | MMIO_D(_MMIO(0xe681c)); | |
399 | MMIO_D(_MMIO(0xe6c04)); | |
400 | MMIO_D(_MMIO(0xe6e1c)); | |
401 | MMIO_D(PCH_PORT_HOTPLUG); | |
402 | MMIO_D(LCPLL_CTL); | |
403 | MMIO_D(FUSE_STRAP); | |
404 | MMIO_D(DIGITAL_PORT_HOTPLUG_CNTRL); | |
405 | MMIO_D(DISP_ARB_CTL); | |
406 | MMIO_D(DISP_ARB_CTL2); | |
407 | MMIO_D(ILK_DISPLAY_CHICKEN1); | |
408 | MMIO_D(ILK_DISPLAY_CHICKEN2); | |
409 | MMIO_D(ILK_DSPCLK_GATE_D); | |
410 | MMIO_D(SOUTH_CHICKEN1); | |
411 | MMIO_D(SOUTH_CHICKEN2); | |
412 | MMIO_D(_MMIO(_TRANSA_CHICKEN1)); | |
413 | MMIO_D(_MMIO(_TRANSB_CHICKEN1)); | |
414 | MMIO_D(SOUTH_DSPCLK_GATE_D); | |
415 | MMIO_D(_MMIO(_TRANSA_CHICKEN2)); | |
416 | MMIO_D(_MMIO(_TRANSB_CHICKEN2)); | |
417 | MMIO_D(ILK_DPFC_CB_BASE(INTEL_FBC_A)); | |
418 | MMIO_D(ILK_DPFC_CONTROL(INTEL_FBC_A)); | |
419 | MMIO_D(ILK_DPFC_RECOMP_CTL(INTEL_FBC_A)); | |
420 | MMIO_D(ILK_DPFC_STATUS(INTEL_FBC_A)); | |
421 | MMIO_D(ILK_DPFC_FENCE_YOFF(INTEL_FBC_A)); | |
422 | MMIO_D(ILK_DPFC_CHICKEN(INTEL_FBC_A)); | |
423 | MMIO_D(ILK_FBC_RT_BASE); | |
424 | MMIO_D(IPS_CTL); | |
425 | MMIO_D(PIPE_CSC_COEFF_RY_GY(PIPE_A)); | |
426 | MMIO_D(PIPE_CSC_COEFF_BY(PIPE_A)); | |
427 | MMIO_D(PIPE_CSC_COEFF_RU_GU(PIPE_A)); | |
428 | MMIO_D(PIPE_CSC_COEFF_BU(PIPE_A)); | |
429 | MMIO_D(PIPE_CSC_COEFF_RV_GV(PIPE_A)); | |
430 | MMIO_D(PIPE_CSC_COEFF_BV(PIPE_A)); | |
431 | MMIO_D(PIPE_CSC_MODE(PIPE_A)); | |
432 | MMIO_D(PIPE_CSC_PREOFF_HI(PIPE_A)); | |
433 | MMIO_D(PIPE_CSC_PREOFF_ME(PIPE_A)); | |
434 | MMIO_D(PIPE_CSC_PREOFF_LO(PIPE_A)); | |
435 | MMIO_D(PIPE_CSC_POSTOFF_HI(PIPE_A)); | |
436 | MMIO_D(PIPE_CSC_POSTOFF_ME(PIPE_A)); | |
437 | MMIO_D(PIPE_CSC_POSTOFF_LO(PIPE_A)); | |
438 | MMIO_D(PIPE_CSC_COEFF_RY_GY(PIPE_B)); | |
439 | MMIO_D(PIPE_CSC_COEFF_BY(PIPE_B)); | |
440 | MMIO_D(PIPE_CSC_COEFF_RU_GU(PIPE_B)); | |
441 | MMIO_D(PIPE_CSC_COEFF_BU(PIPE_B)); | |
442 | MMIO_D(PIPE_CSC_COEFF_RV_GV(PIPE_B)); | |
443 | MMIO_D(PIPE_CSC_COEFF_BV(PIPE_B)); | |
444 | MMIO_D(PIPE_CSC_MODE(PIPE_B)); | |
445 | MMIO_D(PIPE_CSC_PREOFF_HI(PIPE_B)); | |
446 | MMIO_D(PIPE_CSC_PREOFF_ME(PIPE_B)); | |
447 | MMIO_D(PIPE_CSC_PREOFF_LO(PIPE_B)); | |
448 | MMIO_D(PIPE_CSC_POSTOFF_HI(PIPE_B)); | |
449 | MMIO_D(PIPE_CSC_POSTOFF_ME(PIPE_B)); | |
450 | MMIO_D(PIPE_CSC_POSTOFF_LO(PIPE_B)); | |
451 | MMIO_D(PIPE_CSC_COEFF_RY_GY(PIPE_C)); | |
452 | MMIO_D(PIPE_CSC_COEFF_BY(PIPE_C)); | |
453 | MMIO_D(PIPE_CSC_COEFF_RU_GU(PIPE_C)); | |
454 | MMIO_D(PIPE_CSC_COEFF_BU(PIPE_C)); | |
455 | MMIO_D(PIPE_CSC_COEFF_RV_GV(PIPE_C)); | |
456 | MMIO_D(PIPE_CSC_COEFF_BV(PIPE_C)); | |
457 | MMIO_D(PIPE_CSC_MODE(PIPE_C)); | |
458 | MMIO_D(PIPE_CSC_PREOFF_HI(PIPE_C)); | |
459 | MMIO_D(PIPE_CSC_PREOFF_ME(PIPE_C)); | |
460 | MMIO_D(PIPE_CSC_PREOFF_LO(PIPE_C)); | |
461 | MMIO_D(PIPE_CSC_POSTOFF_HI(PIPE_C)); | |
462 | MMIO_D(PIPE_CSC_POSTOFF_ME(PIPE_C)); | |
463 | MMIO_D(PIPE_CSC_POSTOFF_LO(PIPE_C)); | |
464 | MMIO_D(PREC_PAL_INDEX(PIPE_A)); | |
465 | MMIO_D(PREC_PAL_DATA(PIPE_A)); | |
466 | MMIO_F(PREC_PAL_GC_MAX(PIPE_A, 0), 4 * 3); | |
467 | MMIO_D(PREC_PAL_INDEX(PIPE_B)); | |
468 | MMIO_D(PREC_PAL_DATA(PIPE_B)); | |
469 | MMIO_F(PREC_PAL_GC_MAX(PIPE_B, 0), 4 * 3); | |
470 | MMIO_D(PREC_PAL_INDEX(PIPE_C)); | |
471 | MMIO_D(PREC_PAL_DATA(PIPE_C)); | |
472 | MMIO_F(PREC_PAL_GC_MAX(PIPE_C, 0), 4 * 3); | |
473 | MMIO_D(_MMIO(0x60110)); | |
474 | MMIO_D(_MMIO(0x61110)); | |
475 | MMIO_F(_MMIO(0x70400), 0x40); | |
476 | MMIO_F(_MMIO(0x71400), 0x40); | |
477 | MMIO_F(_MMIO(0x72400), 0x40); | |
478 | MMIO_D(WM_LINETIME(PIPE_A)); | |
479 | MMIO_D(WM_LINETIME(PIPE_B)); | |
480 | MMIO_D(WM_LINETIME(PIPE_C)); | |
481 | MMIO_D(SPLL_CTL); | |
482 | MMIO_D(_MMIO(_WRPLL_CTL1)); | |
483 | MMIO_D(_MMIO(_WRPLL_CTL2)); | |
484 | MMIO_D(PORT_CLK_SEL(PORT_A)); | |
485 | MMIO_D(PORT_CLK_SEL(PORT_B)); | |
486 | MMIO_D(PORT_CLK_SEL(PORT_C)); | |
487 | MMIO_D(PORT_CLK_SEL(PORT_D)); | |
488 | MMIO_D(PORT_CLK_SEL(PORT_E)); | |
489 | MMIO_D(TRANS_CLK_SEL(TRANSCODER_A)); | |
490 | MMIO_D(TRANS_CLK_SEL(TRANSCODER_B)); | |
491 | MMIO_D(TRANS_CLK_SEL(TRANSCODER_C)); | |
492 | MMIO_D(HSW_NDE_RSTWRN_OPT); | |
493 | MMIO_D(_MMIO(0x46508)); | |
494 | MMIO_D(_MMIO(0x49080)); | |
495 | MMIO_D(_MMIO(0x49180)); | |
496 | MMIO_D(_MMIO(0x49280)); | |
497 | MMIO_F(_MMIO(0x49090), 0x14); | |
498 | MMIO_F(_MMIO(0x49190), 0x14); | |
499 | MMIO_F(_MMIO(0x49290), 0x14); | |
500 | MMIO_D(GAMMA_MODE(PIPE_A)); | |
501 | MMIO_D(GAMMA_MODE(PIPE_B)); | |
502 | MMIO_D(GAMMA_MODE(PIPE_C)); | |
5ac421a9 VS |
503 | MMIO_D(TRANS_MULT(TRANSCODER_A)); |
504 | MMIO_D(TRANS_MULT(TRANSCODER_B)); | |
505 | MMIO_D(TRANS_MULT(TRANSCODER_C)); | |
e0f74ed4 ZW |
506 | MMIO_D(HSW_TVIDEO_DIP_CTL(TRANSCODER_A)); |
507 | MMIO_D(HSW_TVIDEO_DIP_CTL(TRANSCODER_B)); | |
508 | MMIO_D(HSW_TVIDEO_DIP_CTL(TRANSCODER_C)); | |
509 | MMIO_D(SFUSE_STRAP); | |
510 | MMIO_D(SBI_ADDR); | |
511 | MMIO_D(SBI_DATA); | |
512 | MMIO_D(SBI_CTL_STAT); | |
513 | MMIO_D(PIXCLK_GATE); | |
514 | MMIO_F(_MMIO(_DPA_AUX_CH_CTL), 6 * 4); | |
515 | MMIO_D(DDI_BUF_CTL(PORT_A)); | |
516 | MMIO_D(DDI_BUF_CTL(PORT_B)); | |
517 | MMIO_D(DDI_BUF_CTL(PORT_C)); | |
518 | MMIO_D(DDI_BUF_CTL(PORT_D)); | |
519 | MMIO_D(DDI_BUF_CTL(PORT_E)); | |
520 | MMIO_D(DP_TP_CTL(PORT_A)); | |
521 | MMIO_D(DP_TP_CTL(PORT_B)); | |
522 | MMIO_D(DP_TP_CTL(PORT_C)); | |
523 | MMIO_D(DP_TP_CTL(PORT_D)); | |
524 | MMIO_D(DP_TP_CTL(PORT_E)); | |
525 | MMIO_D(DP_TP_STATUS(PORT_A)); | |
526 | MMIO_D(DP_TP_STATUS(PORT_B)); | |
527 | MMIO_D(DP_TP_STATUS(PORT_C)); | |
528 | MMIO_D(DP_TP_STATUS(PORT_D)); | |
529 | MMIO_D(DP_TP_STATUS(PORT_E)); | |
530 | MMIO_F(_MMIO(_DDI_BUF_TRANS_A), 0x50); | |
531 | MMIO_F(_MMIO(0x64e60), 0x50); | |
532 | MMIO_F(_MMIO(0x64eC0), 0x50); | |
533 | MMIO_F(_MMIO(0x64f20), 0x50); | |
534 | MMIO_F(_MMIO(0x64f80), 0x50); | |
535 | MMIO_D(HSW_AUD_CFG(PIPE_A)); | |
536 | MMIO_D(HSW_AUD_PIN_ELD_CP_VLD); | |
537 | MMIO_D(HSW_AUD_MISC_CTRL(PIPE_A)); | |
538 | MMIO_D(_MMIO(_TRANS_DDI_FUNC_CTL_A)); | |
539 | MMIO_D(_MMIO(_TRANS_DDI_FUNC_CTL_B)); | |
540 | MMIO_D(_MMIO(_TRANS_DDI_FUNC_CTL_C)); | |
541 | MMIO_D(_MMIO(_TRANS_DDI_FUNC_CTL_EDP)); | |
542 | MMIO_D(_MMIO(_TRANSA_MSA_MISC)); | |
543 | MMIO_D(_MMIO(_TRANSB_MSA_MISC)); | |
544 | MMIO_D(_MMIO(_TRANSC_MSA_MISC)); | |
545 | MMIO_D(_MMIO(_TRANS_EDP_MSA_MISC)); | |
546 | MMIO_D(FORCEWAKE); | |
547 | MMIO_D(FORCEWAKE_ACK); | |
548 | MMIO_D(GEN6_GT_CORE_STATUS); | |
549 | MMIO_D(GEN6_GT_THREAD_STATUS_REG); | |
550 | MMIO_D(GTFIFODBG); | |
551 | MMIO_D(GTFIFOCTL); | |
552 | MMIO_D(ECOBUS); | |
553 | MMIO_D(GEN6_RC_CONTROL); | |
554 | MMIO_D(GEN6_RC_STATE); | |
555 | MMIO_D(GEN6_RPNSWREQ); | |
556 | MMIO_D(GEN6_RC_VIDEO_FREQ); | |
557 | MMIO_D(GEN6_RP_DOWN_TIMEOUT); | |
558 | MMIO_D(GEN6_RP_INTERRUPT_LIMITS); | |
559 | MMIO_D(GEN6_RPSTAT1); | |
560 | MMIO_D(GEN6_RP_CONTROL); | |
561 | MMIO_D(GEN6_RP_UP_THRESHOLD); | |
562 | MMIO_D(GEN6_RP_DOWN_THRESHOLD); | |
563 | MMIO_D(GEN6_RP_CUR_UP_EI); | |
564 | MMIO_D(GEN6_RP_CUR_UP); | |
565 | MMIO_D(GEN6_RP_PREV_UP); | |
566 | MMIO_D(GEN6_RP_CUR_DOWN_EI); | |
567 | MMIO_D(GEN6_RP_CUR_DOWN); | |
568 | MMIO_D(GEN6_RP_PREV_DOWN); | |
569 | MMIO_D(GEN6_RP_UP_EI); | |
570 | MMIO_D(GEN6_RP_DOWN_EI); | |
571 | MMIO_D(GEN6_RP_IDLE_HYSTERSIS); | |
572 | MMIO_D(GEN6_RC1_WAKE_RATE_LIMIT); | |
573 | MMIO_D(GEN6_RC6_WAKE_RATE_LIMIT); | |
574 | MMIO_D(GEN6_RC6pp_WAKE_RATE_LIMIT); | |
575 | MMIO_D(GEN6_RC_EVALUATION_INTERVAL); | |
576 | MMIO_D(GEN6_RC_IDLE_HYSTERSIS); | |
577 | MMIO_D(GEN6_RC_SLEEP); | |
578 | MMIO_D(GEN6_RC1e_THRESHOLD); | |
579 | MMIO_D(GEN6_RC6_THRESHOLD); | |
580 | MMIO_D(GEN6_RC6p_THRESHOLD); | |
581 | MMIO_D(GEN6_RC6pp_THRESHOLD); | |
582 | MMIO_D(GEN6_PMINTRMSK); | |
583 | ||
584 | MMIO_D(RSTDBYCTL); | |
585 | MMIO_D(GEN6_GDRST); | |
586 | MMIO_F(FENCE_REG_GEN6_LO(0), 0x80); | |
587 | MMIO_D(CPU_VGACNTRL); | |
588 | MMIO_D(TILECTL); | |
589 | MMIO_D(GEN6_UCGCTL1); | |
590 | MMIO_D(GEN6_UCGCTL2); | |
591 | MMIO_F(_MMIO(0x4f000), 0x90); | |
592 | MMIO_D(GEN6_PCODE_DATA); | |
593 | MMIO_D(_MMIO(0x13812c)); | |
594 | MMIO_D(GEN7_ERR_INT); | |
595 | MMIO_D(HSW_EDRAM_CAP); | |
596 | MMIO_D(HSW_IDICR); | |
597 | MMIO_D(GFX_FLSH_CNTL_GEN6); | |
598 | MMIO_D(_MMIO(0x3c)); | |
599 | MMIO_D(_MMIO(0x860)); | |
600 | MMIO_D(ECOSKPD(RENDER_RING_BASE)); | |
601 | MMIO_D(_MMIO(0x121d0)); | |
602 | MMIO_D(ECOSKPD(BLT_RING_BASE)); | |
603 | MMIO_D(_MMIO(0x41d0)); | |
604 | MMIO_D(GAC_ECO_BITS); | |
605 | MMIO_D(_MMIO(0x6200)); | |
606 | MMIO_D(_MMIO(0x6204)); | |
607 | MMIO_D(_MMIO(0x6208)); | |
608 | MMIO_D(_MMIO(0x7118)); | |
609 | MMIO_D(_MMIO(0x7180)); | |
610 | MMIO_D(_MMIO(0x7408)); | |
611 | MMIO_D(_MMIO(0x7c00)); | |
612 | MMIO_D(GEN6_MBCTL); | |
613 | MMIO_D(_MMIO(0x911c)); | |
614 | MMIO_D(_MMIO(0x9120)); | |
615 | MMIO_D(GEN7_UCGCTL4); | |
616 | MMIO_D(GAB_CTL); | |
617 | MMIO_D(_MMIO(0x48800)); | |
618 | MMIO_D(_MMIO(0xce044)); | |
619 | MMIO_D(_MMIO(0xe6500)); | |
620 | MMIO_D(_MMIO(0xe6504)); | |
621 | MMIO_D(_MMIO(0xe6600)); | |
622 | MMIO_D(_MMIO(0xe6604)); | |
623 | MMIO_D(_MMIO(0xe6700)); | |
624 | MMIO_D(_MMIO(0xe6704)); | |
625 | MMIO_D(_MMIO(0xe6800)); | |
626 | MMIO_D(_MMIO(0xe6804)); | |
627 | MMIO_D(PCH_GMBUS4); | |
628 | MMIO_D(PCH_GMBUS5); | |
629 | MMIO_D(_MMIO(0x902c)); | |
630 | MMIO_D(_MMIO(0xec008)); | |
631 | MMIO_D(_MMIO(0xec00c)); | |
632 | MMIO_D(_MMIO(0xec008 + 0x18)); | |
633 | MMIO_D(_MMIO(0xec00c + 0x18)); | |
634 | MMIO_D(_MMIO(0xec008 + 0x18 * 2)); | |
635 | MMIO_D(_MMIO(0xec00c + 0x18 * 2)); | |
636 | MMIO_D(_MMIO(0xec008 + 0x18 * 3)); | |
637 | MMIO_D(_MMIO(0xec00c + 0x18 * 3)); | |
638 | MMIO_D(_MMIO(0xec408)); | |
639 | MMIO_D(_MMIO(0xec40c)); | |
640 | MMIO_D(_MMIO(0xec408 + 0x18)); | |
641 | MMIO_D(_MMIO(0xec40c + 0x18)); | |
642 | MMIO_D(_MMIO(0xec408 + 0x18 * 2)); | |
643 | MMIO_D(_MMIO(0xec40c + 0x18 * 2)); | |
644 | MMIO_D(_MMIO(0xec408 + 0x18 * 3)); | |
645 | MMIO_D(_MMIO(0xec40c + 0x18 * 3)); | |
646 | MMIO_D(_MMIO(0xfc810)); | |
647 | MMIO_D(_MMIO(0xfc81c)); | |
648 | MMIO_D(_MMIO(0xfc828)); | |
649 | MMIO_D(_MMIO(0xfc834)); | |
650 | MMIO_D(_MMIO(0xfcc00)); | |
651 | MMIO_D(_MMIO(0xfcc0c)); | |
652 | MMIO_D(_MMIO(0xfcc18)); | |
653 | MMIO_D(_MMIO(0xfcc24)); | |
654 | MMIO_D(_MMIO(0xfd000)); | |
655 | MMIO_D(_MMIO(0xfd00c)); | |
656 | MMIO_D(_MMIO(0xfd018)); | |
657 | MMIO_D(_MMIO(0xfd024)); | |
658 | MMIO_D(_MMIO(0xfd034)); | |
659 | MMIO_D(FPGA_DBG); | |
660 | MMIO_D(_MMIO(0x2054)); | |
661 | MMIO_D(_MMIO(0x12054)); | |
662 | MMIO_D(_MMIO(0x22054)); | |
663 | MMIO_D(_MMIO(0x1a054)); | |
664 | MMIO_D(_MMIO(0x44070)); | |
665 | MMIO_D(_MMIO(0x2178)); | |
666 | MMIO_D(_MMIO(0x217c)); | |
667 | MMIO_D(_MMIO(0x12178)); | |
668 | MMIO_D(_MMIO(0x1217c)); | |
669 | MMIO_F(_MMIO(0x5200), 32); | |
670 | MMIO_F(_MMIO(0x5240), 32); | |
671 | MMIO_F(_MMIO(0x5280), 16); | |
672 | MMIO_D(BCS_SWCTRL); | |
673 | MMIO_F(HS_INVOCATION_COUNT, 8); | |
674 | MMIO_F(DS_INVOCATION_COUNT, 8); | |
675 | MMIO_F(IA_VERTICES_COUNT, 8); | |
676 | MMIO_F(IA_PRIMITIVES_COUNT, 8); | |
677 | MMIO_F(VS_INVOCATION_COUNT, 8); | |
678 | MMIO_F(GS_INVOCATION_COUNT, 8); | |
679 | MMIO_F(GS_PRIMITIVES_COUNT, 8); | |
680 | MMIO_F(CL_INVOCATION_COUNT, 8); | |
681 | MMIO_F(CL_PRIMITIVES_COUNT, 8); | |
682 | MMIO_F(PS_INVOCATION_COUNT, 8); | |
683 | MMIO_F(PS_DEPTH_COUNT, 8); | |
684 | MMIO_D(ARB_MODE); | |
685 | MMIO_RING_D(RING_BBADDR); | |
686 | MMIO_D(_MMIO(0x2220)); | |
687 | MMIO_D(_MMIO(0x12220)); | |
688 | MMIO_D(_MMIO(0x22220)); | |
689 | MMIO_RING_D(RING_SYNC_1); | |
690 | MMIO_RING_D(RING_SYNC_0); | |
691 | MMIO_D(GUC_STATUS); | |
692 | ||
693 | MMIO_F(_MMIO(MCHBAR_MIRROR_BASE_SNB), 0x40000); | |
694 | MMIO_F(_MMIO(VGT_PVINFO_PAGE), VGT_PVINFO_SIZE); | |
695 | MMIO_F(LGC_PALETTE(PIPE_A, 0), 1024); | |
696 | MMIO_F(LGC_PALETTE(PIPE_B, 0), 1024); | |
697 | MMIO_F(LGC_PALETTE(PIPE_C, 0), 1024); | |
698 | ||
699 | return 0; | |
700 | } | |
701 | ||
702 | static int iterate_bdw_only_mmio(struct intel_gvt_mmio_table_iter *iter) | |
703 | { | |
704 | MMIO_D(HSW_PWR_WELL_CTL1); | |
705 | MMIO_D(HSW_PWR_WELL_CTL2); | |
706 | MMIO_D(HSW_PWR_WELL_CTL3); | |
707 | MMIO_D(HSW_PWR_WELL_CTL4); | |
708 | MMIO_D(HSW_PWR_WELL_CTL5); | |
709 | MMIO_D(HSW_PWR_WELL_CTL6); | |
710 | ||
711 | MMIO_D(WM_MISC); | |
712 | MMIO_D(_MMIO(_SRD_CTL_EDP)); | |
713 | ||
714 | MMIO_D(_MMIO(0xb1f0)); | |
715 | MMIO_D(_MMIO(0xb1c0)); | |
716 | MMIO_D(_MMIO(0xb100)); | |
717 | MMIO_D(_MMIO(0xb10c)); | |
718 | MMIO_D(_MMIO(0xb110)); | |
719 | MMIO_D(_MMIO(0x83a4)); | |
720 | MMIO_D(_MMIO(0x8430)); | |
721 | MMIO_D(_MMIO(0x2248)); | |
722 | MMIO_D(FORCEWAKE_ACK_HSW); | |
723 | ||
724 | return 0; | |
725 | } | |
726 | ||
727 | static int iterate_bdw_plus_mmio(struct intel_gvt_mmio_table_iter *iter) | |
728 | { | |
729 | struct drm_i915_private *dev_priv = iter->i915; | |
730 | ||
731 | MMIO_D(GEN8_GT_IMR(0)); | |
732 | MMIO_D(GEN8_GT_IER(0)); | |
733 | MMIO_D(GEN8_GT_IIR(0)); | |
734 | MMIO_D(GEN8_GT_ISR(0)); | |
735 | MMIO_D(GEN8_GT_IMR(1)); | |
736 | MMIO_D(GEN8_GT_IER(1)); | |
737 | MMIO_D(GEN8_GT_IIR(1)); | |
738 | MMIO_D(GEN8_GT_ISR(1)); | |
739 | MMIO_D(GEN8_GT_IMR(2)); | |
740 | MMIO_D(GEN8_GT_IER(2)); | |
741 | MMIO_D(GEN8_GT_IIR(2)); | |
742 | MMIO_D(GEN8_GT_ISR(2)); | |
743 | MMIO_D(GEN8_GT_IMR(3)); | |
744 | MMIO_D(GEN8_GT_IER(3)); | |
745 | MMIO_D(GEN8_GT_IIR(3)); | |
746 | MMIO_D(GEN8_GT_ISR(3)); | |
747 | MMIO_D(GEN8_DE_PIPE_IMR(PIPE_A)); | |
748 | MMIO_D(GEN8_DE_PIPE_IER(PIPE_A)); | |
749 | MMIO_D(GEN8_DE_PIPE_IIR(PIPE_A)); | |
750 | MMIO_D(GEN8_DE_PIPE_ISR(PIPE_A)); | |
751 | MMIO_D(GEN8_DE_PIPE_IMR(PIPE_B)); | |
752 | MMIO_D(GEN8_DE_PIPE_IER(PIPE_B)); | |
753 | MMIO_D(GEN8_DE_PIPE_IIR(PIPE_B)); | |
754 | MMIO_D(GEN8_DE_PIPE_ISR(PIPE_B)); | |
755 | MMIO_D(GEN8_DE_PIPE_IMR(PIPE_C)); | |
756 | MMIO_D(GEN8_DE_PIPE_IER(PIPE_C)); | |
757 | MMIO_D(GEN8_DE_PIPE_IIR(PIPE_C)); | |
758 | MMIO_D(GEN8_DE_PIPE_ISR(PIPE_C)); | |
759 | MMIO_D(GEN8_DE_PORT_IMR); | |
760 | MMIO_D(GEN8_DE_PORT_IER); | |
761 | MMIO_D(GEN8_DE_PORT_IIR); | |
762 | MMIO_D(GEN8_DE_PORT_ISR); | |
763 | MMIO_D(GEN8_DE_MISC_IMR); | |
764 | MMIO_D(GEN8_DE_MISC_IER); | |
765 | MMIO_D(GEN8_DE_MISC_IIR); | |
766 | MMIO_D(GEN8_DE_MISC_ISR); | |
767 | MMIO_D(GEN8_PCU_IMR); | |
768 | MMIO_D(GEN8_PCU_IER); | |
769 | MMIO_D(GEN8_PCU_IIR); | |
770 | MMIO_D(GEN8_PCU_ISR); | |
771 | MMIO_D(GEN8_MASTER_IRQ); | |
772 | MMIO_RING_D(RING_ACTHD_UDW); | |
773 | ||
774 | #define RING_REG(base) _MMIO((base) + 0xd0) | |
775 | MMIO_RING_D(RING_REG); | |
776 | #undef RING_REG | |
777 | ||
778 | #define RING_REG(base) _MMIO((base) + 0x230) | |
779 | MMIO_RING_D(RING_REG); | |
780 | #undef RING_REG | |
781 | ||
782 | #define RING_REG(base) _MMIO((base) + 0x234) | |
783 | MMIO_RING_F(RING_REG, 8); | |
784 | #undef RING_REG | |
785 | ||
786 | #define RING_REG(base) _MMIO((base) + 0x244) | |
787 | MMIO_RING_D(RING_REG); | |
788 | #undef RING_REG | |
789 | ||
790 | #define RING_REG(base) _MMIO((base) + 0x370) | |
791 | MMIO_RING_F(RING_REG, 48); | |
792 | #undef RING_REG | |
793 | ||
794 | #define RING_REG(base) _MMIO((base) + 0x3a0) | |
795 | MMIO_RING_D(RING_REG); | |
796 | #undef RING_REG | |
797 | ||
c640f6c5 VS |
798 | MMIO_D(PIPE_MISC(PIPE_A)); |
799 | MMIO_D(PIPE_MISC(PIPE_B)); | |
800 | MMIO_D(PIPE_MISC(PIPE_C)); | |
e0f74ed4 ZW |
801 | MMIO_D(_MMIO(0x1c1d0)); |
802 | MMIO_D(GEN6_MBCUNIT_SNPCR); | |
803 | MMIO_D(GEN7_MISCCPCTL); | |
804 | MMIO_D(_MMIO(0x1c054)); | |
805 | MMIO_D(GEN6_PCODE_MAILBOX); | |
806 | if (!IS_BROXTON(dev_priv)) | |
807 | MMIO_D(GEN8_PRIVATE_PAT_LO); | |
808 | MMIO_D(GEN8_PRIVATE_PAT_HI); | |
809 | MMIO_D(GAMTARBMODE); | |
810 | ||
811 | #define RING_REG(base) _MMIO((base) + 0x270) | |
812 | MMIO_RING_F(RING_REG, 32); | |
813 | #undef RING_REG | |
814 | ||
815 | MMIO_RING_D(RING_HWS_PGA); | |
816 | MMIO_D(HDC_CHICKEN0); | |
817 | MMIO_D(CHICKEN_PIPESL_1(PIPE_A)); | |
818 | MMIO_D(CHICKEN_PIPESL_1(PIPE_B)); | |
819 | MMIO_D(CHICKEN_PIPESL_1(PIPE_C)); | |
820 | MMIO_D(_MMIO(0x6671c)); | |
821 | MMIO_D(_MMIO(0x66c00)); | |
822 | MMIO_D(_MMIO(0x66c04)); | |
823 | MMIO_D(HSW_GTT_CACHE_EN); | |
824 | MMIO_D(GEN8_EU_DISABLE0); | |
825 | MMIO_D(GEN8_EU_DISABLE1); | |
826 | MMIO_D(GEN8_EU_DISABLE2); | |
827 | MMIO_D(_MMIO(0xfdc)); | |
828 | MMIO_D(GEN8_ROW_CHICKEN); | |
829 | MMIO_D(GEN7_ROW_CHICKEN2); | |
830 | MMIO_D(GEN8_UCGCTL6); | |
831 | MMIO_D(GEN8_L3SQCREG4); | |
832 | MMIO_D(GEN9_SCRATCH_LNCF1); | |
833 | MMIO_F(_MMIO(0x24d0), 48); | |
834 | MMIO_D(_MMIO(0x44484)); | |
835 | MMIO_D(_MMIO(0x4448c)); | |
836 | MMIO_D(GEN8_L3_LRA_1_GPGPU); | |
837 | MMIO_D(_MMIO(0x110000)); | |
838 | MMIO_D(_MMIO(0x48400)); | |
839 | MMIO_D(_MMIO(0x6e570)); | |
840 | MMIO_D(_MMIO(0x65f10)); | |
841 | MMIO_D(_MMIO(0xe194)); | |
842 | MMIO_D(_MMIO(0xe188)); | |
843 | MMIO_D(HALF_SLICE_CHICKEN2); | |
844 | MMIO_D(_MMIO(0x2580)); | |
845 | MMIO_D(_MMIO(0xe220)); | |
846 | MMIO_D(_MMIO(0xe230)); | |
847 | MMIO_D(_MMIO(0xe240)); | |
848 | MMIO_D(_MMIO(0xe260)); | |
849 | MMIO_D(_MMIO(0xe270)); | |
850 | MMIO_D(_MMIO(0xe280)); | |
851 | MMIO_D(_MMIO(0xe2a0)); | |
852 | MMIO_D(_MMIO(0xe2b0)); | |
853 | MMIO_D(_MMIO(0xe2c0)); | |
854 | MMIO_D(_MMIO(0x21f0)); | |
855 | MMIO_D(GEN8_GAMW_ECO_DEV_RW_IA); | |
856 | MMIO_D(_MMIO(0x215c)); | |
857 | MMIO_F(_MMIO(0x2290), 8); | |
858 | MMIO_D(_MMIO(0x2b00)); | |
859 | MMIO_D(_MMIO(0x2360)); | |
860 | MMIO_D(_MMIO(0x1c17c)); | |
861 | MMIO_D(_MMIO(0x1c178)); | |
862 | MMIO_D(_MMIO(0x4260)); | |
863 | MMIO_D(_MMIO(0x4264)); | |
864 | MMIO_D(_MMIO(0x4268)); | |
865 | MMIO_D(_MMIO(0x426c)); | |
866 | MMIO_D(_MMIO(0x4270)); | |
867 | MMIO_D(_MMIO(0x4094)); | |
868 | MMIO_D(_MMIO(0x22178)); | |
869 | MMIO_D(_MMIO(0x1a178)); | |
870 | MMIO_D(_MMIO(0x1a17c)); | |
871 | MMIO_D(_MMIO(0x2217c)); | |
872 | MMIO_D(EDP_PSR_IMR); | |
873 | MMIO_D(EDP_PSR_IIR); | |
874 | MMIO_D(_MMIO(0xe4cc)); | |
875 | MMIO_D(GEN7_SC_INSTDONE); | |
876 | ||
877 | return 0; | |
878 | } | |
879 | ||
880 | static int iterate_pre_skl_mmio(struct intel_gvt_mmio_table_iter *iter) | |
881 | { | |
882 | MMIO_D(FORCEWAKE_MT); | |
883 | ||
884 | MMIO_D(PCH_ADPA); | |
885 | MMIO_F(_MMIO(_PCH_DPB_AUX_CH_CTL), 6 * 4); | |
886 | MMIO_F(_MMIO(_PCH_DPC_AUX_CH_CTL), 6 * 4); | |
887 | MMIO_F(_MMIO(_PCH_DPD_AUX_CH_CTL), 6 * 4); | |
888 | ||
889 | MMIO_F(_MMIO(0x70440), 0xc); | |
890 | MMIO_F(_MMIO(0x71440), 0xc); | |
891 | MMIO_F(_MMIO(0x72440), 0xc); | |
892 | MMIO_F(_MMIO(0x7044c), 0xc); | |
893 | MMIO_F(_MMIO(0x7144c), 0xc); | |
894 | MMIO_F(_MMIO(0x7244c), 0xc); | |
895 | ||
896 | return 0; | |
897 | } | |
898 | ||
899 | static int iterate_skl_plus_mmio(struct intel_gvt_mmio_table_iter *iter) | |
900 | { | |
901 | struct drm_i915_private *dev_priv = iter->i915; | |
902 | ||
903 | MMIO_D(FORCEWAKE_RENDER_GEN9); | |
904 | MMIO_D(FORCEWAKE_ACK_RENDER_GEN9); | |
905 | MMIO_D(FORCEWAKE_GT_GEN9); | |
906 | MMIO_D(FORCEWAKE_ACK_GT_GEN9); | |
907 | MMIO_D(FORCEWAKE_MEDIA_GEN9); | |
908 | MMIO_D(FORCEWAKE_ACK_MEDIA_GEN9); | |
909 | MMIO_F(DP_AUX_CH_CTL(AUX_CH_B), 6 * 4); | |
910 | MMIO_F(DP_AUX_CH_CTL(AUX_CH_C), 6 * 4); | |
911 | MMIO_F(DP_AUX_CH_CTL(AUX_CH_D), 6 * 4); | |
912 | MMIO_D(HSW_PWR_WELL_CTL1); | |
913 | MMIO_D(HSW_PWR_WELL_CTL2); | |
914 | MMIO_D(DBUF_CTL_S(0)); | |
915 | MMIO_D(GEN9_PG_ENABLE); | |
916 | MMIO_D(GEN9_MEDIA_PG_IDLE_HYSTERESIS); | |
917 | MMIO_D(GEN9_RENDER_PG_IDLE_HYSTERESIS); | |
918 | MMIO_D(GEN9_GAMT_ECO_REG_RW_IA); | |
919 | MMIO_D(MMCD_MISC_CTRL); | |
920 | MMIO_D(CHICKEN_PAR1_1); | |
921 | MMIO_D(DC_STATE_EN); | |
922 | MMIO_D(DC_STATE_DEBUG); | |
923 | MMIO_D(CDCLK_CTL); | |
924 | MMIO_D(LCPLL1_CTL); | |
925 | MMIO_D(LCPLL2_CTL); | |
926 | MMIO_D(_MMIO(_DPLL1_CFGCR1)); | |
927 | MMIO_D(_MMIO(_DPLL2_CFGCR1)); | |
928 | MMIO_D(_MMIO(_DPLL3_CFGCR1)); | |
929 | MMIO_D(_MMIO(_DPLL1_CFGCR2)); | |
930 | MMIO_D(_MMIO(_DPLL2_CFGCR2)); | |
931 | MMIO_D(_MMIO(_DPLL3_CFGCR2)); | |
932 | MMIO_D(DPLL_CTRL1); | |
933 | MMIO_D(DPLL_CTRL2); | |
934 | MMIO_D(DPLL_STATUS); | |
935 | MMIO_D(SKL_PS_WIN_POS(PIPE_A, 0)); | |
936 | MMIO_D(SKL_PS_WIN_POS(PIPE_A, 1)); | |
937 | MMIO_D(SKL_PS_WIN_POS(PIPE_B, 0)); | |
938 | MMIO_D(SKL_PS_WIN_POS(PIPE_B, 1)); | |
939 | MMIO_D(SKL_PS_WIN_POS(PIPE_C, 0)); | |
940 | MMIO_D(SKL_PS_WIN_POS(PIPE_C, 1)); | |
941 | MMIO_D(SKL_PS_WIN_SZ(PIPE_A, 0)); | |
942 | MMIO_D(SKL_PS_WIN_SZ(PIPE_A, 1)); | |
943 | MMIO_D(SKL_PS_WIN_SZ(PIPE_B, 0)); | |
944 | MMIO_D(SKL_PS_WIN_SZ(PIPE_B, 1)); | |
945 | MMIO_D(SKL_PS_WIN_SZ(PIPE_C, 0)); | |
946 | MMIO_D(SKL_PS_WIN_SZ(PIPE_C, 1)); | |
947 | MMIO_D(SKL_PS_CTRL(PIPE_A, 0)); | |
948 | MMIO_D(SKL_PS_CTRL(PIPE_A, 1)); | |
949 | MMIO_D(SKL_PS_CTRL(PIPE_B, 0)); | |
950 | MMIO_D(SKL_PS_CTRL(PIPE_B, 1)); | |
951 | MMIO_D(SKL_PS_CTRL(PIPE_C, 0)); | |
952 | MMIO_D(SKL_PS_CTRL(PIPE_C, 1)); | |
953 | MMIO_D(PLANE_BUF_CFG(PIPE_A, 0)); | |
954 | MMIO_D(PLANE_BUF_CFG(PIPE_A, 1)); | |
955 | MMIO_D(PLANE_BUF_CFG(PIPE_A, 2)); | |
956 | MMIO_D(PLANE_BUF_CFG(PIPE_A, 3)); | |
957 | MMIO_D(PLANE_BUF_CFG(PIPE_B, 0)); | |
958 | MMIO_D(PLANE_BUF_CFG(PIPE_B, 1)); | |
959 | MMIO_D(PLANE_BUF_CFG(PIPE_B, 2)); | |
960 | MMIO_D(PLANE_BUF_CFG(PIPE_B, 3)); | |
961 | MMIO_D(PLANE_BUF_CFG(PIPE_C, 0)); | |
962 | MMIO_D(PLANE_BUF_CFG(PIPE_C, 1)); | |
963 | MMIO_D(PLANE_BUF_CFG(PIPE_C, 2)); | |
964 | MMIO_D(PLANE_BUF_CFG(PIPE_C, 3)); | |
965 | MMIO_D(CUR_BUF_CFG(PIPE_A)); | |
966 | MMIO_D(CUR_BUF_CFG(PIPE_B)); | |
967 | MMIO_D(CUR_BUF_CFG(PIPE_C)); | |
968 | MMIO_F(PLANE_WM(PIPE_A, 0, 0), 4 * 8); | |
969 | MMIO_F(PLANE_WM(PIPE_A, 1, 0), 4 * 8); | |
970 | MMIO_F(PLANE_WM(PIPE_A, 2, 0), 4 * 8); | |
971 | MMIO_F(PLANE_WM(PIPE_B, 0, 0), 4 * 8); | |
972 | MMIO_F(PLANE_WM(PIPE_B, 1, 0), 4 * 8); | |
973 | MMIO_F(PLANE_WM(PIPE_B, 2, 0), 4 * 8); | |
974 | MMIO_F(PLANE_WM(PIPE_C, 0, 0), 4 * 8); | |
975 | MMIO_F(PLANE_WM(PIPE_C, 1, 0), 4 * 8); | |
976 | MMIO_F(PLANE_WM(PIPE_C, 2, 0), 4 * 8); | |
977 | MMIO_F(CUR_WM(PIPE_A, 0), 4 * 8); | |
978 | MMIO_F(CUR_WM(PIPE_B, 0), 4 * 8); | |
979 | MMIO_F(CUR_WM(PIPE_C, 0), 4 * 8); | |
980 | MMIO_D(PLANE_WM_TRANS(PIPE_A, 0)); | |
981 | MMIO_D(PLANE_WM_TRANS(PIPE_A, 1)); | |
982 | MMIO_D(PLANE_WM_TRANS(PIPE_A, 2)); | |
983 | MMIO_D(PLANE_WM_TRANS(PIPE_B, 0)); | |
984 | MMIO_D(PLANE_WM_TRANS(PIPE_B, 1)); | |
985 | MMIO_D(PLANE_WM_TRANS(PIPE_B, 2)); | |
986 | MMIO_D(PLANE_WM_TRANS(PIPE_C, 0)); | |
987 | MMIO_D(PLANE_WM_TRANS(PIPE_C, 1)); | |
988 | MMIO_D(PLANE_WM_TRANS(PIPE_C, 2)); | |
989 | MMIO_D(CUR_WM_TRANS(PIPE_A)); | |
990 | MMIO_D(CUR_WM_TRANS(PIPE_B)); | |
991 | MMIO_D(CUR_WM_TRANS(PIPE_C)); | |
992 | MMIO_D(PLANE_NV12_BUF_CFG(PIPE_A, 0)); | |
993 | MMIO_D(PLANE_NV12_BUF_CFG(PIPE_A, 1)); | |
994 | MMIO_D(PLANE_NV12_BUF_CFG(PIPE_A, 2)); | |
995 | MMIO_D(PLANE_NV12_BUF_CFG(PIPE_A, 3)); | |
996 | MMIO_D(PLANE_NV12_BUF_CFG(PIPE_B, 0)); | |
997 | MMIO_D(PLANE_NV12_BUF_CFG(PIPE_B, 1)); | |
998 | MMIO_D(PLANE_NV12_BUF_CFG(PIPE_B, 2)); | |
999 | MMIO_D(PLANE_NV12_BUF_CFG(PIPE_B, 3)); | |
1000 | MMIO_D(PLANE_NV12_BUF_CFG(PIPE_C, 0)); | |
1001 | MMIO_D(PLANE_NV12_BUF_CFG(PIPE_C, 1)); | |
1002 | MMIO_D(PLANE_NV12_BUF_CFG(PIPE_C, 2)); | |
1003 | MMIO_D(PLANE_NV12_BUF_CFG(PIPE_C, 3)); | |
1004 | MMIO_D(_MMIO(_REG_701C0(PIPE_A, 1))); | |
1005 | MMIO_D(_MMIO(_REG_701C0(PIPE_A, 2))); | |
1006 | MMIO_D(_MMIO(_REG_701C0(PIPE_A, 3))); | |
1007 | MMIO_D(_MMIO(_REG_701C0(PIPE_A, 4))); | |
1008 | MMIO_D(_MMIO(_REG_701C0(PIPE_B, 1))); | |
1009 | MMIO_D(_MMIO(_REG_701C0(PIPE_B, 2))); | |
1010 | MMIO_D(_MMIO(_REG_701C0(PIPE_B, 3))); | |
1011 | MMIO_D(_MMIO(_REG_701C0(PIPE_B, 4))); | |
1012 | MMIO_D(_MMIO(_REG_701C0(PIPE_C, 1))); | |
1013 | MMIO_D(_MMIO(_REG_701C0(PIPE_C, 2))); | |
1014 | MMIO_D(_MMIO(_REG_701C0(PIPE_C, 3))); | |
1015 | MMIO_D(_MMIO(_REG_701C0(PIPE_C, 4))); | |
1016 | MMIO_D(_MMIO(_REG_701C4(PIPE_A, 1))); | |
1017 | MMIO_D(_MMIO(_REG_701C4(PIPE_A, 2))); | |
1018 | MMIO_D(_MMIO(_REG_701C4(PIPE_A, 3))); | |
1019 | MMIO_D(_MMIO(_REG_701C4(PIPE_A, 4))); | |
1020 | MMIO_D(_MMIO(_REG_701C4(PIPE_B, 1))); | |
1021 | MMIO_D(_MMIO(_REG_701C4(PIPE_B, 2))); | |
1022 | MMIO_D(_MMIO(_REG_701C4(PIPE_B, 3))); | |
1023 | MMIO_D(_MMIO(_REG_701C4(PIPE_B, 4))); | |
1024 | MMIO_D(_MMIO(_REG_701C4(PIPE_C, 1))); | |
1025 | MMIO_D(_MMIO(_REG_701C4(PIPE_C, 2))); | |
1026 | MMIO_D(_MMIO(_REG_701C4(PIPE_C, 3))); | |
1027 | MMIO_D(_MMIO(_REG_701C4(PIPE_C, 4))); | |
1028 | MMIO_D(_MMIO(_PLANE_CTL_3_A)); | |
1029 | MMIO_D(_MMIO(_PLANE_CTL_3_B)); | |
1030 | MMIO_D(_MMIO(0x72380)); | |
1031 | MMIO_D(_MMIO(0x7239c)); | |
1032 | MMIO_D(_MMIO(_PLANE_SURF_3_A)); | |
1033 | MMIO_D(_MMIO(_PLANE_SURF_3_B)); | |
1034 | MMIO_D(DMC_SSP_BASE); | |
1035 | MMIO_D(DMC_HTP_SKL); | |
1036 | MMIO_D(DMC_LAST_WRITE); | |
1037 | MMIO_D(BDW_SCRATCH1); | |
1038 | MMIO_D(SKL_DFSM); | |
1039 | MMIO_D(DISPIO_CR_TX_BMU_CR0); | |
1040 | MMIO_F(GEN9_GFX_MOCS(0), 0x7f8); | |
1041 | MMIO_F(GEN7_L3CNTLREG2, 0x80); | |
1042 | MMIO_D(RPM_CONFIG0); | |
1043 | MMIO_D(_MMIO(0xd08)); | |
1044 | MMIO_D(RC6_LOCATION); | |
1045 | MMIO_D(GEN7_FF_SLICE_CS_CHICKEN1); | |
1046 | MMIO_D(GEN9_CS_DEBUG_MODE1); | |
1047 | /* TRTT */ | |
1048 | MMIO_D(TRVATTL3PTRDW(0)); | |
1049 | MMIO_D(TRVATTL3PTRDW(1)); | |
1050 | MMIO_D(TRVATTL3PTRDW(2)); | |
1051 | MMIO_D(TRVATTL3PTRDW(3)); | |
1052 | MMIO_D(TRVADR); | |
1053 | MMIO_D(TRTTE); | |
1054 | MMIO_D(_MMIO(0x4dfc)); | |
1055 | MMIO_D(_MMIO(0x46430)); | |
1056 | MMIO_D(_MMIO(0x46520)); | |
1057 | MMIO_D(_MMIO(0xc403c)); | |
1058 | MMIO_D(GEN8_GARBCNTL); | |
1059 | MMIO_D(DMA_CTRL); | |
1060 | MMIO_D(_MMIO(0x65900)); | |
1061 | MMIO_D(GEN6_STOLEN_RESERVED); | |
1062 | MMIO_D(_MMIO(0x4068)); | |
1063 | MMIO_D(_MMIO(0x67054)); | |
1064 | MMIO_D(_MMIO(0x6e560)); | |
1065 | MMIO_D(_MMIO(0x6e554)); | |
1066 | MMIO_D(_MMIO(0x2b20)); | |
1067 | MMIO_D(_MMIO(0x65f00)); | |
1068 | MMIO_D(_MMIO(0x65f08)); | |
1069 | MMIO_D(_MMIO(0x320f0)); | |
1070 | MMIO_D(_MMIO(0x70034)); | |
1071 | MMIO_D(_MMIO(0x71034)); | |
1072 | MMIO_D(_MMIO(0x72034)); | |
1073 | MMIO_D(_MMIO(_PLANE_KEYVAL_1(PIPE_A))); | |
1074 | MMIO_D(_MMIO(_PLANE_KEYVAL_1(PIPE_B))); | |
1075 | MMIO_D(_MMIO(_PLANE_KEYVAL_1(PIPE_C))); | |
1076 | MMIO_D(_MMIO(_PLANE_KEYMAX_1(PIPE_A))); | |
1077 | MMIO_D(_MMIO(_PLANE_KEYMAX_1(PIPE_B))); | |
1078 | MMIO_D(_MMIO(_PLANE_KEYMAX_1(PIPE_C))); | |
1079 | MMIO_D(_MMIO(_PLANE_KEYMSK_1(PIPE_A))); | |
1080 | MMIO_D(_MMIO(_PLANE_KEYMSK_1(PIPE_B))); | |
1081 | MMIO_D(_MMIO(_PLANE_KEYMSK_1(PIPE_C))); | |
1082 | MMIO_D(_MMIO(0x44500)); | |
1083 | #define CSFE_CHICKEN1_REG(base) _MMIO((base) + 0xD4) | |
1084 | MMIO_RING_D(CSFE_CHICKEN1_REG); | |
1085 | #undef CSFE_CHICKEN1_REG | |
1086 | MMIO_D(GEN8_HDC_CHICKEN1); | |
1087 | MMIO_D(GEN9_WM_CHICKEN3); | |
1088 | ||
b75ef35b AW |
1089 | if (IS_KABYLAKE(dev_priv) || |
1090 | IS_COFFEELAKE(dev_priv) || IS_COMETLAKE(dev_priv)) | |
e0f74ed4 ZW |
1091 | MMIO_D(GAMT_CHKN_BIT_REG); |
1092 | if (!IS_BROXTON(dev_priv)) | |
1093 | MMIO_D(GEN9_CTX_PREEMPT_REG); | |
1094 | MMIO_F(_MMIO(DMC_MMIO_START_RANGE), 0x3000); | |
1095 | return 0; | |
1096 | } | |
1097 | ||
1098 | static int iterate_bxt_mmio(struct intel_gvt_mmio_table_iter *iter) | |
1099 | { | |
1100 | struct drm_i915_private *dev_priv = iter->i915; | |
1101 | ||
1102 | MMIO_F(_MMIO(0x80000), 0x3000); | |
1103 | MMIO_D(GEN7_SAMPLER_INSTDONE); | |
1104 | MMIO_D(GEN7_ROW_INSTDONE); | |
1105 | MMIO_D(GEN8_FAULT_TLB_DATA0); | |
1106 | MMIO_D(GEN8_FAULT_TLB_DATA1); | |
1107 | MMIO_D(ERROR_GEN6); | |
1108 | MMIO_D(DONE_REG); | |
1109 | MMIO_D(EIR); | |
1110 | MMIO_D(PGTBL_ER); | |
1111 | MMIO_D(_MMIO(0x4194)); | |
1112 | MMIO_D(_MMIO(0x4294)); | |
1113 | MMIO_D(_MMIO(0x4494)); | |
1114 | MMIO_RING_D(RING_PSMI_CTL); | |
1115 | MMIO_RING_D(RING_DMA_FADD); | |
1116 | MMIO_RING_D(RING_DMA_FADD_UDW); | |
1117 | MMIO_RING_D(RING_IPEHR); | |
1118 | MMIO_RING_D(RING_INSTPS); | |
1119 | MMIO_RING_D(RING_BBADDR_UDW); | |
1120 | MMIO_RING_D(RING_BBSTATE); | |
1121 | MMIO_RING_D(RING_IPEIR); | |
1122 | MMIO_F(SOFT_SCRATCH(0), 16 * 4); | |
1123 | MMIO_D(BXT_P_CR_GT_DISP_PWRON); | |
1124 | MMIO_D(BXT_RP_STATE_CAP); | |
1125 | MMIO_D(BXT_PHY_CTL_FAMILY(DPIO_PHY0)); | |
1126 | MMIO_D(BXT_PHY_CTL_FAMILY(DPIO_PHY1)); | |
1127 | MMIO_D(BXT_PHY_CTL(PORT_A)); | |
1128 | MMIO_D(BXT_PHY_CTL(PORT_B)); | |
1129 | MMIO_D(BXT_PHY_CTL(PORT_C)); | |
1130 | MMIO_D(BXT_PORT_PLL_ENABLE(PORT_A)); | |
1131 | MMIO_D(BXT_PORT_PLL_ENABLE(PORT_B)); | |
1132 | MMIO_D(BXT_PORT_PLL_ENABLE(PORT_C)); | |
1133 | MMIO_D(BXT_PORT_CL1CM_DW0(DPIO_PHY0)); | |
1134 | MMIO_D(BXT_PORT_CL1CM_DW9(DPIO_PHY0)); | |
1135 | MMIO_D(BXT_PORT_CL1CM_DW10(DPIO_PHY0)); | |
1136 | MMIO_D(BXT_PORT_CL1CM_DW28(DPIO_PHY0)); | |
1137 | MMIO_D(BXT_PORT_CL1CM_DW30(DPIO_PHY0)); | |
1138 | MMIO_D(BXT_PORT_CL2CM_DW6(DPIO_PHY0)); | |
1139 | MMIO_D(BXT_PORT_REF_DW3(DPIO_PHY0)); | |
1140 | MMIO_D(BXT_PORT_REF_DW6(DPIO_PHY0)); | |
1141 | MMIO_D(BXT_PORT_REF_DW8(DPIO_PHY0)); | |
1142 | MMIO_D(BXT_PORT_CL1CM_DW0(DPIO_PHY1)); | |
1143 | MMIO_D(BXT_PORT_CL1CM_DW9(DPIO_PHY1)); | |
1144 | MMIO_D(BXT_PORT_CL1CM_DW10(DPIO_PHY1)); | |
1145 | MMIO_D(BXT_PORT_CL1CM_DW28(DPIO_PHY1)); | |
1146 | MMIO_D(BXT_PORT_CL1CM_DW30(DPIO_PHY1)); | |
1147 | MMIO_D(BXT_PORT_CL2CM_DW6(DPIO_PHY1)); | |
1148 | MMIO_D(BXT_PORT_REF_DW3(DPIO_PHY1)); | |
1149 | MMIO_D(BXT_PORT_REF_DW6(DPIO_PHY1)); | |
1150 | MMIO_D(BXT_PORT_REF_DW8(DPIO_PHY1)); | |
1151 | MMIO_D(BXT_PORT_PLL_EBB_0(DPIO_PHY0, DPIO_CH0)); | |
1152 | MMIO_D(BXT_PORT_PLL_EBB_4(DPIO_PHY0, DPIO_CH0)); | |
1153 | MMIO_D(BXT_PORT_PCS_DW10_LN01(DPIO_PHY0, DPIO_CH0)); | |
1154 | MMIO_D(BXT_PORT_PCS_DW10_GRP(DPIO_PHY0, DPIO_CH0)); | |
1155 | MMIO_D(BXT_PORT_PCS_DW12_LN01(DPIO_PHY0, DPIO_CH0)); | |
1156 | MMIO_D(BXT_PORT_PCS_DW12_LN23(DPIO_PHY0, DPIO_CH0)); | |
1157 | MMIO_D(BXT_PORT_PCS_DW12_GRP(DPIO_PHY0, DPIO_CH0)); | |
1158 | MMIO_D(BXT_PORT_TX_DW2_LN0(DPIO_PHY0, DPIO_CH0)); | |
1159 | MMIO_D(BXT_PORT_TX_DW2_GRP(DPIO_PHY0, DPIO_CH0)); | |
1160 | MMIO_D(BXT_PORT_TX_DW3_LN0(DPIO_PHY0, DPIO_CH0)); | |
1161 | MMIO_D(BXT_PORT_TX_DW3_GRP(DPIO_PHY0, DPIO_CH0)); | |
1162 | MMIO_D(BXT_PORT_TX_DW4_LN0(DPIO_PHY0, DPIO_CH0)); | |
1163 | MMIO_D(BXT_PORT_TX_DW4_GRP(DPIO_PHY0, DPIO_CH0)); | |
1164 | MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH0, 0)); | |
1165 | MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH0, 1)); | |
1166 | MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH0, 2)); | |
1167 | MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH0, 3)); | |
1168 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 0)); | |
1169 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 1)); | |
1170 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 2)); | |
1171 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 3)); | |
1172 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 6)); | |
1173 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 8)); | |
1174 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 9)); | |
1175 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 10)); | |
1176 | MMIO_D(BXT_PORT_PLL_EBB_0(DPIO_PHY0, DPIO_CH1)); | |
1177 | MMIO_D(BXT_PORT_PLL_EBB_4(DPIO_PHY0, DPIO_CH1)); | |
1178 | MMIO_D(BXT_PORT_PCS_DW10_LN01(DPIO_PHY0, DPIO_CH1)); | |
1179 | MMIO_D(BXT_PORT_PCS_DW10_GRP(DPIO_PHY0, DPIO_CH1)); | |
1180 | MMIO_D(BXT_PORT_PCS_DW12_LN01(DPIO_PHY0, DPIO_CH1)); | |
1181 | MMIO_D(BXT_PORT_PCS_DW12_LN23(DPIO_PHY0, DPIO_CH1)); | |
1182 | MMIO_D(BXT_PORT_PCS_DW12_GRP(DPIO_PHY0, DPIO_CH1)); | |
1183 | MMIO_D(BXT_PORT_TX_DW2_LN0(DPIO_PHY0, DPIO_CH1)); | |
1184 | MMIO_D(BXT_PORT_TX_DW2_GRP(DPIO_PHY0, DPIO_CH1)); | |
1185 | MMIO_D(BXT_PORT_TX_DW3_LN0(DPIO_PHY0, DPIO_CH1)); | |
1186 | MMIO_D(BXT_PORT_TX_DW3_GRP(DPIO_PHY0, DPIO_CH1)); | |
1187 | MMIO_D(BXT_PORT_TX_DW4_LN0(DPIO_PHY0, DPIO_CH1)); | |
1188 | MMIO_D(BXT_PORT_TX_DW4_GRP(DPIO_PHY0, DPIO_CH1)); | |
1189 | MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH1, 0)); | |
1190 | MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH1, 1)); | |
1191 | MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH1, 2)); | |
1192 | MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH1, 3)); | |
1193 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 0)); | |
1194 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 1)); | |
1195 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 2)); | |
1196 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 3)); | |
1197 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 6)); | |
1198 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 8)); | |
1199 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 9)); | |
1200 | MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 10)); | |
1201 | MMIO_D(BXT_PORT_PLL_EBB_0(DPIO_PHY1, DPIO_CH0)); | |
1202 | MMIO_D(BXT_PORT_PLL_EBB_4(DPIO_PHY1, DPIO_CH0)); | |
1203 | MMIO_D(BXT_PORT_PCS_DW10_LN01(DPIO_PHY1, DPIO_CH0)); | |
1204 | MMIO_D(BXT_PORT_PCS_DW10_GRP(DPIO_PHY1, DPIO_CH0)); | |
1205 | MMIO_D(BXT_PORT_PCS_DW12_LN01(DPIO_PHY1, DPIO_CH0)); | |
1206 | MMIO_D(BXT_PORT_PCS_DW12_LN23(DPIO_PHY1, DPIO_CH0)); | |
1207 | MMIO_D(BXT_PORT_PCS_DW12_GRP(DPIO_PHY1, DPIO_CH0)); | |
1208 | MMIO_D(BXT_PORT_TX_DW2_LN0(DPIO_PHY1, DPIO_CH0)); | |
1209 | MMIO_D(BXT_PORT_TX_DW2_GRP(DPIO_PHY1, DPIO_CH0)); | |
1210 | MMIO_D(BXT_PORT_TX_DW3_LN0(DPIO_PHY1, DPIO_CH0)); | |
1211 | MMIO_D(BXT_PORT_TX_DW3_GRP(DPIO_PHY1, DPIO_CH0)); | |
1212 | MMIO_D(BXT_PORT_TX_DW4_LN0(DPIO_PHY1, DPIO_CH0)); | |
1213 | MMIO_D(BXT_PORT_TX_DW4_GRP(DPIO_PHY1, DPIO_CH0)); | |
1214 | MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY1, DPIO_CH0, 0)); | |
1215 | MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY1, DPIO_CH0, 1)); | |
1216 | MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY1, DPIO_CH0, 2)); | |
1217 | MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY1, DPIO_CH0, 3)); | |
1218 | MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 0)); | |
1219 | MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 1)); | |
1220 | MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 2)); | |
1221 | MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 3)); | |
1222 | MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 6)); | |
1223 | MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 8)); | |
1224 | MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 9)); | |
1225 | MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 10)); | |
1226 | MMIO_D(BXT_DE_PLL_CTL); | |
1227 | MMIO_D(BXT_DE_PLL_ENABLE); | |
1228 | MMIO_D(BXT_DSI_PLL_CTL); | |
1229 | MMIO_D(BXT_DSI_PLL_ENABLE); | |
1230 | MMIO_D(GEN9_CLKGATE_DIS_0); | |
1231 | MMIO_D(GEN9_CLKGATE_DIS_4); | |
1232 | MMIO_D(HSW_TVIDEO_DIP_GCP(TRANSCODER_A)); | |
1233 | MMIO_D(HSW_TVIDEO_DIP_GCP(TRANSCODER_B)); | |
1234 | MMIO_D(HSW_TVIDEO_DIP_GCP(TRANSCODER_C)); | |
1235 | MMIO_D(RC6_CTX_BASE); | |
1236 | MMIO_D(GEN8_PUSHBUS_CONTROL); | |
1237 | MMIO_D(GEN8_PUSHBUS_ENABLE); | |
1238 | MMIO_D(GEN8_PUSHBUS_SHIFT); | |
1239 | MMIO_D(GEN6_GFXPAUSE); | |
1240 | MMIO_D(GEN8_L3SQCREG1); | |
1241 | MMIO_D(GEN8_L3CNTLREG); | |
1242 | MMIO_D(_MMIO(0x20D8)); | |
1243 | MMIO_F(GEN8_RING_CS_GPR(RENDER_RING_BASE, 0), 0x40); | |
1244 | MMIO_F(GEN8_RING_CS_GPR(GEN6_BSD_RING_BASE, 0), 0x40); | |
1245 | MMIO_F(GEN8_RING_CS_GPR(BLT_RING_BASE, 0), 0x40); | |
1246 | MMIO_F(GEN8_RING_CS_GPR(VEBOX_RING_BASE, 0), 0x40); | |
1247 | MMIO_D(GEN9_CTX_PREEMPT_REG); | |
1248 | MMIO_D(GEN8_PRIVATE_PAT_LO); | |
1249 | ||
1250 | return 0; | |
1251 | } | |
1252 | ||
1253 | /** | |
1254 | * intel_gvt_iterate_mmio_table - Iterate the GVT MMIO table | |
1255 | * @iter: the interator | |
1256 | * | |
1257 | * This function is called for iterating the GVT MMIO table when i915 is | |
1258 | * taking the snapshot of the HW and GVT is building MMIO tracking table. | |
1259 | */ | |
1260 | int intel_gvt_iterate_mmio_table(struct intel_gvt_mmio_table_iter *iter) | |
1261 | { | |
1262 | struct drm_i915_private *i915 = iter->i915; | |
1263 | int ret; | |
1264 | ||
1265 | ret = iterate_generic_mmio(iter); | |
1266 | if (ret) | |
1267 | goto err; | |
1268 | ||
1269 | if (IS_BROADWELL(i915)) { | |
1270 | ret = iterate_bdw_only_mmio(iter); | |
1271 | if (ret) | |
1272 | goto err; | |
1273 | ret = iterate_bdw_plus_mmio(iter); | |
1274 | if (ret) | |
1275 | goto err; | |
1276 | ret = iterate_pre_skl_mmio(iter); | |
1277 | if (ret) | |
1278 | goto err; | |
1279 | } else if (IS_SKYLAKE(i915) || | |
1280 | IS_KABYLAKE(i915) || | |
1281 | IS_COFFEELAKE(i915) || | |
1282 | IS_COMETLAKE(i915)) { | |
1283 | ret = iterate_bdw_plus_mmio(iter); | |
1284 | if (ret) | |
1285 | goto err; | |
1286 | ret = iterate_skl_plus_mmio(iter); | |
1287 | if (ret) | |
1288 | goto err; | |
1289 | } else if (IS_BROXTON(i915)) { | |
1290 | ret = iterate_bdw_plus_mmio(iter); | |
1291 | if (ret) | |
1292 | goto err; | |
1293 | ret = iterate_skl_plus_mmio(iter); | |
1294 | if (ret) | |
1295 | goto err; | |
1296 | ret = iterate_bxt_mmio(iter); | |
1297 | if (ret) | |
1298 | goto err; | |
1299 | } | |
1300 | ||
1301 | return 0; | |
1302 | err: | |
1303 | return ret; | |
1304 | } | |
8b750bf7 | 1305 | EXPORT_SYMBOL_NS_GPL(intel_gvt_iterate_mmio_table, I915_GVT); |