1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2023 Intel Corporation
4  */
5 
6 #ifndef __INTEL_VDSC_REGS_H__
7 #define __INTEL_VDSC_REGS_H__
8 
9 #include "intel_display_reg_defs.h"
10 
11 /* Display Stream Splitter Control */
12 #define DSS_CTL1				_MMIO(0x67400)
13 #define  SPLITTER_ENABLE			(1 << 31)
14 #define  JOINER_ENABLE				(1 << 30)
15 #define  DUAL_LINK_MODE_INTERLEAVE		(1 << 24)
16 #define  DUAL_LINK_MODE_FRONTBACK		(0 << 24)
17 #define  OVERLAP_PIXELS_MASK			(0xf << 16)
18 #define  OVERLAP_PIXELS(pixels)			((pixels) << 16)
19 #define  LEFT_DL_BUF_TARGET_DEPTH_MASK		(0xfff << 0)
20 #define  LEFT_DL_BUF_TARGET_DEPTH(pixels)	((pixels) << 0)
21 #define  MAX_DL_BUFFER_TARGET_DEPTH		0x5a0
22 
23 #define DSS_CTL2				_MMIO(0x67404)
24 #define  LEFT_BRANCH_VDSC_ENABLE		(1 << 31)
25 #define  RIGHT_BRANCH_VDSC_ENABLE		(1 << 15)
26 #define  RIGHT_DL_BUF_TARGET_DEPTH_MASK		(0xfff << 0)
27 #define  RIGHT_DL_BUF_TARGET_DEPTH(pixels)	((pixels) << 0)
28 
29 #define _ICL_PIPE_DSS_CTL1_PB			0x78200
30 #define _ICL_PIPE_DSS_CTL1_PC			0x78400
31 #define ICL_PIPE_DSS_CTL1(pipe)			_MMIO_PIPE((pipe) - PIPE_B, \
32 							   _ICL_PIPE_DSS_CTL1_PB, \
33 							   _ICL_PIPE_DSS_CTL1_PC)
34 #define  BIG_JOINER_ENABLE			(1 << 29)
35 #define  MASTER_BIG_JOINER_ENABLE		(1 << 28)
36 #define  VGA_CENTERING_ENABLE			(1 << 27)
37 #define  SPLITTER_CONFIGURATION_MASK		REG_GENMASK(26, 25)
38 #define  SPLITTER_CONFIGURATION_2_SEGMENT	REG_FIELD_PREP(SPLITTER_CONFIGURATION_MASK, 0)
39 #define  SPLITTER_CONFIGURATION_4_SEGMENT	REG_FIELD_PREP(SPLITTER_CONFIGURATION_MASK, 1)
40 #define  UNCOMPRESSED_JOINER_MASTER		(1 << 21)
41 #define  UNCOMPRESSED_JOINER_SLAVE		(1 << 20)
42 
43 #define _ICL_PIPE_DSS_CTL2_PB			0x78204
44 #define _ICL_PIPE_DSS_CTL2_PC			0x78404
45 #define ICL_PIPE_DSS_CTL2(pipe)			_MMIO_PIPE((pipe) - PIPE_B, \
46 							   _ICL_PIPE_DSS_CTL2_PB, \
47 							   _ICL_PIPE_DSS_CTL2_PC)
48 
49 /* MTL Display Stream Compression registers */
50 #define _MTL_DSC0_PICTURE_PARAMETER_SET_17_PB	0x782B4
51 #define _MTL_DSC1_PICTURE_PARAMETER_SET_17_PB	0x783B4
52 #define _MTL_DSC0_PICTURE_PARAMETER_SET_17_PC	0x784B4
53 #define _MTL_DSC1_PICTURE_PARAMETER_SET_17_PC	0x785B4
54 #define MTL_DSC0_PICTURE_PARAMETER_SET_17(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
55 							   _MTL_DSC0_PICTURE_PARAMETER_SET_17_PB, \
56 							   _MTL_DSC0_PICTURE_PARAMETER_SET_17_PC)
57 #define MTL_DSC1_PICTURE_PARAMETER_SET_17(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
58 							   _MTL_DSC1_PICTURE_PARAMETER_SET_17_PB, \
59 							   _MTL_DSC1_PICTURE_PARAMETER_SET_17_PC)
60 #define DSC_SL_BPG_OFFSET(offset)		((offset) << 27)
61 
62 #define _MTL_DSC0_PICTURE_PARAMETER_SET_18_PB	0x782B8
63 #define _MTL_DSC1_PICTURE_PARAMETER_SET_18_PB	0x783B8
64 #define _MTL_DSC0_PICTURE_PARAMETER_SET_18_PC	0x784B8
65 #define _MTL_DSC1_PICTURE_PARAMETER_SET_18_PC	0x785B8
66 #define MTL_DSC0_PICTURE_PARAMETER_SET_18(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
67 							   _MTL_DSC0_PICTURE_PARAMETER_SET_18_PB, \
68 							   _MTL_DSC0_PICTURE_PARAMETER_SET_18_PC)
69 #define MTL_DSC1_PICTURE_PARAMETER_SET_18(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
70 							   _MTL_DSC1_PICTURE_PARAMETER_SET_18_PB, \
71 							   _MTL_DSC1_PICTURE_PARAMETER_SET_18_PC)
72 #define DSC_NSL_BPG_OFFSET(offset)		((offset) << 16)
73 #define DSC_SL_OFFSET_ADJ(offset)		((offset) << 0)
74 
75 /* Icelake Display Stream Compression Registers */
76 #define DSCA_PICTURE_PARAMETER_SET_0		_MMIO(0x6B200)
77 #define DSCC_PICTURE_PARAMETER_SET_0		_MMIO(0x6BA00)
78 #define _ICL_DSC0_PICTURE_PARAMETER_SET_0_PB	0x78270
79 #define _ICL_DSC1_PICTURE_PARAMETER_SET_0_PB	0x78370
80 #define _ICL_DSC0_PICTURE_PARAMETER_SET_0_PC	0x78470
81 #define _ICL_DSC1_PICTURE_PARAMETER_SET_0_PC	0x78570
82 #define ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
83 							   _ICL_DSC0_PICTURE_PARAMETER_SET_0_PB, \
84 							   _ICL_DSC0_PICTURE_PARAMETER_SET_0_PC)
85 #define ICL_DSC1_PICTURE_PARAMETER_SET_0(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
86 							   _ICL_DSC1_PICTURE_PARAMETER_SET_0_PB, \
87 							   _ICL_DSC1_PICTURE_PARAMETER_SET_0_PC)
88 #define  DSC_NATIVE_422_ENABLE		BIT(23)
89 #define  DSC_NATIVE_420_ENABLE		BIT(22)
90 #define  DSC_ALT_ICH_SEL		(1 << 20)
91 #define  DSC_VBR_ENABLE			(1 << 19)
92 #define  DSC_422_ENABLE			(1 << 18)
93 #define  DSC_COLOR_SPACE_CONVERSION	(1 << 17)
94 #define  DSC_BLOCK_PREDICTION		(1 << 16)
95 #define  DSC_LINE_BUF_DEPTH_SHIFT	12
96 #define  DSC_BPC_SHIFT			8
97 #define  DSC_VER_MIN_SHIFT		4
98 #define  DSC_VER_MAJ			(0x1 << 0)
99 
100 #define DSCA_PICTURE_PARAMETER_SET_1		_MMIO(0x6B204)
101 #define DSCC_PICTURE_PARAMETER_SET_1		_MMIO(0x6BA04)
102 #define _ICL_DSC0_PICTURE_PARAMETER_SET_1_PB	0x78274
103 #define _ICL_DSC1_PICTURE_PARAMETER_SET_1_PB	0x78374
104 #define _ICL_DSC0_PICTURE_PARAMETER_SET_1_PC	0x78474
105 #define _ICL_DSC1_PICTURE_PARAMETER_SET_1_PC	0x78574
106 #define ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
107 							   _ICL_DSC0_PICTURE_PARAMETER_SET_1_PB, \
108 							   _ICL_DSC0_PICTURE_PARAMETER_SET_1_PC)
109 #define ICL_DSC1_PICTURE_PARAMETER_SET_1(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
110 							   _ICL_DSC1_PICTURE_PARAMETER_SET_1_PB, \
111 							   _ICL_DSC1_PICTURE_PARAMETER_SET_1_PC)
112 #define  DSC_BPP(bpp)				((bpp) << 0)
113 
114 #define DSCA_PICTURE_PARAMETER_SET_2		_MMIO(0x6B208)
115 #define DSCC_PICTURE_PARAMETER_SET_2		_MMIO(0x6BA08)
116 #define _ICL_DSC0_PICTURE_PARAMETER_SET_2_PB	0x78278
117 #define _ICL_DSC1_PICTURE_PARAMETER_SET_2_PB	0x78378
118 #define _ICL_DSC0_PICTURE_PARAMETER_SET_2_PC	0x78478
119 #define _ICL_DSC1_PICTURE_PARAMETER_SET_2_PC	0x78578
120 #define ICL_DSC0_PICTURE_PARAMETER_SET_2(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
121 							   _ICL_DSC0_PICTURE_PARAMETER_SET_2_PB, \
122 							   _ICL_DSC0_PICTURE_PARAMETER_SET_2_PC)
123 #define ICL_DSC1_PICTURE_PARAMETER_SET_2(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
124 					    _ICL_DSC1_PICTURE_PARAMETER_SET_2_PB, \
125 					    _ICL_DSC1_PICTURE_PARAMETER_SET_2_PC)
126 #define  DSC_PIC_WIDTH(pic_width)	((pic_width) << 16)
127 #define  DSC_PIC_HEIGHT(pic_height)	((pic_height) << 0)
128 
129 #define DSCA_PICTURE_PARAMETER_SET_3		_MMIO(0x6B20C)
130 #define DSCC_PICTURE_PARAMETER_SET_3		_MMIO(0x6BA0C)
131 #define _ICL_DSC0_PICTURE_PARAMETER_SET_3_PB	0x7827C
132 #define _ICL_DSC1_PICTURE_PARAMETER_SET_3_PB	0x7837C
133 #define _ICL_DSC0_PICTURE_PARAMETER_SET_3_PC	0x7847C
134 #define _ICL_DSC1_PICTURE_PARAMETER_SET_3_PC	0x7857C
135 #define ICL_DSC0_PICTURE_PARAMETER_SET_3(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
136 							   _ICL_DSC0_PICTURE_PARAMETER_SET_3_PB, \
137 							   _ICL_DSC0_PICTURE_PARAMETER_SET_3_PC)
138 #define ICL_DSC1_PICTURE_PARAMETER_SET_3(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
139 							   _ICL_DSC1_PICTURE_PARAMETER_SET_3_PB, \
140 							   _ICL_DSC1_PICTURE_PARAMETER_SET_3_PC)
141 #define  DSC_SLICE_WIDTH(slice_width)   ((slice_width) << 16)
142 #define  DSC_SLICE_HEIGHT(slice_height) ((slice_height) << 0)
143 
144 #define DSCA_PICTURE_PARAMETER_SET_4		_MMIO(0x6B210)
145 #define DSCC_PICTURE_PARAMETER_SET_4		_MMIO(0x6BA10)
146 #define _ICL_DSC0_PICTURE_PARAMETER_SET_4_PB	0x78280
147 #define _ICL_DSC1_PICTURE_PARAMETER_SET_4_PB	0x78380
148 #define _ICL_DSC0_PICTURE_PARAMETER_SET_4_PC	0x78480
149 #define _ICL_DSC1_PICTURE_PARAMETER_SET_4_PC	0x78580
150 #define ICL_DSC0_PICTURE_PARAMETER_SET_4(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
151 							   _ICL_DSC0_PICTURE_PARAMETER_SET_4_PB, \
152 							   _ICL_DSC0_PICTURE_PARAMETER_SET_4_PC)
153 #define ICL_DSC1_PICTURE_PARAMETER_SET_4(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
154 							   _ICL_DSC1_PICTURE_PARAMETER_SET_4_PB, \
155 							   _ICL_DSC1_PICTURE_PARAMETER_SET_4_PC)
156 #define  DSC_INITIAL_DEC_DELAY(dec_delay)       ((dec_delay) << 16)
157 #define  DSC_INITIAL_XMIT_DELAY(xmit_delay)     ((xmit_delay) << 0)
158 
159 #define DSCA_PICTURE_PARAMETER_SET_5		_MMIO(0x6B214)
160 #define DSCC_PICTURE_PARAMETER_SET_5		_MMIO(0x6BA14)
161 #define _ICL_DSC0_PICTURE_PARAMETER_SET_5_PB	0x78284
162 #define _ICL_DSC1_PICTURE_PARAMETER_SET_5_PB	0x78384
163 #define _ICL_DSC0_PICTURE_PARAMETER_SET_5_PC	0x78484
164 #define _ICL_DSC1_PICTURE_PARAMETER_SET_5_PC	0x78584
165 #define ICL_DSC0_PICTURE_PARAMETER_SET_5(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
166 							   _ICL_DSC0_PICTURE_PARAMETER_SET_5_PB, \
167 							   _ICL_DSC0_PICTURE_PARAMETER_SET_5_PC)
168 #define ICL_DSC1_PICTURE_PARAMETER_SET_5(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
169 							   _ICL_DSC1_PICTURE_PARAMETER_SET_5_PB, \
170 							   _ICL_DSC1_PICTURE_PARAMETER_SET_5_PC)
171 #define  DSC_SCALE_DEC_INT(scale_dec)	((scale_dec) << 16)
172 #define  DSC_SCALE_INC_INT(scale_inc)		((scale_inc) << 0)
173 
174 #define DSCA_PICTURE_PARAMETER_SET_6		_MMIO(0x6B218)
175 #define DSCC_PICTURE_PARAMETER_SET_6		_MMIO(0x6BA18)
176 #define _ICL_DSC0_PICTURE_PARAMETER_SET_6_PB	0x78288
177 #define _ICL_DSC1_PICTURE_PARAMETER_SET_6_PB	0x78388
178 #define _ICL_DSC0_PICTURE_PARAMETER_SET_6_PC	0x78488
179 #define _ICL_DSC1_PICTURE_PARAMETER_SET_6_PC	0x78588
180 #define ICL_DSC0_PICTURE_PARAMETER_SET_6(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
181 							   _ICL_DSC0_PICTURE_PARAMETER_SET_6_PB, \
182 							   _ICL_DSC0_PICTURE_PARAMETER_SET_6_PC)
183 #define ICL_DSC1_PICTURE_PARAMETER_SET_6(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
184 							   _ICL_DSC1_PICTURE_PARAMETER_SET_6_PB, \
185 							   _ICL_DSC1_PICTURE_PARAMETER_SET_6_PC)
186 #define  DSC_FLATNESS_MAX_QP(max_qp)		((max_qp) << 24)
187 #define  DSC_FLATNESS_MIN_QP(min_qp)		((min_qp) << 16)
188 #define  DSC_FIRST_LINE_BPG_OFFSET(offset)	((offset) << 8)
189 #define  DSC_INITIAL_SCALE_VALUE(value)		((value) << 0)
190 
191 #define DSCA_PICTURE_PARAMETER_SET_7		_MMIO(0x6B21C)
192 #define DSCC_PICTURE_PARAMETER_SET_7		_MMIO(0x6BA1C)
193 #define _ICL_DSC0_PICTURE_PARAMETER_SET_7_PB	0x7828C
194 #define _ICL_DSC1_PICTURE_PARAMETER_SET_7_PB	0x7838C
195 #define _ICL_DSC0_PICTURE_PARAMETER_SET_7_PC	0x7848C
196 #define _ICL_DSC1_PICTURE_PARAMETER_SET_7_PC	0x7858C
197 #define ICL_DSC0_PICTURE_PARAMETER_SET_7(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
198 							    _ICL_DSC0_PICTURE_PARAMETER_SET_7_PB, \
199 							    _ICL_DSC0_PICTURE_PARAMETER_SET_7_PC)
200 #define ICL_DSC1_PICTURE_PARAMETER_SET_7(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
201 							    _ICL_DSC1_PICTURE_PARAMETER_SET_7_PB, \
202 							    _ICL_DSC1_PICTURE_PARAMETER_SET_7_PC)
203 #define  DSC_NFL_BPG_OFFSET(bpg_offset)		((bpg_offset) << 16)
204 #define  DSC_SLICE_BPG_OFFSET(bpg_offset)	((bpg_offset) << 0)
205 
206 #define DSCA_PICTURE_PARAMETER_SET_8		_MMIO(0x6B220)
207 #define DSCC_PICTURE_PARAMETER_SET_8		_MMIO(0x6BA20)
208 #define _ICL_DSC0_PICTURE_PARAMETER_SET_8_PB	0x78290
209 #define _ICL_DSC1_PICTURE_PARAMETER_SET_8_PB	0x78390
210 #define _ICL_DSC0_PICTURE_PARAMETER_SET_8_PC	0x78490
211 #define _ICL_DSC1_PICTURE_PARAMETER_SET_8_PC	0x78590
212 #define ICL_DSC0_PICTURE_PARAMETER_SET_8(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
213 							   _ICL_DSC0_PICTURE_PARAMETER_SET_8_PB, \
214 							   _ICL_DSC0_PICTURE_PARAMETER_SET_8_PC)
215 #define ICL_DSC1_PICTURE_PARAMETER_SET_8(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
216 							   _ICL_DSC1_PICTURE_PARAMETER_SET_8_PB, \
217 							   _ICL_DSC1_PICTURE_PARAMETER_SET_8_PC)
218 #define  DSC_INITIAL_OFFSET(initial_offset)		((initial_offset) << 16)
219 #define  DSC_FINAL_OFFSET(final_offset)			((final_offset) << 0)
220 
221 #define DSCA_PICTURE_PARAMETER_SET_9		_MMIO(0x6B224)
222 #define DSCC_PICTURE_PARAMETER_SET_9		_MMIO(0x6BA24)
223 #define _ICL_DSC0_PICTURE_PARAMETER_SET_9_PB	0x78294
224 #define _ICL_DSC1_PICTURE_PARAMETER_SET_9_PB	0x78394
225 #define _ICL_DSC0_PICTURE_PARAMETER_SET_9_PC	0x78494
226 #define _ICL_DSC1_PICTURE_PARAMETER_SET_9_PC	0x78594
227 #define ICL_DSC0_PICTURE_PARAMETER_SET_9(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
228 							   _ICL_DSC0_PICTURE_PARAMETER_SET_9_PB, \
229 							   _ICL_DSC0_PICTURE_PARAMETER_SET_9_PC)
230 #define ICL_DSC1_PICTURE_PARAMETER_SET_9(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
231 							   _ICL_DSC1_PICTURE_PARAMETER_SET_9_PB, \
232 							   _ICL_DSC1_PICTURE_PARAMETER_SET_9_PC)
233 #define  DSC_RC_EDGE_FACTOR(rc_edge_fact)	((rc_edge_fact) << 16)
234 #define  DSC_RC_MODEL_SIZE(rc_model_size)	((rc_model_size) << 0)
235 
236 #define DSCA_PICTURE_PARAMETER_SET_10		_MMIO(0x6B228)
237 #define DSCC_PICTURE_PARAMETER_SET_10		_MMIO(0x6BA28)
238 #define _ICL_DSC0_PICTURE_PARAMETER_SET_10_PB	0x78298
239 #define _ICL_DSC1_PICTURE_PARAMETER_SET_10_PB	0x78398
240 #define _ICL_DSC0_PICTURE_PARAMETER_SET_10_PC	0x78498
241 #define _ICL_DSC1_PICTURE_PARAMETER_SET_10_PC	0x78598
242 #define ICL_DSC0_PICTURE_PARAMETER_SET_10(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
243 							   _ICL_DSC0_PICTURE_PARAMETER_SET_10_PB, \
244 							   _ICL_DSC0_PICTURE_PARAMETER_SET_10_PC)
245 #define ICL_DSC1_PICTURE_PARAMETER_SET_10(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
246 							   _ICL_DSC1_PICTURE_PARAMETER_SET_10_PB, \
247 							   _ICL_DSC1_PICTURE_PARAMETER_SET_10_PC)
248 #define  DSC_RC_TARGET_OFF_LOW(rc_tgt_off_low)		((rc_tgt_off_low) << 20)
249 #define  DSC_RC_TARGET_OFF_HIGH(rc_tgt_off_high)	((rc_tgt_off_high) << 16)
250 #define  DSC_RC_QUANT_INC_LIMIT1(lim)			((lim) << 8)
251 #define  DSC_RC_QUANT_INC_LIMIT0(lim)			((lim) << 0)
252 
253 #define DSCA_PICTURE_PARAMETER_SET_11		_MMIO(0x6B22C)
254 #define DSCC_PICTURE_PARAMETER_SET_11		_MMIO(0x6BA2C)
255 #define _ICL_DSC0_PICTURE_PARAMETER_SET_11_PB	0x7829C
256 #define _ICL_DSC1_PICTURE_PARAMETER_SET_11_PB	0x7839C
257 #define _ICL_DSC0_PICTURE_PARAMETER_SET_11_PC	0x7849C
258 #define _ICL_DSC1_PICTURE_PARAMETER_SET_11_PC	0x7859C
259 #define ICL_DSC0_PICTURE_PARAMETER_SET_11(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
260 							   _ICL_DSC0_PICTURE_PARAMETER_SET_11_PB, \
261 							   _ICL_DSC0_PICTURE_PARAMETER_SET_11_PC)
262 #define ICL_DSC1_PICTURE_PARAMETER_SET_11(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
263 							   _ICL_DSC1_PICTURE_PARAMETER_SET_11_PB, \
264 							   _ICL_DSC1_PICTURE_PARAMETER_SET_11_PC)
265 
266 #define DSCA_PICTURE_PARAMETER_SET_12		_MMIO(0x6B260)
267 #define DSCC_PICTURE_PARAMETER_SET_12		_MMIO(0x6BA60)
268 #define _ICL_DSC0_PICTURE_PARAMETER_SET_12_PB	0x782A0
269 #define _ICL_DSC1_PICTURE_PARAMETER_SET_12_PB	0x783A0
270 #define _ICL_DSC0_PICTURE_PARAMETER_SET_12_PC	0x784A0
271 #define _ICL_DSC1_PICTURE_PARAMETER_SET_12_PC	0x785A0
272 #define ICL_DSC0_PICTURE_PARAMETER_SET_12(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
273 							   _ICL_DSC0_PICTURE_PARAMETER_SET_12_PB, \
274 							   _ICL_DSC0_PICTURE_PARAMETER_SET_12_PC)
275 #define ICL_DSC1_PICTURE_PARAMETER_SET_12(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
276 							   _ICL_DSC1_PICTURE_PARAMETER_SET_12_PB, \
277 							   _ICL_DSC1_PICTURE_PARAMETER_SET_12_PC)
278 
279 #define DSCA_PICTURE_PARAMETER_SET_13		_MMIO(0x6B264)
280 #define DSCC_PICTURE_PARAMETER_SET_13		_MMIO(0x6BA64)
281 #define _ICL_DSC0_PICTURE_PARAMETER_SET_13_PB	0x782A4
282 #define _ICL_DSC1_PICTURE_PARAMETER_SET_13_PB	0x783A4
283 #define _ICL_DSC0_PICTURE_PARAMETER_SET_13_PC	0x784A4
284 #define _ICL_DSC1_PICTURE_PARAMETER_SET_13_PC	0x785A4
285 #define ICL_DSC0_PICTURE_PARAMETER_SET_13(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
286 							   _ICL_DSC0_PICTURE_PARAMETER_SET_13_PB, \
287 							   _ICL_DSC0_PICTURE_PARAMETER_SET_13_PC)
288 #define ICL_DSC1_PICTURE_PARAMETER_SET_13(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
289 							   _ICL_DSC1_PICTURE_PARAMETER_SET_13_PB, \
290 							   _ICL_DSC1_PICTURE_PARAMETER_SET_13_PC)
291 
292 #define DSCA_PICTURE_PARAMETER_SET_14		_MMIO(0x6B268)
293 #define DSCC_PICTURE_PARAMETER_SET_14		_MMIO(0x6BA68)
294 #define _ICL_DSC0_PICTURE_PARAMETER_SET_14_PB	0x782A8
295 #define _ICL_DSC1_PICTURE_PARAMETER_SET_14_PB	0x783A8
296 #define _ICL_DSC0_PICTURE_PARAMETER_SET_14_PC	0x784A8
297 #define _ICL_DSC1_PICTURE_PARAMETER_SET_14_PC	0x785A8
298 #define ICL_DSC0_PICTURE_PARAMETER_SET_14(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
299 							   _ICL_DSC0_PICTURE_PARAMETER_SET_14_PB, \
300 							   _ICL_DSC0_PICTURE_PARAMETER_SET_14_PC)
301 #define ICL_DSC1_PICTURE_PARAMETER_SET_14(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
302 							   _ICL_DSC1_PICTURE_PARAMETER_SET_14_PB, \
303 							   _ICL_DSC1_PICTURE_PARAMETER_SET_14_PC)
304 
305 #define DSCA_PICTURE_PARAMETER_SET_15		_MMIO(0x6B26C)
306 #define DSCC_PICTURE_PARAMETER_SET_15		_MMIO(0x6BA6C)
307 #define _ICL_DSC0_PICTURE_PARAMETER_SET_15_PB	0x782AC
308 #define _ICL_DSC1_PICTURE_PARAMETER_SET_15_PB	0x783AC
309 #define _ICL_DSC0_PICTURE_PARAMETER_SET_15_PC	0x784AC
310 #define _ICL_DSC1_PICTURE_PARAMETER_SET_15_PC	0x785AC
311 #define ICL_DSC0_PICTURE_PARAMETER_SET_15(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
312 							   _ICL_DSC0_PICTURE_PARAMETER_SET_15_PB, \
313 							   _ICL_DSC0_PICTURE_PARAMETER_SET_15_PC)
314 #define ICL_DSC1_PICTURE_PARAMETER_SET_15(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
315 							   _ICL_DSC1_PICTURE_PARAMETER_SET_15_PB, \
316 							   _ICL_DSC1_PICTURE_PARAMETER_SET_15_PC)
317 
318 #define DSCA_PICTURE_PARAMETER_SET_16		_MMIO(0x6B270)
319 #define DSCC_PICTURE_PARAMETER_SET_16		_MMIO(0x6BA70)
320 #define _ICL_DSC0_PICTURE_PARAMETER_SET_16_PB	0x782B0
321 #define _ICL_DSC1_PICTURE_PARAMETER_SET_16_PB	0x783B0
322 #define _ICL_DSC0_PICTURE_PARAMETER_SET_16_PC	0x784B0
323 #define _ICL_DSC1_PICTURE_PARAMETER_SET_16_PC	0x785B0
324 #define ICL_DSC0_PICTURE_PARAMETER_SET_16(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
325 							   _ICL_DSC0_PICTURE_PARAMETER_SET_16_PB, \
326 							   _ICL_DSC0_PICTURE_PARAMETER_SET_16_PC)
327 #define ICL_DSC1_PICTURE_PARAMETER_SET_16(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
328 							   _ICL_DSC1_PICTURE_PARAMETER_SET_16_PB, \
329 							   _ICL_DSC1_PICTURE_PARAMETER_SET_16_PC)
330 #define  DSC_SLICE_ROW_PER_FRAME(slice_row_per_frame)	((slice_row_per_frame) << 20)
331 #define  DSC_SLICE_PER_LINE(slice_per_line)		((slice_per_line) << 16)
332 #define  DSC_SLICE_CHUNK_SIZE(slice_chunk_size)		((slice_chunk_size) << 0)
333 
334 /* Icelake Rate Control Buffer Threshold Registers */
335 #define DSCA_RC_BUF_THRESH_0			_MMIO(0x6B230)
336 #define DSCA_RC_BUF_THRESH_0_UDW		_MMIO(0x6B230 + 4)
337 #define DSCC_RC_BUF_THRESH_0			_MMIO(0x6BA30)
338 #define DSCC_RC_BUF_THRESH_0_UDW		_MMIO(0x6BA30 + 4)
339 #define _ICL_DSC0_RC_BUF_THRESH_0_PB		(0x78254)
340 #define _ICL_DSC0_RC_BUF_THRESH_0_UDW_PB	(0x78254 + 4)
341 #define _ICL_DSC1_RC_BUF_THRESH_0_PB		(0x78354)
342 #define _ICL_DSC1_RC_BUF_THRESH_0_UDW_PB	(0x78354 + 4)
343 #define _ICL_DSC0_RC_BUF_THRESH_0_PC		(0x78454)
344 #define _ICL_DSC0_RC_BUF_THRESH_0_UDW_PC	(0x78454 + 4)
345 #define _ICL_DSC1_RC_BUF_THRESH_0_PC		(0x78554)
346 #define _ICL_DSC1_RC_BUF_THRESH_0_UDW_PC	(0x78554 + 4)
347 #define ICL_DSC0_RC_BUF_THRESH_0(pipe)		_MMIO_PIPE((pipe) - PIPE_B, \
348 						_ICL_DSC0_RC_BUF_THRESH_0_PB, \
349 						_ICL_DSC0_RC_BUF_THRESH_0_PC)
350 #define ICL_DSC0_RC_BUF_THRESH_0_UDW(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
351 						_ICL_DSC0_RC_BUF_THRESH_0_UDW_PB, \
352 						_ICL_DSC0_RC_BUF_THRESH_0_UDW_PC)
353 #define ICL_DSC1_RC_BUF_THRESH_0(pipe)		_MMIO_PIPE((pipe) - PIPE_B, \
354 						_ICL_DSC1_RC_BUF_THRESH_0_PB, \
355 						_ICL_DSC1_RC_BUF_THRESH_0_PC)
356 #define ICL_DSC1_RC_BUF_THRESH_0_UDW(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
357 						_ICL_DSC1_RC_BUF_THRESH_0_UDW_PB, \
358 						_ICL_DSC1_RC_BUF_THRESH_0_UDW_PC)
359 
360 #define DSCA_RC_BUF_THRESH_1			_MMIO(0x6B238)
361 #define DSCA_RC_BUF_THRESH_1_UDW		_MMIO(0x6B238 + 4)
362 #define DSCC_RC_BUF_THRESH_1			_MMIO(0x6BA38)
363 #define DSCC_RC_BUF_THRESH_1_UDW		_MMIO(0x6BA38 + 4)
364 #define _ICL_DSC0_RC_BUF_THRESH_1_PB		(0x7825C)
365 #define _ICL_DSC0_RC_BUF_THRESH_1_UDW_PB	(0x7825C + 4)
366 #define _ICL_DSC1_RC_BUF_THRESH_1_PB		(0x7835C)
367 #define _ICL_DSC1_RC_BUF_THRESH_1_UDW_PB	(0x7835C + 4)
368 #define _ICL_DSC0_RC_BUF_THRESH_1_PC		(0x7845C)
369 #define _ICL_DSC0_RC_BUF_THRESH_1_UDW_PC	(0x7845C + 4)
370 #define _ICL_DSC1_RC_BUF_THRESH_1_PC		(0x7855C)
371 #define _ICL_DSC1_RC_BUF_THRESH_1_UDW_PC	(0x7855C + 4)
372 #define ICL_DSC0_RC_BUF_THRESH_1(pipe)		_MMIO_PIPE((pipe) - PIPE_B, \
373 						_ICL_DSC0_RC_BUF_THRESH_1_PB, \
374 						_ICL_DSC0_RC_BUF_THRESH_1_PC)
375 #define ICL_DSC0_RC_BUF_THRESH_1_UDW(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
376 						_ICL_DSC0_RC_BUF_THRESH_1_UDW_PB, \
377 						_ICL_DSC0_RC_BUF_THRESH_1_UDW_PC)
378 #define ICL_DSC1_RC_BUF_THRESH_1(pipe)		_MMIO_PIPE((pipe) - PIPE_B, \
379 						_ICL_DSC1_RC_BUF_THRESH_1_PB, \
380 						_ICL_DSC1_RC_BUF_THRESH_1_PC)
381 #define ICL_DSC1_RC_BUF_THRESH_1_UDW(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
382 						_ICL_DSC1_RC_BUF_THRESH_1_UDW_PB, \
383 						_ICL_DSC1_RC_BUF_THRESH_1_UDW_PC)
384 
385 /* Icelake DSC Rate Control Range Parameter Registers */
386 #define DSCA_RC_RANGE_PARAMETERS_0		_MMIO(0x6B240)
387 #define DSCA_RC_RANGE_PARAMETERS_0_UDW		_MMIO(0x6B240 + 4)
388 #define DSCC_RC_RANGE_PARAMETERS_0		_MMIO(0x6BA40)
389 #define DSCC_RC_RANGE_PARAMETERS_0_UDW		_MMIO(0x6BA40 + 4)
390 #define _ICL_DSC0_RC_RANGE_PARAMETERS_0_PB	(0x78208)
391 #define _ICL_DSC0_RC_RANGE_PARAMETERS_0_UDW_PB	(0x78208 + 4)
392 #define _ICL_DSC1_RC_RANGE_PARAMETERS_0_PB	(0x78308)
393 #define _ICL_DSC1_RC_RANGE_PARAMETERS_0_UDW_PB	(0x78308 + 4)
394 #define _ICL_DSC0_RC_RANGE_PARAMETERS_0_PC	(0x78408)
395 #define _ICL_DSC0_RC_RANGE_PARAMETERS_0_UDW_PC	(0x78408 + 4)
396 #define _ICL_DSC1_RC_RANGE_PARAMETERS_0_PC	(0x78508)
397 #define _ICL_DSC1_RC_RANGE_PARAMETERS_0_UDW_PC	(0x78508 + 4)
398 #define ICL_DSC0_RC_RANGE_PARAMETERS_0(pipe)		_MMIO_PIPE((pipe) - PIPE_B, \
399 							_ICL_DSC0_RC_RANGE_PARAMETERS_0_PB, \
400 							_ICL_DSC0_RC_RANGE_PARAMETERS_0_PC)
401 #define ICL_DSC0_RC_RANGE_PARAMETERS_0_UDW(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
402 							_ICL_DSC0_RC_RANGE_PARAMETERS_0_UDW_PB, \
403 							_ICL_DSC0_RC_RANGE_PARAMETERS_0_UDW_PC)
404 #define ICL_DSC1_RC_RANGE_PARAMETERS_0(pipe)		_MMIO_PIPE((pipe) - PIPE_B, \
405 							_ICL_DSC1_RC_RANGE_PARAMETERS_0_PB, \
406 							_ICL_DSC1_RC_RANGE_PARAMETERS_0_PC)
407 #define ICL_DSC1_RC_RANGE_PARAMETERS_0_UDW(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
408 							_ICL_DSC1_RC_RANGE_PARAMETERS_0_UDW_PB, \
409 							_ICL_DSC1_RC_RANGE_PARAMETERS_0_UDW_PC)
410 #define RC_BPG_OFFSET_SHIFT			10
411 #define RC_MAX_QP_SHIFT				5
412 #define RC_MIN_QP_SHIFT				0
413 
414 #define DSCA_RC_RANGE_PARAMETERS_1		_MMIO(0x6B248)
415 #define DSCA_RC_RANGE_PARAMETERS_1_UDW		_MMIO(0x6B248 + 4)
416 #define DSCC_RC_RANGE_PARAMETERS_1		_MMIO(0x6BA48)
417 #define DSCC_RC_RANGE_PARAMETERS_1_UDW		_MMIO(0x6BA48 + 4)
418 #define _ICL_DSC0_RC_RANGE_PARAMETERS_1_PB	(0x78210)
419 #define _ICL_DSC0_RC_RANGE_PARAMETERS_1_UDW_PB	(0x78210 + 4)
420 #define _ICL_DSC1_RC_RANGE_PARAMETERS_1_PB	(0x78310)
421 #define _ICL_DSC1_RC_RANGE_PARAMETERS_1_UDW_PB	(0x78310 + 4)
422 #define _ICL_DSC0_RC_RANGE_PARAMETERS_1_PC	(0x78410)
423 #define _ICL_DSC0_RC_RANGE_PARAMETERS_1_UDW_PC	(0x78410 + 4)
424 #define _ICL_DSC1_RC_RANGE_PARAMETERS_1_PC	(0x78510)
425 #define _ICL_DSC1_RC_RANGE_PARAMETERS_1_UDW_PC	(0x78510 + 4)
426 #define ICL_DSC0_RC_RANGE_PARAMETERS_1(pipe)		_MMIO_PIPE((pipe) - PIPE_B, \
427 							_ICL_DSC0_RC_RANGE_PARAMETERS_1_PB, \
428 							_ICL_DSC0_RC_RANGE_PARAMETERS_1_PC)
429 #define ICL_DSC0_RC_RANGE_PARAMETERS_1_UDW(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
430 							_ICL_DSC0_RC_RANGE_PARAMETERS_1_UDW_PB, \
431 							_ICL_DSC0_RC_RANGE_PARAMETERS_1_UDW_PC)
432 #define ICL_DSC1_RC_RANGE_PARAMETERS_1(pipe)		_MMIO_PIPE((pipe) - PIPE_B, \
433 							_ICL_DSC1_RC_RANGE_PARAMETERS_1_PB, \
434 							_ICL_DSC1_RC_RANGE_PARAMETERS_1_PC)
435 #define ICL_DSC1_RC_RANGE_PARAMETERS_1_UDW(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
436 							_ICL_DSC1_RC_RANGE_PARAMETERS_1_UDW_PB, \
437 							_ICL_DSC1_RC_RANGE_PARAMETERS_1_UDW_PC)
438 
439 #define DSCA_RC_RANGE_PARAMETERS_2		_MMIO(0x6B250)
440 #define DSCA_RC_RANGE_PARAMETERS_2_UDW		_MMIO(0x6B250 + 4)
441 #define DSCC_RC_RANGE_PARAMETERS_2		_MMIO(0x6BA50)
442 #define DSCC_RC_RANGE_PARAMETERS_2_UDW		_MMIO(0x6BA50 + 4)
443 #define _ICL_DSC0_RC_RANGE_PARAMETERS_2_PB	(0x78218)
444 #define _ICL_DSC0_RC_RANGE_PARAMETERS_2_UDW_PB	(0x78218 + 4)
445 #define _ICL_DSC1_RC_RANGE_PARAMETERS_2_PB	(0x78318)
446 #define _ICL_DSC1_RC_RANGE_PARAMETERS_2_UDW_PB	(0x78318 + 4)
447 #define _ICL_DSC0_RC_RANGE_PARAMETERS_2_PC	(0x78418)
448 #define _ICL_DSC0_RC_RANGE_PARAMETERS_2_UDW_PC	(0x78418 + 4)
449 #define _ICL_DSC1_RC_RANGE_PARAMETERS_2_PC	(0x78518)
450 #define _ICL_DSC1_RC_RANGE_PARAMETERS_2_UDW_PC	(0x78518 + 4)
451 #define ICL_DSC0_RC_RANGE_PARAMETERS_2(pipe)		_MMIO_PIPE((pipe) - PIPE_B, \
452 							_ICL_DSC0_RC_RANGE_PARAMETERS_2_PB, \
453 							_ICL_DSC0_RC_RANGE_PARAMETERS_2_PC)
454 #define ICL_DSC0_RC_RANGE_PARAMETERS_2_UDW(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
455 							_ICL_DSC0_RC_RANGE_PARAMETERS_2_UDW_PB, \
456 							_ICL_DSC0_RC_RANGE_PARAMETERS_2_UDW_PC)
457 #define ICL_DSC1_RC_RANGE_PARAMETERS_2(pipe)		_MMIO_PIPE((pipe) - PIPE_B, \
458 							_ICL_DSC1_RC_RANGE_PARAMETERS_2_PB, \
459 							_ICL_DSC1_RC_RANGE_PARAMETERS_2_PC)
460 #define ICL_DSC1_RC_RANGE_PARAMETERS_2_UDW(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
461 							_ICL_DSC1_RC_RANGE_PARAMETERS_2_UDW_PB, \
462 							_ICL_DSC1_RC_RANGE_PARAMETERS_2_UDW_PC)
463 
464 #define DSCA_RC_RANGE_PARAMETERS_3		_MMIO(0x6B258)
465 #define DSCA_RC_RANGE_PARAMETERS_3_UDW		_MMIO(0x6B258 + 4)
466 #define DSCC_RC_RANGE_PARAMETERS_3		_MMIO(0x6BA58)
467 #define DSCC_RC_RANGE_PARAMETERS_3_UDW		_MMIO(0x6BA58 + 4)
468 #define _ICL_DSC0_RC_RANGE_PARAMETERS_3_PB	(0x78220)
469 #define _ICL_DSC0_RC_RANGE_PARAMETERS_3_UDW_PB	(0x78220 + 4)
470 #define _ICL_DSC1_RC_RANGE_PARAMETERS_3_PB	(0x78320)
471 #define _ICL_DSC1_RC_RANGE_PARAMETERS_3_UDW_PB	(0x78320 + 4)
472 #define _ICL_DSC0_RC_RANGE_PARAMETERS_3_PC	(0x78420)
473 #define _ICL_DSC0_RC_RANGE_PARAMETERS_3_UDW_PC	(0x78420 + 4)
474 #define _ICL_DSC1_RC_RANGE_PARAMETERS_3_PC	(0x78520)
475 #define _ICL_DSC1_RC_RANGE_PARAMETERS_3_UDW_PC	(0x78520 + 4)
476 #define ICL_DSC0_RC_RANGE_PARAMETERS_3(pipe)		_MMIO_PIPE((pipe) - PIPE_B, \
477 							_ICL_DSC0_RC_RANGE_PARAMETERS_3_PB, \
478 							_ICL_DSC0_RC_RANGE_PARAMETERS_3_PC)
479 #define ICL_DSC0_RC_RANGE_PARAMETERS_3_UDW(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
480 							_ICL_DSC0_RC_RANGE_PARAMETERS_3_UDW_PB, \
481 							_ICL_DSC0_RC_RANGE_PARAMETERS_3_UDW_PC)
482 #define ICL_DSC1_RC_RANGE_PARAMETERS_3(pipe)		_MMIO_PIPE((pipe) - PIPE_B, \
483 							_ICL_DSC1_RC_RANGE_PARAMETERS_3_PB, \
484 							_ICL_DSC1_RC_RANGE_PARAMETERS_3_PC)
485 #define ICL_DSC1_RC_RANGE_PARAMETERS_3_UDW(pipe)	_MMIO_PIPE((pipe) - PIPE_B, \
486 							_ICL_DSC1_RC_RANGE_PARAMETERS_3_UDW_PB, \
487 							_ICL_DSC1_RC_RANGE_PARAMETERS_3_UDW_PC)
488 
489 #endif /* __INTEL_VDSC_REGS_H__ */
490