xref: /linux/drivers/gpu/drm/i915/display/i9xx_wm_regs.h (revision 2c1ed907520c50326b8f604907a8478b27881a2e)
1*aea0ec7eSJani Nikula /* SPDX-License-Identifier: MIT */
2*aea0ec7eSJani Nikula /* Copyright © 2024 Intel Corporation */
3*aea0ec7eSJani Nikula 
4*aea0ec7eSJani Nikula #ifndef __I9XX_WM_REGS_H__
5*aea0ec7eSJani Nikula #define __I9XX_WM_REGS_H__
6*aea0ec7eSJani Nikula 
7*aea0ec7eSJani Nikula #include "intel_display_reg_defs.h"
8*aea0ec7eSJani Nikula 
9*aea0ec7eSJani Nikula #define DSPARB(dev_priv)			_MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x70030)
10*aea0ec7eSJani Nikula #define   DSPARB_CSTART_MASK	(0x7f << 7)
11*aea0ec7eSJani Nikula #define   DSPARB_CSTART_SHIFT	7
12*aea0ec7eSJani Nikula #define   DSPARB_BSTART_MASK	(0x7f)
13*aea0ec7eSJani Nikula #define   DSPARB_BSTART_SHIFT	0
14*aea0ec7eSJani Nikula #define   DSPARB_BEND_SHIFT	9 /* on 855 */
15*aea0ec7eSJani Nikula #define   DSPARB_AEND_SHIFT	0
16*aea0ec7eSJani Nikula #define   DSPARB_SPRITEA_SHIFT_VLV	0
17*aea0ec7eSJani Nikula #define   DSPARB_SPRITEA_MASK_VLV	(0xff << 0)
18*aea0ec7eSJani Nikula #define   DSPARB_SPRITEB_SHIFT_VLV	8
19*aea0ec7eSJani Nikula #define   DSPARB_SPRITEB_MASK_VLV	(0xff << 8)
20*aea0ec7eSJani Nikula #define   DSPARB_SPRITEC_SHIFT_VLV	16
21*aea0ec7eSJani Nikula #define   DSPARB_SPRITEC_MASK_VLV	(0xff << 16)
22*aea0ec7eSJani Nikula #define   DSPARB_SPRITED_SHIFT_VLV	24
23*aea0ec7eSJani Nikula #define   DSPARB_SPRITED_MASK_VLV	(0xff << 24)
24*aea0ec7eSJani Nikula #define DSPARB2				_MMIO(VLV_DISPLAY_BASE + 0x70060) /* vlv/chv */
25*aea0ec7eSJani Nikula #define   DSPARB_SPRITEA_HI_SHIFT_VLV	0
26*aea0ec7eSJani Nikula #define   DSPARB_SPRITEA_HI_MASK_VLV	(0x1 << 0)
27*aea0ec7eSJani Nikula #define   DSPARB_SPRITEB_HI_SHIFT_VLV	4
28*aea0ec7eSJani Nikula #define   DSPARB_SPRITEB_HI_MASK_VLV	(0x1 << 4)
29*aea0ec7eSJani Nikula #define   DSPARB_SPRITEC_HI_SHIFT_VLV	8
30*aea0ec7eSJani Nikula #define   DSPARB_SPRITEC_HI_MASK_VLV	(0x1 << 8)
31*aea0ec7eSJani Nikula #define   DSPARB_SPRITED_HI_SHIFT_VLV	12
32*aea0ec7eSJani Nikula #define   DSPARB_SPRITED_HI_MASK_VLV	(0x1 << 12)
33*aea0ec7eSJani Nikula #define   DSPARB_SPRITEE_HI_SHIFT_VLV	16
34*aea0ec7eSJani Nikula #define   DSPARB_SPRITEE_HI_MASK_VLV	(0x1 << 16)
35*aea0ec7eSJani Nikula #define   DSPARB_SPRITEF_HI_SHIFT_VLV	20
36*aea0ec7eSJani Nikula #define   DSPARB_SPRITEF_HI_MASK_VLV	(0x1 << 20)
37*aea0ec7eSJani Nikula #define DSPARB3				_MMIO(VLV_DISPLAY_BASE + 0x7006c) /* chv */
38*aea0ec7eSJani Nikula #define   DSPARB_SPRITEE_SHIFT_VLV	0
39*aea0ec7eSJani Nikula #define   DSPARB_SPRITEE_MASK_VLV	(0xff << 0)
40*aea0ec7eSJani Nikula #define   DSPARB_SPRITEF_SHIFT_VLV	8
41*aea0ec7eSJani Nikula #define   DSPARB_SPRITEF_MASK_VLV	(0xff << 8)
42*aea0ec7eSJani Nikula 
43*aea0ec7eSJani Nikula /* pnv/gen4/g4x/vlv/chv */
44*aea0ec7eSJani Nikula #define DSPFW1(dev_priv)		_MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x70034)
45*aea0ec7eSJani Nikula #define   DSPFW_SR_SHIFT		23
46*aea0ec7eSJani Nikula #define   DSPFW_SR_MASK			(0x1ff << 23)
47*aea0ec7eSJani Nikula #define   DSPFW_CURSORB_SHIFT		16
48*aea0ec7eSJani Nikula #define   DSPFW_CURSORB_MASK		(0x3f << 16)
49*aea0ec7eSJani Nikula #define   DSPFW_PLANEB_SHIFT		8
50*aea0ec7eSJani Nikula #define   DSPFW_PLANEB_MASK		(0x7f << 8)
51*aea0ec7eSJani Nikula #define   DSPFW_PLANEB_MASK_VLV		(0xff << 8) /* vlv/chv */
52*aea0ec7eSJani Nikula #define   DSPFW_PLANEA_SHIFT		0
53*aea0ec7eSJani Nikula #define   DSPFW_PLANEA_MASK		(0x7f << 0)
54*aea0ec7eSJani Nikula #define   DSPFW_PLANEA_MASK_VLV		(0xff << 0) /* vlv/chv */
55*aea0ec7eSJani Nikula #define DSPFW2(dev_priv)		_MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x70038)
56*aea0ec7eSJani Nikula #define   DSPFW_FBC_SR_EN		(1 << 31)	  /* g4x */
57*aea0ec7eSJani Nikula #define   DSPFW_FBC_SR_SHIFT		28
58*aea0ec7eSJani Nikula #define   DSPFW_FBC_SR_MASK		(0x7 << 28) /* g4x */
59*aea0ec7eSJani Nikula #define   DSPFW_FBC_HPLL_SR_SHIFT	24
60*aea0ec7eSJani Nikula #define   DSPFW_FBC_HPLL_SR_MASK	(0xf << 24) /* g4x */
61*aea0ec7eSJani Nikula #define   DSPFW_SPRITEB_SHIFT		(16)
62*aea0ec7eSJani Nikula #define   DSPFW_SPRITEB_MASK		(0x7f << 16) /* g4x */
63*aea0ec7eSJani Nikula #define   DSPFW_SPRITEB_MASK_VLV	(0xff << 16) /* vlv/chv */
64*aea0ec7eSJani Nikula #define   DSPFW_CURSORA_SHIFT		8
65*aea0ec7eSJani Nikula #define   DSPFW_CURSORA_MASK		(0x3f << 8)
66*aea0ec7eSJani Nikula #define   DSPFW_PLANEC_OLD_SHIFT	0
67*aea0ec7eSJani Nikula #define   DSPFW_PLANEC_OLD_MASK		(0x7f << 0) /* pre-gen4 sprite C */
68*aea0ec7eSJani Nikula #define   DSPFW_SPRITEA_SHIFT		0
69*aea0ec7eSJani Nikula #define   DSPFW_SPRITEA_MASK		(0x7f << 0) /* g4x */
70*aea0ec7eSJani Nikula #define   DSPFW_SPRITEA_MASK_VLV	(0xff << 0) /* vlv/chv */
71*aea0ec7eSJani Nikula #define DSPFW3(dev_priv)		_MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x7003c)
72*aea0ec7eSJani Nikula #define   DSPFW_HPLL_SR_EN		(1 << 31)
73*aea0ec7eSJani Nikula #define   PINEVIEW_SELF_REFRESH_EN	(1 << 30)
74*aea0ec7eSJani Nikula #define   DSPFW_CURSOR_SR_SHIFT		24
75*aea0ec7eSJani Nikula #define   DSPFW_CURSOR_SR_MASK		(0x3f << 24)
76*aea0ec7eSJani Nikula #define   DSPFW_HPLL_CURSOR_SHIFT	16
77*aea0ec7eSJani Nikula #define   DSPFW_HPLL_CURSOR_MASK	(0x3f << 16)
78*aea0ec7eSJani Nikula #define   DSPFW_HPLL_SR_SHIFT		0
79*aea0ec7eSJani Nikula #define   DSPFW_HPLL_SR_MASK		(0x1ff << 0)
80*aea0ec7eSJani Nikula 
81*aea0ec7eSJani Nikula /* vlv/chv */
82*aea0ec7eSJani Nikula #define DSPFW4		_MMIO(VLV_DISPLAY_BASE + 0x70070)
83*aea0ec7eSJani Nikula #define   DSPFW_SPRITEB_WM1_SHIFT	16
84*aea0ec7eSJani Nikula #define   DSPFW_SPRITEB_WM1_MASK	(0xff << 16)
85*aea0ec7eSJani Nikula #define   DSPFW_CURSORA_WM1_SHIFT	8
86*aea0ec7eSJani Nikula #define   DSPFW_CURSORA_WM1_MASK	(0x3f << 8)
87*aea0ec7eSJani Nikula #define   DSPFW_SPRITEA_WM1_SHIFT	0
88*aea0ec7eSJani Nikula #define   DSPFW_SPRITEA_WM1_MASK	(0xff << 0)
89*aea0ec7eSJani Nikula #define DSPFW5		_MMIO(VLV_DISPLAY_BASE + 0x70074)
90*aea0ec7eSJani Nikula #define   DSPFW_PLANEB_WM1_SHIFT	24
91*aea0ec7eSJani Nikula #define   DSPFW_PLANEB_WM1_MASK		(0xff << 24)
92*aea0ec7eSJani Nikula #define   DSPFW_PLANEA_WM1_SHIFT	16
93*aea0ec7eSJani Nikula #define   DSPFW_PLANEA_WM1_MASK		(0xff << 16)
94*aea0ec7eSJani Nikula #define   DSPFW_CURSORB_WM1_SHIFT	8
95*aea0ec7eSJani Nikula #define   DSPFW_CURSORB_WM1_MASK	(0x3f << 8)
96*aea0ec7eSJani Nikula #define   DSPFW_CURSOR_SR_WM1_SHIFT	0
97*aea0ec7eSJani Nikula #define   DSPFW_CURSOR_SR_WM1_MASK	(0x3f << 0)
98*aea0ec7eSJani Nikula #define DSPFW6		_MMIO(VLV_DISPLAY_BASE + 0x70078)
99*aea0ec7eSJani Nikula #define   DSPFW_SR_WM1_SHIFT		0
100*aea0ec7eSJani Nikula #define   DSPFW_SR_WM1_MASK		(0x1ff << 0)
101*aea0ec7eSJani Nikula #define DSPFW7		_MMIO(VLV_DISPLAY_BASE + 0x7007c)
102*aea0ec7eSJani Nikula #define DSPFW7_CHV	_MMIO(VLV_DISPLAY_BASE + 0x700b4) /* wtf #1? */
103*aea0ec7eSJani Nikula #define   DSPFW_SPRITED_WM1_SHIFT	24
104*aea0ec7eSJani Nikula #define   DSPFW_SPRITED_WM1_MASK	(0xff << 24)
105*aea0ec7eSJani Nikula #define   DSPFW_SPRITED_SHIFT		16
106*aea0ec7eSJani Nikula #define   DSPFW_SPRITED_MASK_VLV	(0xff << 16)
107*aea0ec7eSJani Nikula #define   DSPFW_SPRITEC_WM1_SHIFT	8
108*aea0ec7eSJani Nikula #define   DSPFW_SPRITEC_WM1_MASK	(0xff << 8)
109*aea0ec7eSJani Nikula #define   DSPFW_SPRITEC_SHIFT		0
110*aea0ec7eSJani Nikula #define   DSPFW_SPRITEC_MASK_VLV	(0xff << 0)
111*aea0ec7eSJani Nikula #define DSPFW8_CHV	_MMIO(VLV_DISPLAY_BASE + 0x700b8)
112*aea0ec7eSJani Nikula #define   DSPFW_SPRITEF_WM1_SHIFT	24
113*aea0ec7eSJani Nikula #define   DSPFW_SPRITEF_WM1_MASK	(0xff << 24)
114*aea0ec7eSJani Nikula #define   DSPFW_SPRITEF_SHIFT		16
115*aea0ec7eSJani Nikula #define   DSPFW_SPRITEF_MASK_VLV	(0xff << 16)
116*aea0ec7eSJani Nikula #define   DSPFW_SPRITEE_WM1_SHIFT	8
117*aea0ec7eSJani Nikula #define   DSPFW_SPRITEE_WM1_MASK	(0xff << 8)
118*aea0ec7eSJani Nikula #define   DSPFW_SPRITEE_SHIFT		0
119*aea0ec7eSJani Nikula #define   DSPFW_SPRITEE_MASK_VLV	(0xff << 0)
120*aea0ec7eSJani Nikula #define DSPFW9_CHV	_MMIO(VLV_DISPLAY_BASE + 0x7007c) /* wtf #2? */
121*aea0ec7eSJani Nikula #define   DSPFW_PLANEC_WM1_SHIFT	24
122*aea0ec7eSJani Nikula #define   DSPFW_PLANEC_WM1_MASK		(0xff << 24)
123*aea0ec7eSJani Nikula #define   DSPFW_PLANEC_SHIFT		16
124*aea0ec7eSJani Nikula #define   DSPFW_PLANEC_MASK_VLV		(0xff << 16)
125*aea0ec7eSJani Nikula #define   DSPFW_CURSORC_WM1_SHIFT	8
126*aea0ec7eSJani Nikula #define   DSPFW_CURSORC_WM1_MASK	(0x3f << 16)
127*aea0ec7eSJani Nikula #define   DSPFW_CURSORC_SHIFT		0
128*aea0ec7eSJani Nikula #define   DSPFW_CURSORC_MASK		(0x3f << 0)
129*aea0ec7eSJani Nikula 
130*aea0ec7eSJani Nikula /* vlv/chv high order bits */
131*aea0ec7eSJani Nikula #define DSPHOWM		_MMIO(VLV_DISPLAY_BASE + 0x70064)
132*aea0ec7eSJani Nikula #define   DSPFW_SR_HI_SHIFT		24
133*aea0ec7eSJani Nikula #define   DSPFW_SR_HI_MASK		(3 << 24) /* 2 bits for chv, 1 for vlv */
134*aea0ec7eSJani Nikula #define   DSPFW_SPRITEF_HI_SHIFT	23
135*aea0ec7eSJani Nikula #define   DSPFW_SPRITEF_HI_MASK		(1 << 23)
136*aea0ec7eSJani Nikula #define   DSPFW_SPRITEE_HI_SHIFT	22
137*aea0ec7eSJani Nikula #define   DSPFW_SPRITEE_HI_MASK		(1 << 22)
138*aea0ec7eSJani Nikula #define   DSPFW_PLANEC_HI_SHIFT		21
139*aea0ec7eSJani Nikula #define   DSPFW_PLANEC_HI_MASK		(1 << 21)
140*aea0ec7eSJani Nikula #define   DSPFW_SPRITED_HI_SHIFT	20
141*aea0ec7eSJani Nikula #define   DSPFW_SPRITED_HI_MASK		(1 << 20)
142*aea0ec7eSJani Nikula #define   DSPFW_SPRITEC_HI_SHIFT	16
143*aea0ec7eSJani Nikula #define   DSPFW_SPRITEC_HI_MASK		(1 << 16)
144*aea0ec7eSJani Nikula #define   DSPFW_PLANEB_HI_SHIFT		12
145*aea0ec7eSJani Nikula #define   DSPFW_PLANEB_HI_MASK		(1 << 12)
146*aea0ec7eSJani Nikula #define   DSPFW_SPRITEB_HI_SHIFT	8
147*aea0ec7eSJani Nikula #define   DSPFW_SPRITEB_HI_MASK		(1 << 8)
148*aea0ec7eSJani Nikula #define   DSPFW_SPRITEA_HI_SHIFT	4
149*aea0ec7eSJani Nikula #define   DSPFW_SPRITEA_HI_MASK		(1 << 4)
150*aea0ec7eSJani Nikula #define   DSPFW_PLANEA_HI_SHIFT		0
151*aea0ec7eSJani Nikula #define   DSPFW_PLANEA_HI_MASK		(1 << 0)
152*aea0ec7eSJani Nikula #define DSPHOWM1	_MMIO(VLV_DISPLAY_BASE + 0x70068)
153*aea0ec7eSJani Nikula #define   DSPFW_SR_WM1_HI_SHIFT		24
154*aea0ec7eSJani Nikula #define   DSPFW_SR_WM1_HI_MASK		(3 << 24) /* 2 bits for chv, 1 for vlv */
155*aea0ec7eSJani Nikula #define   DSPFW_SPRITEF_WM1_HI_SHIFT	23
156*aea0ec7eSJani Nikula #define   DSPFW_SPRITEF_WM1_HI_MASK	(1 << 23)
157*aea0ec7eSJani Nikula #define   DSPFW_SPRITEE_WM1_HI_SHIFT	22
158*aea0ec7eSJani Nikula #define   DSPFW_SPRITEE_WM1_HI_MASK	(1 << 22)
159*aea0ec7eSJani Nikula #define   DSPFW_PLANEC_WM1_HI_SHIFT	21
160*aea0ec7eSJani Nikula #define   DSPFW_PLANEC_WM1_HI_MASK	(1 << 21)
161*aea0ec7eSJani Nikula #define   DSPFW_SPRITED_WM1_HI_SHIFT	20
162*aea0ec7eSJani Nikula #define   DSPFW_SPRITED_WM1_HI_MASK	(1 << 20)
163*aea0ec7eSJani Nikula #define   DSPFW_SPRITEC_WM1_HI_SHIFT	16
164*aea0ec7eSJani Nikula #define   DSPFW_SPRITEC_WM1_HI_MASK	(1 << 16)
165*aea0ec7eSJani Nikula #define   DSPFW_PLANEB_WM1_HI_SHIFT	12
166*aea0ec7eSJani Nikula #define   DSPFW_PLANEB_WM1_HI_MASK	(1 << 12)
167*aea0ec7eSJani Nikula #define   DSPFW_SPRITEB_WM1_HI_SHIFT	8
168*aea0ec7eSJani Nikula #define   DSPFW_SPRITEB_WM1_HI_MASK	(1 << 8)
169*aea0ec7eSJani Nikula #define   DSPFW_SPRITEA_WM1_HI_SHIFT	4
170*aea0ec7eSJani Nikula #define   DSPFW_SPRITEA_WM1_HI_MASK	(1 << 4)
171*aea0ec7eSJani Nikula #define   DSPFW_PLANEA_WM1_HI_SHIFT	0
172*aea0ec7eSJani Nikula #define   DSPFW_PLANEA_WM1_HI_MASK	(1 << 0)
173*aea0ec7eSJani Nikula 
174*aea0ec7eSJani Nikula /* drain latency register values*/
175*aea0ec7eSJani Nikula #define VLV_DDL(pipe)			_MMIO(VLV_DISPLAY_BASE + 0x70050 + 4 * (pipe))
176*aea0ec7eSJani Nikula #define DDL_CURSOR_SHIFT		24
177*aea0ec7eSJani Nikula #define DDL_SPRITE_SHIFT(sprite)	(8 + 8 * (sprite))
178*aea0ec7eSJani Nikula #define DDL_PLANE_SHIFT			0
179*aea0ec7eSJani Nikula #define DDL_PRECISION_HIGH		(1 << 7)
180*aea0ec7eSJani Nikula #define DDL_PRECISION_LOW		(0 << 7)
181*aea0ec7eSJani Nikula #define DRAIN_LATENCY_MASK		0x7f
182*aea0ec7eSJani Nikula 
183*aea0ec7eSJani Nikula /* FIFO watermark sizes etc */
184*aea0ec7eSJani Nikula #define G4X_FIFO_LINE_SIZE	64
185*aea0ec7eSJani Nikula #define I915_FIFO_LINE_SIZE	64
186*aea0ec7eSJani Nikula #define I830_FIFO_LINE_SIZE	32
187*aea0ec7eSJani Nikula 
188*aea0ec7eSJani Nikula #define VALLEYVIEW_FIFO_SIZE	255
189*aea0ec7eSJani Nikula #define G4X_FIFO_SIZE		127
190*aea0ec7eSJani Nikula #define I965_FIFO_SIZE		512
191*aea0ec7eSJani Nikula #define I945_FIFO_SIZE		127
192*aea0ec7eSJani Nikula #define I915_FIFO_SIZE		95
193*aea0ec7eSJani Nikula #define I855GM_FIFO_SIZE	127 /* In cachelines */
194*aea0ec7eSJani Nikula #define I830_FIFO_SIZE		95
195*aea0ec7eSJani Nikula 
196*aea0ec7eSJani Nikula #define VALLEYVIEW_MAX_WM	0xff
197*aea0ec7eSJani Nikula #define G4X_MAX_WM		0x3f
198*aea0ec7eSJani Nikula #define I915_MAX_WM		0x3f
199*aea0ec7eSJani Nikula 
200*aea0ec7eSJani Nikula #define PINEVIEW_DISPLAY_FIFO	512 /* in 64byte unit */
201*aea0ec7eSJani Nikula #define PINEVIEW_FIFO_LINE_SIZE	64
202*aea0ec7eSJani Nikula #define PINEVIEW_MAX_WM		0x1ff
203*aea0ec7eSJani Nikula #define PINEVIEW_DFT_WM		0x3f
204*aea0ec7eSJani Nikula #define PINEVIEW_DFT_HPLLOFF_WM	0
205*aea0ec7eSJani Nikula #define PINEVIEW_GUARD_WM		10
206*aea0ec7eSJani Nikula #define PINEVIEW_CURSOR_FIFO		64
207*aea0ec7eSJani Nikula #define PINEVIEW_CURSOR_MAX_WM	0x3f
208*aea0ec7eSJani Nikula #define PINEVIEW_CURSOR_DFT_WM	0
209*aea0ec7eSJani Nikula #define PINEVIEW_CURSOR_GUARD_WM	5
210*aea0ec7eSJani Nikula 
211*aea0ec7eSJani Nikula #define VALLEYVIEW_CURSOR_MAX_WM 64
212*aea0ec7eSJani Nikula #define I965_CURSOR_FIFO	64
213*aea0ec7eSJani Nikula #define I965_CURSOR_MAX_WM	32
214*aea0ec7eSJani Nikula #define I965_CURSOR_DFT_WM	8
215*aea0ec7eSJani Nikula 
216*aea0ec7eSJani Nikula /* define the Watermark register on Ironlake */
217*aea0ec7eSJani Nikula #define _WM0_PIPEA_ILK		0x45100
218*aea0ec7eSJani Nikula #define _WM0_PIPEB_ILK		0x45104
219*aea0ec7eSJani Nikula #define _WM0_PIPEC_IVB		0x45200
220*aea0ec7eSJani Nikula #define WM0_PIPE_ILK(pipe)	_MMIO_BASE_PIPE3(0, (pipe), _WM0_PIPEA_ILK, \
221*aea0ec7eSJani Nikula 						 _WM0_PIPEB_ILK, _WM0_PIPEC_IVB)
222*aea0ec7eSJani Nikula #define  WM0_PIPE_PRIMARY_MASK	REG_GENMASK(31, 16)
223*aea0ec7eSJani Nikula #define  WM0_PIPE_SPRITE_MASK	REG_GENMASK(15, 8)
224*aea0ec7eSJani Nikula #define  WM0_PIPE_CURSOR_MASK	REG_GENMASK(7, 0)
225*aea0ec7eSJani Nikula #define  WM0_PIPE_PRIMARY(x)	REG_FIELD_PREP(WM0_PIPE_PRIMARY_MASK, (x))
226*aea0ec7eSJani Nikula #define  WM0_PIPE_SPRITE(x)	REG_FIELD_PREP(WM0_PIPE_SPRITE_MASK, (x))
227*aea0ec7eSJani Nikula #define  WM0_PIPE_CURSOR(x)	REG_FIELD_PREP(WM0_PIPE_CURSOR_MASK, (x))
228*aea0ec7eSJani Nikula #define WM1_LP_ILK		_MMIO(0x45108)
229*aea0ec7eSJani Nikula #define WM2_LP_ILK		_MMIO(0x4510c)
230*aea0ec7eSJani Nikula #define WM3_LP_ILK		_MMIO(0x45110)
231*aea0ec7eSJani Nikula #define  WM_LP_ENABLE		REG_BIT(31)
232*aea0ec7eSJani Nikula #define  WM_LP_LATENCY_MASK	REG_GENMASK(30, 24)
233*aea0ec7eSJani Nikula #define  WM_LP_FBC_MASK_BDW	REG_GENMASK(23, 19)
234*aea0ec7eSJani Nikula #define  WM_LP_FBC_MASK_ILK	REG_GENMASK(23, 20)
235*aea0ec7eSJani Nikula #define  WM_LP_PRIMARY_MASK	REG_GENMASK(18, 8)
236*aea0ec7eSJani Nikula #define  WM_LP_CURSOR_MASK	REG_GENMASK(7, 0)
237*aea0ec7eSJani Nikula #define  WM_LP_LATENCY(x)	REG_FIELD_PREP(WM_LP_LATENCY_MASK, (x))
238*aea0ec7eSJani Nikula #define  WM_LP_FBC_BDW(x)	REG_FIELD_PREP(WM_LP_FBC_MASK_BDW, (x))
239*aea0ec7eSJani Nikula #define  WM_LP_FBC_ILK(x)	REG_FIELD_PREP(WM_LP_FBC_MASK_ILK, (x))
240*aea0ec7eSJani Nikula #define  WM_LP_PRIMARY(x)	REG_FIELD_PREP(WM_LP_PRIMARY_MASK, (x))
241*aea0ec7eSJani Nikula #define  WM_LP_CURSOR(x)	REG_FIELD_PREP(WM_LP_CURSOR_MASK, (x))
242*aea0ec7eSJani Nikula #define WM1S_LP_ILK		_MMIO(0x45120)
243*aea0ec7eSJani Nikula #define WM2S_LP_IVB		_MMIO(0x45124)
244*aea0ec7eSJani Nikula #define WM3S_LP_IVB		_MMIO(0x45128)
245*aea0ec7eSJani Nikula #define  WM_LP_SPRITE_ENABLE	REG_BIT(31) /* ilk/snb WM1S only */
246*aea0ec7eSJani Nikula #define  WM_LP_SPRITE_MASK	REG_GENMASK(10, 0)
247*aea0ec7eSJani Nikula #define  WM_LP_SPRITE(x)	REG_FIELD_PREP(WM_LP_SPRITE_MASK, (x))
248*aea0ec7eSJani Nikula 
249*aea0ec7eSJani Nikula #define WM_MISC				_MMIO(0x45260)
250*aea0ec7eSJani Nikula #define  WM_MISC_DATA_PARTITION_5_6	(1 << 0)
251*aea0ec7eSJani Nikula 
252*aea0ec7eSJani Nikula #define WM_DBG				_MMIO(0x45280)
253*aea0ec7eSJani Nikula #define  WM_DBG_DISALLOW_MULTIPLE_LP	(1 << 0)
254*aea0ec7eSJani Nikula #define  WM_DBG_DISALLOW_MAXFIFO	(1 << 1)
255*aea0ec7eSJani Nikula #define  WM_DBG_DISALLOW_SPRITE		(1 << 2)
256*aea0ec7eSJani Nikula 
257*aea0ec7eSJani Nikula #endif /* __I9XX_WM_REGS_H__ */
258