Subversion Repositories Kolibri OS

Rev

Rev 6660 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6660 Rev 6937
Line 23... Line 23...
23
 */
23
 */
Line 24... Line 24...
24
 
24
 
25
#ifndef _I915_REG_H_
25
#ifndef _I915_REG_H_
Line -... Line 26...
-
 
26
#define _I915_REG_H_
-
 
27
 
-
 
28
typedef struct {
-
 
29
	uint32_t reg;
-
 
30
} i915_reg_t;
-
 
31
 
-
 
32
#define _MMIO(r) ((const i915_reg_t){ .reg = (r) })
-
 
33
 
-
 
34
#define INVALID_MMIO_REG _MMIO(0)
-
 
35
 
-
 
36
static inline uint32_t i915_mmio_reg_offset(i915_reg_t reg)
-
 
37
{
-
 
38
	return reg.reg;
-
 
39
}
-
 
40
 
-
 
41
static inline bool i915_mmio_reg_equal(i915_reg_t a, i915_reg_t b)
-
 
42
{
-
 
43
	return i915_mmio_reg_offset(a) == i915_mmio_reg_offset(b);
-
 
44
}
-
 
45
 
-
 
46
static inline bool i915_mmio_reg_valid(i915_reg_t reg)
-
 
47
{
-
 
48
	return !i915_mmio_reg_equal(reg, INVALID_MMIO_REG);
26
#define _I915_REG_H_
49
}
-
 
50
 
27
 
51
#define _PIPE(pipe, a, b) ((a) + (pipe)*((b)-(a)))
-
 
52
#define _MMIO_PIPE(pipe, a, b) _MMIO(_PIPE(pipe, a, b))
28
#define _PIPE(pipe, a, b) ((a) + (pipe)*((b)-(a)))
53
#define _PLANE(plane, a, b) _PIPE(plane, a, b)
-
 
54
#define _MMIO_PLANE(plane, a, b) _MMIO_PIPE(plane, a, b)
29
#define _PLANE(plane, a, b) _PIPE(plane, a, b)
55
#define _TRANS(tran, a, b) ((a) + (tran)*((b)-(a)))
-
 
56
#define _MMIO_TRANS(tran, a, b) _MMIO(_TRANS(tran, a, b))
30
#define _TRANSCODER(tran, a, b) ((a) + (tran)*((b)-(a)))
57
#define _PORT(port, a, b) ((a) + (port)*((b)-(a)))
31
#define _PORT(port, a, b) ((a) + (port)*((b)-(a)))
58
#define _MMIO_PORT(port, a, b) _MMIO(_PORT(port, a, b))
-
 
59
#define _PIPE3(pipe, a, b, c) ((pipe) == PIPE_A ? (a) : \
32
#define _PIPE3(pipe, a, b, c) ((pipe) == PIPE_A ? (a) : \
60
			       (pipe) == PIPE_B ? (b) : (c))
33
			       (pipe) == PIPE_B ? (b) : (c))
61
#define _MMIO_PIPE3(pipe, a, b, c) _MMIO(_PIPE3(pipe, a, b, c))
-
 
62
#define _PORT3(port, a, b, c) ((port) == PORT_A ? (a) : \
Line 34... Line 63...
34
#define _PORT3(port, a, b, c) ((port) == PORT_A ? (a) : \
63
			       (port) == PORT_B ? (b) : (c))
35
			       (port) == PORT_B ? (b) : (c))
64
#define _MMIO_PORT3(pipe, a, b, c) _MMIO(_PORT3(pipe, a, b, c))
36
 
65
 
37
#define _MASKED_FIELD(mask, value) ({					   \
66
#define _MASKED_FIELD(mask, value) ({					   \
Line 103... Line 132...
103
#define  GRDOM_MEDIA	(3<<2)
132
#define  GRDOM_MEDIA	(3<<2)
104
#define  GRDOM_MASK	(3<<2)
133
#define  GRDOM_MASK	(3<<2)
105
#define  GRDOM_RESET_STATUS (1<<1)
134
#define  GRDOM_RESET_STATUS (1<<1)
106
#define  GRDOM_RESET_ENABLE (1<<0)
135
#define  GRDOM_RESET_ENABLE (1<<0)
Line 107... Line 136...
107
 
136
 
108
#define ILK_GDSR (MCHBAR_MIRROR_BASE + 0x2ca4)
137
#define ILK_GDSR _MMIO(MCHBAR_MIRROR_BASE + 0x2ca4)
109
#define  ILK_GRDOM_FULL		(0<<1)
138
#define  ILK_GRDOM_FULL		(0<<1)
110
#define  ILK_GRDOM_RENDER	(1<<1)
139
#define  ILK_GRDOM_RENDER	(1<<1)
111
#define  ILK_GRDOM_MEDIA	(3<<1)
140
#define  ILK_GRDOM_MEDIA	(3<<1)
112
#define  ILK_GRDOM_MASK		(3<<1)
141
#define  ILK_GRDOM_MASK		(3<<1)
Line 113... Line 142...
113
#define  ILK_GRDOM_RESET_ENABLE (1<<0)
142
#define  ILK_GRDOM_RESET_ENABLE (1<<0)
114
 
143
 
115
#define GEN6_MBCUNIT_SNPCR	0x900c /* for LLC config */
144
#define GEN6_MBCUNIT_SNPCR	_MMIO(0x900c) /* for LLC config */
116
#define   GEN6_MBC_SNPCR_SHIFT	21
145
#define   GEN6_MBC_SNPCR_SHIFT	21
117
#define   GEN6_MBC_SNPCR_MASK	(3<<21)
146
#define   GEN6_MBC_SNPCR_MASK	(3<<21)
118
#define   GEN6_MBC_SNPCR_MAX	(0<<21)
147
#define   GEN6_MBC_SNPCR_MAX	(0<<21)
119
#define   GEN6_MBC_SNPCR_MED	(1<<21)
148
#define   GEN6_MBC_SNPCR_MED	(1<<21)
Line 120... Line 149...
120
#define   GEN6_MBC_SNPCR_LOW	(2<<21)
149
#define   GEN6_MBC_SNPCR_LOW	(2<<21)
121
#define   GEN6_MBC_SNPCR_MIN	(3<<21) /* only 1/16th of the cache is shared */
150
#define   GEN6_MBC_SNPCR_MIN	(3<<21) /* only 1/16th of the cache is shared */
Line 122... Line 151...
122
 
151
 
123
#define VLV_G3DCTL		0x9024
152
#define VLV_G3DCTL		_MMIO(0x9024)
124
#define VLV_GSCKGCTL		0x9028
153
#define VLV_GSCKGCTL		_MMIO(0x9028)
125
 
154
 
126
#define GEN6_MBCTL		0x0907c
155
#define GEN6_MBCTL		_MMIO(0x0907c)
127
#define   GEN6_MBCTL_ENABLE_BOOT_FETCH	(1 << 4)
156
#define   GEN6_MBCTL_ENABLE_BOOT_FETCH	(1 << 4)
Line 128... Line 157...
128
#define   GEN6_MBCTL_CTX_FETCH_NEEDED	(1 << 3)
157
#define   GEN6_MBCTL_CTX_FETCH_NEEDED	(1 << 3)
129
#define   GEN6_MBCTL_BME_UPDATE_ENABLE	(1 << 2)
158
#define   GEN6_MBCTL_BME_UPDATE_ENABLE	(1 << 2)
130
#define   GEN6_MBCTL_MAE_UPDATE_ENABLE	(1 << 1)
159
#define   GEN6_MBCTL_MAE_UPDATE_ENABLE	(1 << 1)
131
#define   GEN6_MBCTL_BOOT_FETCH_MECH	(1 << 0)
160
#define   GEN6_MBCTL_BOOT_FETCH_MECH	(1 << 0)
132
 
161
 
Line 133... Line 162...
133
#define GEN6_GDRST	0x941c
162
#define GEN6_GDRST	_MMIO(0x941c)
134
#define  GEN6_GRDOM_FULL		(1 << 0)
163
#define  GEN6_GRDOM_FULL		(1 << 0)
135
#define  GEN6_GRDOM_RENDER		(1 << 1)
164
#define  GEN6_GRDOM_RENDER		(1 << 1)
136
#define  GEN6_GRDOM_MEDIA		(1 << 2)
165
#define  GEN6_GRDOM_MEDIA		(1 << 2)
Line 137... Line 166...
137
#define  GEN6_GRDOM_BLT			(1 << 3)
166
#define  GEN6_GRDOM_BLT			(1 << 3)
138
 
167
 
Line 139... Line 168...
139
#define RING_PP_DIR_BASE(ring)		((ring)->mmio_base+0x228)
168
#define RING_PP_DIR_BASE(ring)		_MMIO((ring)->mmio_base+0x228)
140
#define RING_PP_DIR_BASE_READ(ring)	((ring)->mmio_base+0x518)
169
#define RING_PP_DIR_BASE_READ(ring)	_MMIO((ring)->mmio_base+0x518)
141
#define RING_PP_DIR_DCLV(ring)		((ring)->mmio_base+0x220)
170
#define RING_PP_DIR_DCLV(ring)		_MMIO((ring)->mmio_base+0x220)
142
#define   PP_DIR_DCLV_2G		0xffffffff
171
#define   PP_DIR_DCLV_2G		0xffffffff
143
 
172
 
144
#define GEN8_RING_PDP_UDW(ring, n)	((ring)->mmio_base+0x270 + ((n) * 8 + 4))
173
#define GEN8_RING_PDP_UDW(ring, n)	_MMIO((ring)->mmio_base+0x270 + (n) * 8 + 4)
Line 155... Line 184...
155
#define   GEN8_RPCS_EU_MAX_SHIFT	4
184
#define   GEN8_RPCS_EU_MAX_SHIFT	4
156
#define   GEN8_RPCS_EU_MAX_MASK		(0xf << GEN8_RPCS_EU_MAX_SHIFT)
185
#define   GEN8_RPCS_EU_MAX_MASK		(0xf << GEN8_RPCS_EU_MAX_SHIFT)
157
#define   GEN8_RPCS_EU_MIN_SHIFT	0
186
#define   GEN8_RPCS_EU_MIN_SHIFT	0
158
#define   GEN8_RPCS_EU_MIN_MASK		(0xf << GEN8_RPCS_EU_MIN_SHIFT)
187
#define   GEN8_RPCS_EU_MIN_MASK		(0xf << GEN8_RPCS_EU_MIN_SHIFT)
Line 159... Line 188...
159
 
188
 
160
#define GAM_ECOCHK			0x4090
189
#define GAM_ECOCHK			_MMIO(0x4090)
161
#define   BDW_DISABLE_HDC_INVALIDATION	(1<<25)
190
#define   BDW_DISABLE_HDC_INVALIDATION	(1<<25)
162
#define   ECOCHK_SNB_BIT		(1<<10)
191
#define   ECOCHK_SNB_BIT		(1<<10)
163
#define   ECOCHK_DIS_TLB		(1<<8)
192
#define   ECOCHK_DIS_TLB		(1<<8)
164
#define   HSW_ECOCHK_ARB_PRIO_SOL	(1<<6)
193
#define   HSW_ECOCHK_ARB_PRIO_SOL	(1<<6)
Line 168... Line 197...
168
#define   ECOCHK_PPGTT_LLC_IVB		(0x1<<3)
197
#define   ECOCHK_PPGTT_LLC_IVB		(0x1<<3)
169
#define   ECOCHK_PPGTT_UC_HSW		(0x1<<3)
198
#define   ECOCHK_PPGTT_UC_HSW		(0x1<<3)
170
#define   ECOCHK_PPGTT_WT_HSW		(0x2<<3)
199
#define   ECOCHK_PPGTT_WT_HSW		(0x2<<3)
171
#define   ECOCHK_PPGTT_WB_HSW		(0x3<<3)
200
#define   ECOCHK_PPGTT_WB_HSW		(0x3<<3)
Line 172... Line 201...
172
 
201
 
173
#define GAC_ECO_BITS			0x14090
202
#define GAC_ECO_BITS			_MMIO(0x14090)
174
#define   ECOBITS_SNB_BIT		(1<<13)
203
#define   ECOBITS_SNB_BIT		(1<<13)
175
#define   ECOBITS_PPGTT_CACHE64B	(3<<8)
204
#define   ECOBITS_PPGTT_CACHE64B	(3<<8)
Line 176... Line 205...
176
#define   ECOBITS_PPGTT_CACHE4B		(0<<8)
205
#define   ECOBITS_PPGTT_CACHE4B		(0<<8)
177
 
206
 
Line 178... Line 207...
178
#define GAB_CTL				0x24000
207
#define GAB_CTL				_MMIO(0x24000)
179
#define   GAB_CTL_CONT_AFTER_PAGEFAULT	(1<<8)
208
#define   GAB_CTL_CONT_AFTER_PAGEFAULT	(1<<8)
180
 
209
 
181
#define GEN6_STOLEN_RESERVED		0x1082C0
210
#define GEN6_STOLEN_RESERVED		_MMIO(0x1082C0)
182
#define GEN6_STOLEN_RESERVED_ADDR_MASK	(0xFFF << 20)
211
#define GEN6_STOLEN_RESERVED_ADDR_MASK	(0xFFF << 20)
183
#define GEN7_STOLEN_RESERVED_ADDR_MASK	(0x3FFF << 18)
212
#define GEN7_STOLEN_RESERVED_ADDR_MASK	(0x3FFF << 18)
Line 198... Line 227...
198
/* VGA stuff */
227
/* VGA stuff */
Line 199... Line 228...
199
 
228
 
200
#define VGA_ST01_MDA 0x3ba
229
#define VGA_ST01_MDA 0x3ba
Line -... Line 230...
-
 
230
#define VGA_ST01_CGA 0x3da
201
#define VGA_ST01_CGA 0x3da
231
 
202
 
232
#define _VGA_MSR_WRITE _MMIO(0x3c2)
203
#define VGA_MSR_WRITE 0x3c2
233
#define VGA_MSR_WRITE 0x3c2
204
#define VGA_MSR_READ 0x3cc
234
#define VGA_MSR_READ 0x3cc
Line 375... Line 405...
375
#define MI_BATCH_BUFFER_START	MI_INSTR(0x31, 0)
405
#define MI_BATCH_BUFFER_START	MI_INSTR(0x31, 0)
376
#define   MI_BATCH_GTT		    (2<<6) /* aliased with (1<<7) on gen4 */
406
#define   MI_BATCH_GTT		    (2<<6) /* aliased with (1<<7) on gen4 */
377
#define MI_BATCH_BUFFER_START_GEN8	MI_INSTR(0x31, 1)
407
#define MI_BATCH_BUFFER_START_GEN8	MI_INSTR(0x31, 1)
378
#define   MI_BATCH_RESOURCE_STREAMER (1<<10)
408
#define   MI_BATCH_RESOURCE_STREAMER (1<<10)
Line 379... Line 409...
379
 
409
 
-
 
410
#define MI_PREDICATE_SRC0	_MMIO(0x2400)
380
#define MI_PREDICATE_SRC0	(0x2400)
411
#define MI_PREDICATE_SRC0_UDW	_MMIO(0x2400 + 4)
-
 
412
#define MI_PREDICATE_SRC1	_MMIO(0x2408)
Line 381... Line 413...
381
#define MI_PREDICATE_SRC1	(0x2408)
413
#define MI_PREDICATE_SRC1_UDW	_MMIO(0x2408 + 4)
382
 
414
 
383
#define MI_PREDICATE_RESULT_2	(0x2214)
415
#define MI_PREDICATE_RESULT_2	_MMIO(0x2214)
Line 384... Line 416...
384
#define  LOWER_SLICE_ENABLED	(1<<0)
416
#define  LOWER_SLICE_ENABLED	(1<<0)
385
#define  LOWER_SLICE_DISABLED	(0<<0)
417
#define  LOWER_SLICE_DISABLED	(0<<0)
Line 507... Line 539...
507
#define SRC_COPY_BLT  ((0x2<<29)|(0x43<<22))
539
#define SRC_COPY_BLT  ((0x2<<29)|(0x43<<22))
Line 508... Line 540...
508
 
540
 
509
/*
541
/*
510
 * Registers used only by the command parser
542
 * Registers used only by the command parser
511
 */
543
 */
Line 512... Line 544...
512
#define BCS_SWCTRL 0x22200
544
#define BCS_SWCTRL _MMIO(0x22200)
-
 
545
 
513
 
546
#define GPGPU_THREADS_DISPATCHED        _MMIO(0x2290)
-
 
547
#define GPGPU_THREADS_DISPATCHED_UDW	_MMIO(0x2290 + 4)
514
#define GPGPU_THREADS_DISPATCHED        0x2290
548
#define HS_INVOCATION_COUNT             _MMIO(0x2300)
-
 
549
#define HS_INVOCATION_COUNT_UDW		_MMIO(0x2300 + 4)
515
#define HS_INVOCATION_COUNT             0x2300
550
#define DS_INVOCATION_COUNT             _MMIO(0x2308)
-
 
551
#define DS_INVOCATION_COUNT_UDW		_MMIO(0x2308 + 4)
516
#define DS_INVOCATION_COUNT             0x2308
552
#define IA_VERTICES_COUNT               _MMIO(0x2310)
-
 
553
#define IA_VERTICES_COUNT_UDW		_MMIO(0x2310 + 4)
517
#define IA_VERTICES_COUNT               0x2310
554
#define IA_PRIMITIVES_COUNT             _MMIO(0x2318)
-
 
555
#define IA_PRIMITIVES_COUNT_UDW		_MMIO(0x2318 + 4)
518
#define IA_PRIMITIVES_COUNT             0x2318
556
#define VS_INVOCATION_COUNT             _MMIO(0x2320)
-
 
557
#define VS_INVOCATION_COUNT_UDW		_MMIO(0x2320 + 4)
519
#define VS_INVOCATION_COUNT             0x2320
558
#define GS_INVOCATION_COUNT             _MMIO(0x2328)
-
 
559
#define GS_INVOCATION_COUNT_UDW		_MMIO(0x2328 + 4)
520
#define GS_INVOCATION_COUNT             0x2328
560
#define GS_PRIMITIVES_COUNT             _MMIO(0x2330)
-
 
561
#define GS_PRIMITIVES_COUNT_UDW		_MMIO(0x2330 + 4)
521
#define GS_PRIMITIVES_COUNT             0x2330
562
#define CL_INVOCATION_COUNT             _MMIO(0x2338)
-
 
563
#define CL_INVOCATION_COUNT_UDW		_MMIO(0x2338 + 4)
522
#define CL_INVOCATION_COUNT             0x2338
564
#define CL_PRIMITIVES_COUNT             _MMIO(0x2340)
-
 
565
#define CL_PRIMITIVES_COUNT_UDW		_MMIO(0x2340 + 4)
523
#define CL_PRIMITIVES_COUNT             0x2340
566
#define PS_INVOCATION_COUNT             _MMIO(0x2348)
-
 
567
#define PS_INVOCATION_COUNT_UDW		_MMIO(0x2348 + 4)
Line 524... Line 568...
524
#define PS_INVOCATION_COUNT             0x2348
568
#define PS_DEPTH_COUNT                  _MMIO(0x2350)
525
#define PS_DEPTH_COUNT                  0x2350
569
#define PS_DEPTH_COUNT_UDW		_MMIO(0x2350 + 4)
-
 
570
 
Line 526... Line 571...
526
 
571
/* There are the 4 64-bit counter registers, one for each stream output */
-
 
572
#define GEN7_SO_NUM_PRIMS_WRITTEN(n)		_MMIO(0x5200 + (n) * 8)
Line 527... Line 573...
527
/* There are the 4 64-bit counter registers, one for each stream output */
573
#define GEN7_SO_NUM_PRIMS_WRITTEN_UDW(n)	_MMIO(0x5200 + (n) * 8 + 4)
528
#define GEN7_SO_NUM_PRIMS_WRITTEN(n) (0x5200 + (n) * 8)
574
 
529
 
575
#define GEN7_SO_PRIM_STORAGE_NEEDED(n)		_MMIO(0x5240 + (n) * 8)
530
#define GEN7_SO_PRIM_STORAGE_NEEDED(n)  (0x5240 + (n) * 8)
576
#define GEN7_SO_PRIM_STORAGE_NEEDED_UDW(n)	_MMIO(0x5240 + (n) * 8 + 4)
531
 
577
 
532
#define GEN7_3DPRIM_END_OFFSET          0x2420
578
#define GEN7_3DPRIM_END_OFFSET          _MMIO(0x2420)
533
#define GEN7_3DPRIM_START_VERTEX        0x2430
579
#define GEN7_3DPRIM_START_VERTEX        _MMIO(0x2430)
534
#define GEN7_3DPRIM_VERTEX_COUNT        0x2434
580
#define GEN7_3DPRIM_VERTEX_COUNT        _MMIO(0x2434)
535
#define GEN7_3DPRIM_INSTANCE_COUNT      0x2438
581
#define GEN7_3DPRIM_INSTANCE_COUNT      _MMIO(0x2438)
536
#define GEN7_3DPRIM_START_INSTANCE      0x243C
582
#define GEN7_3DPRIM_START_INSTANCE      _MMIO(0x243C)
Line 537... Line 583...
537
#define GEN7_3DPRIM_BASE_VERTEX         0x2440
583
#define GEN7_3DPRIM_BASE_VERTEX         _MMIO(0x2440)
Line 538... Line 584...
538
 
584
 
539
#define GEN7_GPGPU_DISPATCHDIMX         0x2500
585
#define GEN7_GPGPU_DISPATCHDIMX         _MMIO(0x2500)
540
#define GEN7_GPGPU_DISPATCHDIMY         0x2504
586
#define GEN7_GPGPU_DISPATCHDIMY         _MMIO(0x2504)
541
#define GEN7_GPGPU_DISPATCHDIMZ         0x2508
-
 
542
 
-
 
Line 543... Line 587...
543
#define OACONTROL 0x2360
587
#define GEN7_GPGPU_DISPATCHDIMZ         _MMIO(0x2508)
544
 
588
 
545
#define _GEN7_PIPEA_DE_LOAD_SL	0x70068
589
#define OACONTROL _MMIO(0x2360)
546
#define _GEN7_PIPEB_DE_LOAD_SL	0x71068
590
 
547
#define GEN7_PIPE_DE_LOAD_SL(pipe) _PIPE(pipe, \
591
#define _GEN7_PIPEA_DE_LOAD_SL	0x70068
548
					 _GEN7_PIPEA_DE_LOAD_SL, \
592
#define _GEN7_PIPEB_DE_LOAD_SL	0x71068
549
					 _GEN7_PIPEB_DE_LOAD_SL)
593
#define GEN7_PIPE_DE_LOAD_SL(pipe) _MMIO_PIPE(pipe, _GEN7_PIPEA_DE_LOAD_SL, _GEN7_PIPEB_DE_LOAD_SL)
Line 550... Line 594...
550
 
594
 
551
/*
595
/*
552
 * Reset registers
596
 * Reset registers
553
 */
597
 */
554
#define DEBUG_RESET_I830		0x6070
598
#define DEBUG_RESET_I830		_MMIO(0x6070)
555
#define  DEBUG_RESET_FULL		(1<<7)
599
#define  DEBUG_RESET_FULL		(1<<7)
556
#define  DEBUG_RESET_RENDER		(1<<8)
600
#define  DEBUG_RESET_RENDER		(1<<8)
557
#define  DEBUG_RESET_DISPLAY		(1<<9)
601
#define  DEBUG_RESET_DISPLAY		(1<<9)
558
 
602
 
Line 574... Line 618...
574
#define   IOSF_PORT_GPIO_NC			0x13
618
#define   IOSF_PORT_GPIO_NC			0x13
575
#define   IOSF_PORT_CCK				0x14
619
#define   IOSF_PORT_CCK				0x14
576
#define   IOSF_PORT_CCU				0xA9
620
#define   IOSF_PORT_CCU				0xA9
577
#define   IOSF_PORT_GPS_CORE			0x48
621
#define   IOSF_PORT_GPS_CORE			0x48
578
#define   IOSF_PORT_FLISDSI			0x1B
622
#define   IOSF_PORT_FLISDSI			0x1B
579
#define VLV_IOSF_DATA				(VLV_DISPLAY_BASE + 0x2104)
623
#define VLV_IOSF_DATA				_MMIO(VLV_DISPLAY_BASE + 0x2104)
580
#define VLV_IOSF_ADDR				(VLV_DISPLAY_BASE + 0x2108)
624
#define VLV_IOSF_ADDR				_MMIO(VLV_DISPLAY_BASE + 0x2108)
Line 581... Line 625...
581
 
625
 
582
/* See configdb bunit SB addr map */
626
/* See configdb bunit SB addr map */
Line 583... Line 627...
583
#define BUNIT_REG_BISOC				0x11
627
#define BUNIT_REG_BISOC				0x11
Line 607... Line 651...
607
#define   DP_SSS_RESET(pipe)			_DP_SSS(0x2, (pipe))
651
#define   DP_SSS_RESET(pipe)			_DP_SSS(0x2, (pipe))
608
#define   DP_SSS_PWR_GATE(pipe)			_DP_SSS(0x3, (pipe))
652
#define   DP_SSS_PWR_GATE(pipe)			_DP_SSS(0x3, (pipe))
Line 609... Line 653...
609
 
653
 
610
/* See the PUNIT HAS v0.8 for the below bits */
654
/* See the PUNIT HAS v0.8 for the below bits */
-
 
655
enum punit_power_well {
611
enum punit_power_well {
656
	/* These numbers are fixed and must match the position of the pw bits */
612
	PUNIT_POWER_WELL_RENDER			= 0,
657
	PUNIT_POWER_WELL_RENDER			= 0,
613
	PUNIT_POWER_WELL_MEDIA			= 1,
658
	PUNIT_POWER_WELL_MEDIA			= 1,
614
	PUNIT_POWER_WELL_DISP2D			= 3,
659
	PUNIT_POWER_WELL_DISP2D			= 3,
615
	PUNIT_POWER_WELL_DPIO_CMN_BC		= 5,
660
	PUNIT_POWER_WELL_DPIO_CMN_BC		= 5,
Line 619... Line 664...
619
	PUNIT_POWER_WELL_DPIO_TX_C_LANES_23	= 9,
664
	PUNIT_POWER_WELL_DPIO_TX_C_LANES_23	= 9,
620
	PUNIT_POWER_WELL_DPIO_RX0		= 10,
665
	PUNIT_POWER_WELL_DPIO_RX0		= 10,
621
	PUNIT_POWER_WELL_DPIO_RX1		= 11,
666
	PUNIT_POWER_WELL_DPIO_RX1		= 11,
622
	PUNIT_POWER_WELL_DPIO_CMN_D		= 12,
667
	PUNIT_POWER_WELL_DPIO_CMN_D		= 12,
Line -... Line 668...
-
 
668
 
623
 
669
	/* Not actual bit groups. Used as IDs for lookup_power_well() */
624
	PUNIT_POWER_WELL_NUM,
670
	PUNIT_POWER_WELL_ALWAYS_ON,
Line 625... Line 671...
625
};
671
};
-
 
672
 
626
 
673
enum skl_disp_power_wells {
627
enum skl_disp_power_wells {
674
	/* These numbers are fixed and must match the position of the pw bits */
628
	SKL_DISP_PW_MISC_IO,
675
	SKL_DISP_PW_MISC_IO,
629
	SKL_DISP_PW_DDI_A_E,
676
	SKL_DISP_PW_DDI_A_E,
630
	SKL_DISP_PW_DDI_B,
677
	SKL_DISP_PW_DDI_B,
631
	SKL_DISP_PW_DDI_C,
678
	SKL_DISP_PW_DDI_C,
632
	SKL_DISP_PW_DDI_D,
679
	SKL_DISP_PW_DDI_D,
-
 
680
	SKL_DISP_PW_1 = 14,
-
 
681
	SKL_DISP_PW_2,
-
 
682
 
-
 
683
	/* Not actual bit groups. Used as IDs for lookup_power_well() */
633
	SKL_DISP_PW_1 = 14,
684
	SKL_DISP_PW_ALWAYS_ON,
Line 634... Line 685...
634
	SKL_DISP_PW_2,
685
	SKL_DISP_PW_DC_OFF,
635
};
686
};
Line 802... Line 853...
802
 * Port A PLL is directly connected to transcoder EDP and port B/C
853
 * Port A PLL is directly connected to transcoder EDP and port B/C
803
 * PLLs can be routed to any transcoder A/B/C.
854
 * PLLs can be routed to any transcoder A/B/C.
804
 *
855
 *
805
 * Note: DDI0 is digital port B, DD1 is digital port C, and DDI2 is
856
 * Note: DDI0 is digital port B, DD1 is digital port C, and DDI2 is
806
 * digital port D (CHV) or port A (BXT).
857
 * digital port D (CHV) or port A (BXT).
807
 */
858
 *
808
/*
859
 *
809
 * Dual channel PHY (VLV/CHV/BXT)
860
 * Dual channel PHY (VLV/CHV/BXT)
810
 * ---------------------------------
861
 * ---------------------------------
811
 * |      CH0      |      CH1      |
862
 * |      CH0      |      CH1      |
812
 * |  CMN/PLL/REF  |  CMN/PLL/REF  |
863
 * |  CMN/PLL/REF  |  CMN/PLL/REF  |
813
 * |---------------|---------------| Display PHY
864
 * |---------------|---------------| Display PHY
Line 830... Line 881...
830
 * |     DDI2      | DP/HDMI port
881
 * |     DDI2      | DP/HDMI port
831
 * -----------------
882
 * -----------------
832
 */
883
 */
833
#define DPIO_DEVFN			0
884
#define DPIO_DEVFN			0
Line 834... Line 885...
834
 
885
 
835
#define DPIO_CTL			(VLV_DISPLAY_BASE + 0x2110)
886
#define DPIO_CTL			_MMIO(VLV_DISPLAY_BASE + 0x2110)
836
#define  DPIO_MODSEL1			(1<<3) /* if ref clk b == 27 */
887
#define  DPIO_MODSEL1			(1<<3) /* if ref clk b == 27 */
837
#define  DPIO_MODSEL0			(1<<2) /* if ref clk a == 27 */
888
#define  DPIO_MODSEL0			(1<<2) /* if ref clk a == 27 */
838
#define  DPIO_SFR_BYPASS		(1<<1)
889
#define  DPIO_SFR_BYPASS		(1<<1)
Line 1183... Line 1234...
1183
#define   DPIO_FRC_LATENCY_SHFIT	8
1234
#define   DPIO_FRC_LATENCY_SHFIT	8
1184
#define CHV_TX_DW14(ch, lane) _TXLANE(ch, lane, 0xb8)
1235
#define CHV_TX_DW14(ch, lane) _TXLANE(ch, lane, 0xb8)
1185
#define   DPIO_UPAR_SHIFT		30
1236
#define   DPIO_UPAR_SHIFT		30
Line 1186... Line 1237...
1186
 
1237
 
1187
/* BXT PHY registers */
1238
/* BXT PHY registers */
Line 1188... Line 1239...
1188
#define _BXT_PHY(phy, a, b)		_PIPE((phy), (a), (b))
1239
#define _BXT_PHY(phy, a, b)		_MMIO_PIPE((phy), (a), (b))
1189
 
1240
 
Line 1190... Line 1241...
1190
#define BXT_P_CR_GT_DISP_PWRON		0x138090
1241
#define BXT_P_CR_GT_DISP_PWRON		_MMIO(0x138090)
1191
#define   GT_DISPLAY_POWER_ON(phy)	(1 << (phy))
1242
#define   GT_DISPLAY_POWER_ON(phy)	(1 << (phy))
1192
 
1243
 
Line 1201... Line 1252...
1201
#define _PORT_PLL_B			0x46078
1252
#define _PORT_PLL_B			0x46078
1202
#define _PORT_PLL_C			0x4607c
1253
#define _PORT_PLL_C			0x4607c
1203
#define   PORT_PLL_ENABLE		(1 << 31)
1254
#define   PORT_PLL_ENABLE		(1 << 31)
1204
#define   PORT_PLL_LOCK			(1 << 30)
1255
#define   PORT_PLL_LOCK			(1 << 30)
1205
#define   PORT_PLL_REF_SEL		(1 << 27)
1256
#define   PORT_PLL_REF_SEL		(1 << 27)
1206
#define BXT_PORT_PLL_ENABLE(port)	_PORT(port, _PORT_PLL_A, _PORT_PLL_B)
1257
#define BXT_PORT_PLL_ENABLE(port)	_MMIO_PORT(port, _PORT_PLL_A, _PORT_PLL_B)
Line 1207... Line 1258...
1207
 
1258
 
1208
#define _PORT_PLL_EBB_0_A		0x162034
1259
#define _PORT_PLL_EBB_0_A		0x162034
1209
#define _PORT_PLL_EBB_0_B		0x6C034
1260
#define _PORT_PLL_EBB_0_B		0x6C034
1210
#define _PORT_PLL_EBB_0_C		0x6C340
1261
#define _PORT_PLL_EBB_0_C		0x6C340
1211
#define   PORT_PLL_P1_SHIFT		13
1262
#define   PORT_PLL_P1_SHIFT		13
1212
#define   PORT_PLL_P1_MASK		(0x07 << PORT_PLL_P1_SHIFT)
1263
#define   PORT_PLL_P1_MASK		(0x07 << PORT_PLL_P1_SHIFT)
1213
#define   PORT_PLL_P1(x)		((x)  << PORT_PLL_P1_SHIFT)
1264
#define   PORT_PLL_P1(x)		((x)  << PORT_PLL_P1_SHIFT)
1214
#define   PORT_PLL_P2_SHIFT		8
1265
#define   PORT_PLL_P2_SHIFT		8
1215
#define   PORT_PLL_P2_MASK		(0x1f << PORT_PLL_P2_SHIFT)
1266
#define   PORT_PLL_P2_MASK		(0x1f << PORT_PLL_P2_SHIFT)
1216
#define   PORT_PLL_P2(x)		((x)  << PORT_PLL_P2_SHIFT)
1267
#define   PORT_PLL_P2(x)		((x)  << PORT_PLL_P2_SHIFT)
1217
#define BXT_PORT_PLL_EBB_0(port)	_PORT3(port, _PORT_PLL_EBB_0_A, \
1268
#define BXT_PORT_PLL_EBB_0(port)	_MMIO_PORT3(port, _PORT_PLL_EBB_0_A, \
1218
						_PORT_PLL_EBB_0_B,	\
1269
						_PORT_PLL_EBB_0_B,	\
Line 1219... Line 1270...
1219
						_PORT_PLL_EBB_0_C)
1270
						_PORT_PLL_EBB_0_C)
1220
 
1271
 
1221
#define _PORT_PLL_EBB_4_A		0x162038
1272
#define _PORT_PLL_EBB_4_A		0x162038
1222
#define _PORT_PLL_EBB_4_B		0x6C038
1273
#define _PORT_PLL_EBB_4_B		0x6C038
1223
#define _PORT_PLL_EBB_4_C		0x6C344
1274
#define _PORT_PLL_EBB_4_C		0x6C344
1224
#define   PORT_PLL_10BIT_CLK_ENABLE	(1 << 13)
1275
#define   PORT_PLL_10BIT_CLK_ENABLE	(1 << 13)
1225
#define   PORT_PLL_RECALIBRATE		(1 << 14)
1276
#define   PORT_PLL_RECALIBRATE		(1 << 14)
1226
#define BXT_PORT_PLL_EBB_4(port)	_PORT3(port, _PORT_PLL_EBB_4_A, \
1277
#define BXT_PORT_PLL_EBB_4(port)	_MMIO_PORT3(port, _PORT_PLL_EBB_4_A, \
Line 1227... Line 1278...
1227
						_PORT_PLL_EBB_4_B,	\
1278
						_PORT_PLL_EBB_4_B,	\
1228
						_PORT_PLL_EBB_4_C)
1279
						_PORT_PLL_EBB_4_C)
Line 1257... Line 1308...
1257
#define  PORT_PLL_DCO_AMP_MASK		0x3c00
1308
#define  PORT_PLL_DCO_AMP_MASK		0x3c00
1258
#define  PORT_PLL_DCO_AMP(x)		((x)<<10)
1309
#define  PORT_PLL_DCO_AMP(x)		((x)<<10)
1259
#define _PORT_PLL_BASE(port)		_PORT3(port, _PORT_PLL_0_A,	\
1310
#define _PORT_PLL_BASE(port)		_PORT3(port, _PORT_PLL_0_A,	\
1260
						_PORT_PLL_0_B,		\
1311
						_PORT_PLL_0_B,		\
1261
						_PORT_PLL_0_C)
1312
						_PORT_PLL_0_C)
1262
#define BXT_PORT_PLL(port, idx)		(_PORT_PLL_BASE(port) + (idx) * 4)
1313
#define BXT_PORT_PLL(port, idx)		_MMIO(_PORT_PLL_BASE(port) + (idx) * 4)
Line 1263... Line 1314...
1263
 
1314
 
1264
/* BXT PHY common lane registers */
1315
/* BXT PHY common lane registers */
1265
#define _PORT_CL1CM_DW0_A		0x162000
1316
#define _PORT_CL1CM_DW0_A		0x162000
1266
#define _PORT_CL1CM_DW0_BC		0x6C000
1317
#define _PORT_CL1CM_DW0_BC		0x6C000
Line 1295... Line 1346...
1295
#define   OCL2_LDOFUSE_PWR_DIS		(1 << 6)
1346
#define   OCL2_LDOFUSE_PWR_DIS		(1 << 6)
1296
#define BXT_PORT_CL1CM_DW30(phy)	_BXT_PHY((phy), _PORT_CL1CM_DW30_BC, \
1347
#define BXT_PORT_CL1CM_DW30(phy)	_BXT_PHY((phy), _PORT_CL1CM_DW30_BC, \
1297
							_PORT_CL1CM_DW30_A)
1348
							_PORT_CL1CM_DW30_A)
Line 1298... Line 1349...
1298
 
1349
 
1299
/* Defined for PHY0 only */
1350
/* Defined for PHY0 only */
1300
#define BXT_PORT_CL2CM_DW6_BC		0x6C358
1351
#define BXT_PORT_CL2CM_DW6_BC		_MMIO(0x6C358)
Line 1301... Line 1352...
1301
#define   DW6_OLDO_DYN_PWR_DOWN_EN	(1 << 28)
1352
#define   DW6_OLDO_DYN_PWR_DOWN_EN	(1 << 28)
1302
 
1353
 
1303
/* BXT PHY Ref registers */
1354
/* BXT PHY Ref registers */
Line 1335... Line 1386...
1335
#define _PORT_PCS_DW10_LN01_B		0x6C428
1386
#define _PORT_PCS_DW10_LN01_B		0x6C428
1336
#define _PORT_PCS_DW10_LN01_C		0x6C828
1387
#define _PORT_PCS_DW10_LN01_C		0x6C828
1337
#define _PORT_PCS_DW10_GRP_A		0x162C28
1388
#define _PORT_PCS_DW10_GRP_A		0x162C28
1338
#define _PORT_PCS_DW10_GRP_B		0x6CC28
1389
#define _PORT_PCS_DW10_GRP_B		0x6CC28
1339
#define _PORT_PCS_DW10_GRP_C		0x6CE28
1390
#define _PORT_PCS_DW10_GRP_C		0x6CE28
1340
#define BXT_PORT_PCS_DW10_LN01(port)	_PORT3(port, _PORT_PCS_DW10_LN01_A, \
1391
#define BXT_PORT_PCS_DW10_LN01(port)	_MMIO_PORT3(port, _PORT_PCS_DW10_LN01_A, \
1341
						     _PORT_PCS_DW10_LN01_B, \
1392
						     _PORT_PCS_DW10_LN01_B, \
1342
						     _PORT_PCS_DW10_LN01_C)
1393
						     _PORT_PCS_DW10_LN01_C)
1343
#define BXT_PORT_PCS_DW10_GRP(port)	_PORT3(port, _PORT_PCS_DW10_GRP_A,  \
1394
#define BXT_PORT_PCS_DW10_GRP(port)	_MMIO_PORT3(port, _PORT_PCS_DW10_GRP_A,  \
1344
						     _PORT_PCS_DW10_GRP_B,  \
1395
						     _PORT_PCS_DW10_GRP_B,  \
1345
						     _PORT_PCS_DW10_GRP_C)
1396
						     _PORT_PCS_DW10_GRP_C)
1346
#define   TX2_SWING_CALC_INIT		(1 << 31)
1397
#define   TX2_SWING_CALC_INIT		(1 << 31)
1347
#define   TX1_SWING_CALC_INIT		(1 << 30)
1398
#define   TX1_SWING_CALC_INIT		(1 << 30)
Line 1355... Line 1406...
1355
#define _PORT_PCS_DW12_GRP_A		0x162c30
1406
#define _PORT_PCS_DW12_GRP_A		0x162c30
1356
#define _PORT_PCS_DW12_GRP_B		0x6CC30
1407
#define _PORT_PCS_DW12_GRP_B		0x6CC30
1357
#define _PORT_PCS_DW12_GRP_C		0x6CE30
1408
#define _PORT_PCS_DW12_GRP_C		0x6CE30
1358
#define   LANESTAGGER_STRAP_OVRD	(1 << 6)
1409
#define   LANESTAGGER_STRAP_OVRD	(1 << 6)
1359
#define   LANE_STAGGER_MASK		0x1F
1410
#define   LANE_STAGGER_MASK		0x1F
1360
#define BXT_PORT_PCS_DW12_LN01(port)	_PORT3(port, _PORT_PCS_DW12_LN01_A, \
1411
#define BXT_PORT_PCS_DW12_LN01(port)	_MMIO_PORT3(port, _PORT_PCS_DW12_LN01_A, \
1361
						     _PORT_PCS_DW12_LN01_B, \
1412
						     _PORT_PCS_DW12_LN01_B, \
1362
						     _PORT_PCS_DW12_LN01_C)
1413
						     _PORT_PCS_DW12_LN01_C)
1363
#define BXT_PORT_PCS_DW12_LN23(port)	_PORT3(port, _PORT_PCS_DW12_LN23_A, \
1414
#define BXT_PORT_PCS_DW12_LN23(port)	_MMIO_PORT3(port, _PORT_PCS_DW12_LN23_A, \
1364
						     _PORT_PCS_DW12_LN23_B, \
1415
						     _PORT_PCS_DW12_LN23_B, \
1365
						     _PORT_PCS_DW12_LN23_C)
1416
						     _PORT_PCS_DW12_LN23_C)
1366
#define BXT_PORT_PCS_DW12_GRP(port)	_PORT3(port, _PORT_PCS_DW12_GRP_A, \
1417
#define BXT_PORT_PCS_DW12_GRP(port)	_MMIO_PORT3(port, _PORT_PCS_DW12_GRP_A, \
1367
						     _PORT_PCS_DW12_GRP_B, \
1418
						     _PORT_PCS_DW12_GRP_B, \
1368
						     _PORT_PCS_DW12_GRP_C)
1419
						     _PORT_PCS_DW12_GRP_C)
Line 1369... Line 1420...
1369
 
1420
 
1370
/* BXT PHY TX registers */
1421
/* BXT PHY TX registers */
Line 1375... Line 1426...
1375
#define _PORT_TX_DW2_LN0_B		0x6C508
1426
#define _PORT_TX_DW2_LN0_B		0x6C508
1376
#define _PORT_TX_DW2_LN0_C		0x6C908
1427
#define _PORT_TX_DW2_LN0_C		0x6C908
1377
#define _PORT_TX_DW2_GRP_A		0x162D08
1428
#define _PORT_TX_DW2_GRP_A		0x162D08
1378
#define _PORT_TX_DW2_GRP_B		0x6CD08
1429
#define _PORT_TX_DW2_GRP_B		0x6CD08
1379
#define _PORT_TX_DW2_GRP_C		0x6CF08
1430
#define _PORT_TX_DW2_GRP_C		0x6CF08
1380
#define BXT_PORT_TX_DW2_GRP(port)	_PORT3(port, _PORT_TX_DW2_GRP_A,  \
1431
#define BXT_PORT_TX_DW2_GRP(port)	_MMIO_PORT3(port, _PORT_TX_DW2_GRP_A,  \
1381
						     _PORT_TX_DW2_GRP_B,  \
1432
						     _PORT_TX_DW2_GRP_B,  \
1382
						     _PORT_TX_DW2_GRP_C)
1433
						     _PORT_TX_DW2_GRP_C)
1383
#define BXT_PORT_TX_DW2_LN0(port)	_PORT3(port, _PORT_TX_DW2_LN0_A,  \
1434
#define BXT_PORT_TX_DW2_LN0(port)	_MMIO_PORT3(port, _PORT_TX_DW2_LN0_A,  \
1384
						     _PORT_TX_DW2_LN0_B,  \
1435
						     _PORT_TX_DW2_LN0_B,  \
1385
						     _PORT_TX_DW2_LN0_C)
1436
						     _PORT_TX_DW2_LN0_C)
1386
#define   MARGIN_000_SHIFT		16
1437
#define   MARGIN_000_SHIFT		16
1387
#define   MARGIN_000			(0xFF << MARGIN_000_SHIFT)
1438
#define   MARGIN_000			(0xFF << MARGIN_000_SHIFT)
1388
#define   UNIQ_TRANS_SCALE_SHIFT	8
1439
#define   UNIQ_TRANS_SCALE_SHIFT	8
Line 1392... Line 1443...
1392
#define _PORT_TX_DW3_LN0_B		0x6C50C
1443
#define _PORT_TX_DW3_LN0_B		0x6C50C
1393
#define _PORT_TX_DW3_LN0_C		0x6C90C
1444
#define _PORT_TX_DW3_LN0_C		0x6C90C
1394
#define _PORT_TX_DW3_GRP_A		0x162D0C
1445
#define _PORT_TX_DW3_GRP_A		0x162D0C
1395
#define _PORT_TX_DW3_GRP_B		0x6CD0C
1446
#define _PORT_TX_DW3_GRP_B		0x6CD0C
1396
#define _PORT_TX_DW3_GRP_C		0x6CF0C
1447
#define _PORT_TX_DW3_GRP_C		0x6CF0C
1397
#define BXT_PORT_TX_DW3_GRP(port)	_PORT3(port, _PORT_TX_DW3_GRP_A,  \
1448
#define BXT_PORT_TX_DW3_GRP(port)	_MMIO_PORT3(port, _PORT_TX_DW3_GRP_A,  \
1398
						     _PORT_TX_DW3_GRP_B,  \
1449
						     _PORT_TX_DW3_GRP_B,  \
1399
						     _PORT_TX_DW3_GRP_C)
1450
						     _PORT_TX_DW3_GRP_C)
1400
#define BXT_PORT_TX_DW3_LN0(port)	_PORT3(port, _PORT_TX_DW3_LN0_A,  \
1451
#define BXT_PORT_TX_DW3_LN0(port)	_MMIO_PORT3(port, _PORT_TX_DW3_LN0_A,  \
1401
						     _PORT_TX_DW3_LN0_B,  \
1452
						     _PORT_TX_DW3_LN0_B,  \
1402
						     _PORT_TX_DW3_LN0_C)
1453
						     _PORT_TX_DW3_LN0_C)
1403
#define   SCALE_DCOMP_METHOD		(1 << 26)
1454
#define   SCALE_DCOMP_METHOD		(1 << 26)
1404
#define   UNIQUE_TRANGE_EN_METHOD	(1 << 27)
1455
#define   UNIQUE_TRANGE_EN_METHOD	(1 << 27)
Line 1407... Line 1458...
1407
#define _PORT_TX_DW4_LN0_B		0x6C510
1458
#define _PORT_TX_DW4_LN0_B		0x6C510
1408
#define _PORT_TX_DW4_LN0_C		0x6C910
1459
#define _PORT_TX_DW4_LN0_C		0x6C910
1409
#define _PORT_TX_DW4_GRP_A		0x162D10
1460
#define _PORT_TX_DW4_GRP_A		0x162D10
1410
#define _PORT_TX_DW4_GRP_B		0x6CD10
1461
#define _PORT_TX_DW4_GRP_B		0x6CD10
1411
#define _PORT_TX_DW4_GRP_C		0x6CF10
1462
#define _PORT_TX_DW4_GRP_C		0x6CF10
1412
#define BXT_PORT_TX_DW4_LN0(port)	_PORT3(port, _PORT_TX_DW4_LN0_A,  \
1463
#define BXT_PORT_TX_DW4_LN0(port)	_MMIO_PORT3(port, _PORT_TX_DW4_LN0_A,  \
1413
						     _PORT_TX_DW4_LN0_B,  \
1464
						     _PORT_TX_DW4_LN0_B,  \
1414
						     _PORT_TX_DW4_LN0_C)
1465
						     _PORT_TX_DW4_LN0_C)
1415
#define BXT_PORT_TX_DW4_GRP(port)	_PORT3(port, _PORT_TX_DW4_GRP_A,  \
1466
#define BXT_PORT_TX_DW4_GRP(port)	_MMIO_PORT3(port, _PORT_TX_DW4_GRP_A,  \
1416
						     _PORT_TX_DW4_GRP_B,  \
1467
						     _PORT_TX_DW4_GRP_B,  \
1417
						     _PORT_TX_DW4_GRP_C)
1468
						     _PORT_TX_DW4_GRP_C)
1418
#define   DEEMPH_SHIFT			24
1469
#define   DEEMPH_SHIFT			24
1419
#define   DE_EMPHASIS			(0xFF << DEEMPH_SHIFT)
1470
#define   DE_EMPHASIS			(0xFF << DEEMPH_SHIFT)
Line 1420... Line 1471...
1420
 
1471
 
1421
#define _PORT_TX_DW14_LN0_A		0x162538
1472
#define _PORT_TX_DW14_LN0_A		0x162538
1422
#define _PORT_TX_DW14_LN0_B		0x6C538
1473
#define _PORT_TX_DW14_LN0_B		0x6C538
1423
#define _PORT_TX_DW14_LN0_C		0x6C938
1474
#define _PORT_TX_DW14_LN0_C		0x6C938
1424
#define   LATENCY_OPTIM_SHIFT		30
1475
#define   LATENCY_OPTIM_SHIFT		30
1425
#define   LATENCY_OPTIM			(1 << LATENCY_OPTIM_SHIFT)
1476
#define   LATENCY_OPTIM			(1 << LATENCY_OPTIM_SHIFT)
1426
#define BXT_PORT_TX_DW14_LN(port, lane)	(_PORT3((port), _PORT_TX_DW14_LN0_A,   \
1477
#define BXT_PORT_TX_DW14_LN(port, lane)	_MMIO(_PORT3((port), _PORT_TX_DW14_LN0_A,   \
1427
							_PORT_TX_DW14_LN0_B,   \
1478
							_PORT_TX_DW14_LN0_B,   \
1428
							_PORT_TX_DW14_LN0_C) + \
1479
							_PORT_TX_DW14_LN0_C) + \
Line 1429... Line 1480...
1429
					 _BXT_LANE_OFFSET(lane))
1480
					 _BXT_LANE_OFFSET(lane))
1430
 
1481
 
1431
/* UAIMI scratch pad register 1 */
1482
/* UAIMI scratch pad register 1 */
1432
#define UAIMI_SPR1			0x4F074
1483
#define UAIMI_SPR1			_MMIO(0x4F074)
1433
/* SKL VccIO mask */
1484
/* SKL VccIO mask */
1434
#define SKL_VCCIO_MASK			0x1
1485
#define SKL_VCCIO_MASK			0x1
1435
/* SKL balance leg register */
1486
/* SKL balance leg register */
1436
#define DISPIO_CR_TX_BMU_CR0		0x6C00C
1487
#define DISPIO_CR_TX_BMU_CR0		_MMIO(0x6C00C)
1437
/* I_boost values */
1488
/* I_boost values */
1438
#define BALANCE_LEG_SHIFT(port)		(8+3*(port))
1489
#define BALANCE_LEG_SHIFT(port)		(8+3*(port))
1439
#define BALANCE_LEG_MASK(port)		(7<<(8+3*(port)))
1490
#define BALANCE_LEG_MASK(port)		(7<<(8+3*(port)))
Line 1448... Line 1499...
1448
 * [0-15] @ 0x3000 gen4,gen5
1499
 * [0-15] @ 0x3000 gen4,gen5
1449
 *
1500
 *
1450
 * [0-15] @ 0x100000 gen6,vlv,chv
1501
 * [0-15] @ 0x100000 gen6,vlv,chv
1451
 * [0-31] @ 0x100000 gen7+
1502
 * [0-31] @ 0x100000 gen7+
1452
 */
1503
 */
1453
#define FENCE_REG(i)			(0x2000 + (((i) & 8) << 9) + ((i) & 7) * 4)
1504
#define FENCE_REG(i)			_MMIO(0x2000 + (((i) & 8) << 9) + ((i) & 7) * 4)
1454
#define   I830_FENCE_START_MASK		0x07f80000
1505
#define   I830_FENCE_START_MASK		0x07f80000
1455
#define   I830_FENCE_TILING_Y_SHIFT	12
1506
#define   I830_FENCE_TILING_Y_SHIFT	12
1456
#define   I830_FENCE_SIZE_BITS(size)	((ffs((size) >> 19) - 1) << 8)
1507
#define   I830_FENCE_SIZE_BITS(size)	((ffs((size) >> 19) - 1) << 8)
1457
#define   I830_FENCE_PITCH_SHIFT	4
1508
#define   I830_FENCE_PITCH_SHIFT	4
1458
#define   I830_FENCE_REG_VALID		(1<<0)
1509
#define   I830_FENCE_REG_VALID		(1<<0)
Line 1461... Line 1512...
1461
#define   I830_FENCE_MAX_SIZE_VAL	(1<<8)
1512
#define   I830_FENCE_MAX_SIZE_VAL	(1<<8)
Line 1462... Line 1513...
1462
 
1513
 
1463
#define   I915_FENCE_START_MASK		0x0ff00000
1514
#define   I915_FENCE_START_MASK		0x0ff00000
Line 1464... Line 1515...
1464
#define   I915_FENCE_SIZE_BITS(size)	((ffs((size) >> 20) - 1) << 8)
1515
#define   I915_FENCE_SIZE_BITS(size)	((ffs((size) >> 20) - 1) << 8)
1465
 
1516
 
1466
#define FENCE_REG_965_LO(i)		(0x03000 + (i) * 8)
1517
#define FENCE_REG_965_LO(i)		_MMIO(0x03000 + (i) * 8)
1467
#define FENCE_REG_965_HI(i)		(0x03000 + (i) * 8 + 4)
1518
#define FENCE_REG_965_HI(i)		_MMIO(0x03000 + (i) * 8 + 4)
1468
#define   I965_FENCE_PITCH_SHIFT	2
1519
#define   I965_FENCE_PITCH_SHIFT	2
1469
#define   I965_FENCE_TILING_Y_SHIFT	1
1520
#define   I965_FENCE_TILING_Y_SHIFT	1
Line 1470... Line 1521...
1470
#define   I965_FENCE_REG_VALID		(1<<0)
1521
#define   I965_FENCE_REG_VALID		(1<<0)
1471
#define   I965_FENCE_MAX_PITCH_VAL	0x0400
1522
#define   I965_FENCE_MAX_PITCH_VAL	0x0400
1472
 
1523
 
1473
#define FENCE_REG_GEN6_LO(i)	(0x100000 + (i) * 8)
1524
#define FENCE_REG_GEN6_LO(i)		_MMIO(0x100000 + (i) * 8)
Line 1474... Line 1525...
1474
#define FENCE_REG_GEN6_HI(i)	(0x100000 + (i) * 8 + 4)
1525
#define FENCE_REG_GEN6_HI(i)		_MMIO(0x100000 + (i) * 8 + 4)
1475
#define   GEN6_FENCE_PITCH_SHIFT	32
1526
#define   GEN6_FENCE_PITCH_SHIFT	32
1476
#define   GEN7_FENCE_MAX_PITCH_VAL	0x0800
1527
#define   GEN7_FENCE_MAX_PITCH_VAL	0x0800
1477
 
1528
 
1478
 
1529
 
1479
/* control register for cpu gtt access */
1530
/* control register for cpu gtt access */
Line 1480... Line 1531...
1480
#define TILECTL				0x101000
1531
#define TILECTL				_MMIO(0x101000)
1481
#define   TILECTL_SWZCTL			(1 << 0)
1532
#define   TILECTL_SWZCTL			(1 << 0)
1482
#define   TILECTL_TLBPF			(1 << 1)
1533
#define   TILECTL_TLBPF			(1 << 1)
1483
#define   TILECTL_TLB_PREFETCH_DIS	(1 << 2)
1534
#define   TILECTL_TLB_PREFETCH_DIS	(1 << 2)
1484
#define   TILECTL_BACKSNOOP_DIS		(1 << 3)
1535
#define   TILECTL_BACKSNOOP_DIS		(1 << 3)
1485
 
1536
 
1486
/*
1537
/*
1487
 * Instruction and interrupt control regs
1538
 * Instruction and interrupt control regs
1488
 */
1539
 */
1489
#define PGTBL_CTL	0x02020
1540
#define PGTBL_CTL	_MMIO(0x02020)
1490
#define   PGTBL_ADDRESS_LO_MASK	0xfffff000 /* bits [31:12] */
1541
#define   PGTBL_ADDRESS_LO_MASK	0xfffff000 /* bits [31:12] */
1491
#define   PGTBL_ADDRESS_HI_MASK	0x000000f0 /* bits [35:32] (gen4) */
1542
#define   PGTBL_ADDRESS_HI_MASK	0x000000f0 /* bits [35:32] (gen4) */
Line 1501... Line 1552...
1501
#define BSD_RING_BASE		0x04000
1552
#define BSD_RING_BASE		0x04000
1502
#define GEN6_BSD_RING_BASE	0x12000
1553
#define GEN6_BSD_RING_BASE	0x12000
1503
#define GEN8_BSD2_RING_BASE	0x1c000
1554
#define GEN8_BSD2_RING_BASE	0x1c000
1504
#define VEBOX_RING_BASE		0x1a000
1555
#define VEBOX_RING_BASE		0x1a000
1505
#define BLT_RING_BASE		0x22000
1556
#define BLT_RING_BASE		0x22000
1506
#define RING_TAIL(base)		((base)+0x30)
1557
#define RING_TAIL(base)		_MMIO((base)+0x30)
1507
#define RING_HEAD(base)		((base)+0x34)
1558
#define RING_HEAD(base)		_MMIO((base)+0x34)
1508
#define RING_START(base)	((base)+0x38)
1559
#define RING_START(base)	_MMIO((base)+0x38)
1509
#define RING_CTL(base)		((base)+0x3c)
1560
#define RING_CTL(base)		_MMIO((base)+0x3c)
1510
#define RING_SYNC_0(base)	((base)+0x40)
1561
#define RING_SYNC_0(base)	_MMIO((base)+0x40)
1511
#define RING_SYNC_1(base)	((base)+0x44)
1562
#define RING_SYNC_1(base)	_MMIO((base)+0x44)
1512
#define RING_SYNC_2(base)	((base)+0x48)
1563
#define RING_SYNC_2(base)	_MMIO((base)+0x48)
1513
#define GEN6_RVSYNC	(RING_SYNC_0(RENDER_RING_BASE))
1564
#define GEN6_RVSYNC	(RING_SYNC_0(RENDER_RING_BASE))
1514
#define GEN6_RBSYNC	(RING_SYNC_1(RENDER_RING_BASE))
1565
#define GEN6_RBSYNC	(RING_SYNC_1(RENDER_RING_BASE))
1515
#define GEN6_RVESYNC	(RING_SYNC_2(RENDER_RING_BASE))
1566
#define GEN6_RVESYNC	(RING_SYNC_2(RENDER_RING_BASE))
1516
#define GEN6_VBSYNC	(RING_SYNC_0(GEN6_BSD_RING_BASE))
1567
#define GEN6_VBSYNC	(RING_SYNC_0(GEN6_BSD_RING_BASE))
1517
#define GEN6_VRSYNC	(RING_SYNC_1(GEN6_BSD_RING_BASE))
1568
#define GEN6_VRSYNC	(RING_SYNC_1(GEN6_BSD_RING_BASE))
Line 1520... Line 1571...
1520
#define GEN6_BVSYNC	(RING_SYNC_1(BLT_RING_BASE))
1571
#define GEN6_BVSYNC	(RING_SYNC_1(BLT_RING_BASE))
1521
#define GEN6_BVESYNC	(RING_SYNC_2(BLT_RING_BASE))
1572
#define GEN6_BVESYNC	(RING_SYNC_2(BLT_RING_BASE))
1522
#define GEN6_VEBSYNC	(RING_SYNC_0(VEBOX_RING_BASE))
1573
#define GEN6_VEBSYNC	(RING_SYNC_0(VEBOX_RING_BASE))
1523
#define GEN6_VERSYNC	(RING_SYNC_1(VEBOX_RING_BASE))
1574
#define GEN6_VERSYNC	(RING_SYNC_1(VEBOX_RING_BASE))
1524
#define GEN6_VEVSYNC	(RING_SYNC_2(VEBOX_RING_BASE))
1575
#define GEN6_VEVSYNC	(RING_SYNC_2(VEBOX_RING_BASE))
1525
#define GEN6_NOSYNC 0
1576
#define GEN6_NOSYNC	INVALID_MMIO_REG
1526
#define RING_PSMI_CTL(base)	((base)+0x50)
1577
#define RING_PSMI_CTL(base)	_MMIO((base)+0x50)
1527
#define RING_MAX_IDLE(base)	((base)+0x54)
1578
#define RING_MAX_IDLE(base)	_MMIO((base)+0x54)
1528
#define RING_HWS_PGA(base)	((base)+0x80)
1579
#define RING_HWS_PGA(base)	_MMIO((base)+0x80)
1529
#define RING_HWS_PGA_GEN6(base)	((base)+0x2080)
1580
#define RING_HWS_PGA_GEN6(base)	_MMIO((base)+0x2080)
1530
#define RING_RESET_CTL(base)	((base)+0xd0)
1581
#define RING_RESET_CTL(base)	_MMIO((base)+0xd0)
1531
#define   RESET_CTL_REQUEST_RESET  (1 << 0)
1582
#define   RESET_CTL_REQUEST_RESET  (1 << 0)
1532
#define   RESET_CTL_READY_TO_RESET (1 << 1)
1583
#define   RESET_CTL_READY_TO_RESET (1 << 1)
Line 1533... Line 1584...
1533
 
1584
 
1534
#define HSW_GTT_CACHE_EN	0x4024
1585
#define HSW_GTT_CACHE_EN	_MMIO(0x4024)
1535
#define   GTT_CACHE_EN_ALL	0xF0007FFF
1586
#define   GTT_CACHE_EN_ALL	0xF0007FFF
1536
#define GEN7_WR_WATERMARK	0x4028
1587
#define GEN7_WR_WATERMARK	_MMIO(0x4028)
1537
#define GEN7_GFX_PRIO_CTRL	0x402C
1588
#define GEN7_GFX_PRIO_CTRL	_MMIO(0x402C)
1538
#define ARB_MODE		0x4030
1589
#define ARB_MODE		_MMIO(0x4030)
1539
#define   ARB_MODE_SWIZZLE_SNB	(1<<4)
1590
#define   ARB_MODE_SWIZZLE_SNB	(1<<4)
1540
#define   ARB_MODE_SWIZZLE_IVB	(1<<5)
1591
#define   ARB_MODE_SWIZZLE_IVB	(1<<5)
1541
#define GEN7_GFX_PEND_TLB0	0x4034
1592
#define GEN7_GFX_PEND_TLB0	_MMIO(0x4034)
1542
#define GEN7_GFX_PEND_TLB1	0x4038
1593
#define GEN7_GFX_PEND_TLB1	_MMIO(0x4038)
1543
/* L3, CVS, ZTLB, RCC, CASC LRA min, max values */
1594
/* L3, CVS, ZTLB, RCC, CASC LRA min, max values */
1544
#define GEN7_LRA_LIMITS(i)	(0x403C + (i) * 4)
1595
#define GEN7_LRA_LIMITS(i)	_MMIO(0x403C + (i) * 4)
1545
#define GEN7_LRA_LIMITS_REG_NUM	13
1596
#define GEN7_LRA_LIMITS_REG_NUM	13
1546
#define GEN7_MEDIA_MAX_REQ_COUNT	0x4070
1597
#define GEN7_MEDIA_MAX_REQ_COUNT	_MMIO(0x4070)
Line 1547... Line 1598...
1547
#define GEN7_GFX_MAX_REQ_COUNT		0x4074
1598
#define GEN7_GFX_MAX_REQ_COUNT		_MMIO(0x4074)
1548
 
1599
 
1549
#define GAMTARBMODE		0x04a08
1600
#define GAMTARBMODE		_MMIO(0x04a08)
1550
#define   ARB_MODE_BWGTLB_DISABLE (1<<9)
1601
#define   ARB_MODE_BWGTLB_DISABLE (1<<9)
1551
#define   ARB_MODE_SWIZZLE_BDW	(1<<1)
1602
#define   ARB_MODE_SWIZZLE_BDW	(1<<1)
1552
#define RENDER_HWS_PGA_GEN7	(0x04080)
1603
#define RENDER_HWS_PGA_GEN7	_MMIO(0x04080)
1553
#define RING_FAULT_REG(ring)	(0x4094 + 0x100*(ring)->id)
1604
#define RING_FAULT_REG(ring)	_MMIO(0x4094 + 0x100*(ring)->id)
1554
#define   RING_FAULT_GTTSEL_MASK (1<<11)
1605
#define   RING_FAULT_GTTSEL_MASK (1<<11)
1555
#define   RING_FAULT_SRCID(x)	(((x) >> 3) & 0xff)
1606
#define   RING_FAULT_SRCID(x)	(((x) >> 3) & 0xff)
1556
#define   RING_FAULT_FAULT_TYPE(x) (((x) >> 1) & 0x3)
1607
#define   RING_FAULT_FAULT_TYPE(x) (((x) >> 1) & 0x3)
1557
#define   RING_FAULT_VALID	(1<<0)
1608
#define   RING_FAULT_VALID	(1<<0)
1558
#define DONE_REG		0x40b0
1609
#define DONE_REG		_MMIO(0x40b0)
1559
#define GEN8_PRIVATE_PAT_LO	0x40e0
1610
#define GEN8_PRIVATE_PAT_LO	_MMIO(0x40e0)
1560
#define GEN8_PRIVATE_PAT_HI	(0x40e0 + 4)
1611
#define GEN8_PRIVATE_PAT_HI	_MMIO(0x40e0 + 4)
1561
#define BSD_HWS_PGA_GEN7	(0x04180)
1612
#define BSD_HWS_PGA_GEN7	_MMIO(0x04180)
1562
#define BLT_HWS_PGA_GEN7	(0x04280)
1613
#define BLT_HWS_PGA_GEN7	_MMIO(0x04280)
1563
#define VEBOX_HWS_PGA_GEN7	(0x04380)
1614
#define VEBOX_HWS_PGA_GEN7	_MMIO(0x04380)
1564
#define RING_ACTHD(base)	((base)+0x74)
1615
#define RING_ACTHD(base)	_MMIO((base)+0x74)
1565
#define RING_ACTHD_UDW(base)	((base)+0x5c)
1616
#define RING_ACTHD_UDW(base)	_MMIO((base)+0x5c)
1566
#define RING_NOPID(base)	((base)+0x94)
1617
#define RING_NOPID(base)	_MMIO((base)+0x94)
1567
#define RING_IMR(base)		((base)+0xa8)
1618
#define RING_IMR(base)		_MMIO((base)+0xa8)
-
 
1619
#define RING_HWSTAM(base)	_MMIO((base)+0x98)
1568
#define RING_HWSTAM(base)	((base)+0x98)
1620
#define RING_TIMESTAMP(base)		_MMIO((base)+0x358)
1569
#define RING_TIMESTAMP(base)	((base)+0x358)
1621
#define RING_TIMESTAMP_UDW(base)	_MMIO((base)+0x358 + 4)
1570
#define   TAIL_ADDR		0x001FFFF8
1622
#define   TAIL_ADDR		0x001FFFF8
1571
#define   HEAD_WRAP_COUNT	0xFFE00000
1623
#define   HEAD_WRAP_COUNT	0xFFE00000
1572
#define   HEAD_WRAP_ONE		0x00200000
1624
#define   HEAD_WRAP_ONE		0x00200000
Line 1581... Line 1633...
1581
#define   RING_INVALID		0x00000000
1633
#define   RING_INVALID		0x00000000
1582
#define   RING_WAIT_I8XX	(1<<0) /* gen2, PRBx_HEAD */
1634
#define   RING_WAIT_I8XX	(1<<0) /* gen2, PRBx_HEAD */
1583
#define   RING_WAIT		(1<<11) /* gen3+, PRBx_CTL */
1635
#define   RING_WAIT		(1<<11) /* gen3+, PRBx_CTL */
1584
#define   RING_WAIT_SEMAPHORE	(1<<10) /* gen6+ */
1636
#define   RING_WAIT_SEMAPHORE	(1<<10) /* gen6+ */
Line 1585... Line 1637...
1585
 
1637
 
Line 1586... Line 1638...
1586
#define GEN7_TLB_RD_ADDR	0x4700
1638
#define GEN7_TLB_RD_ADDR	_MMIO(0x4700)
1587
 
1639
 
1588
#if 0
1640
#if 0
1589
#define PRB0_TAIL	0x02030
1641
#define PRB0_TAIL	_MMIO(0x2030)
1590
#define PRB0_HEAD	0x02034
1642
#define PRB0_HEAD	_MMIO(0x2034)
1591
#define PRB0_START	0x02038
1643
#define PRB0_START	_MMIO(0x2038)
1592
#define PRB0_CTL	0x0203c
1644
#define PRB0_CTL	_MMIO(0x203c)
1593
#define PRB1_TAIL	0x02040 /* 915+ only */
1645
#define PRB1_TAIL	_MMIO(0x2040) /* 915+ only */
1594
#define PRB1_HEAD	0x02044 /* 915+ only */
1646
#define PRB1_HEAD	_MMIO(0x2044) /* 915+ only */
1595
#define PRB1_START	0x02048 /* 915+ only */
1647
#define PRB1_START	_MMIO(0x2048) /* 915+ only */
1596
#define PRB1_CTL	0x0204c /* 915+ only */
1648
#define PRB1_CTL	_MMIO(0x204c) /* 915+ only */
1597
#endif
1649
#endif
1598
#define IPEIR_I965	0x02064
1650
#define IPEIR_I965	_MMIO(0x2064)
1599
#define IPEHR_I965	0x02068
1651
#define IPEHR_I965	_MMIO(0x2068)
1600
#define GEN7_SC_INSTDONE	0x07100
1652
#define GEN7_SC_INSTDONE	_MMIO(0x7100)
1601
#define GEN7_SAMPLER_INSTDONE	0x0e160
1653
#define GEN7_SAMPLER_INSTDONE	_MMIO(0xe160)
1602
#define GEN7_ROW_INSTDONE	0x0e164
1654
#define GEN7_ROW_INSTDONE	_MMIO(0xe164)
1603
#define I915_NUM_INSTDONE_REG	4
1655
#define I915_NUM_INSTDONE_REG	4
1604
#define RING_IPEIR(base)	((base)+0x64)
1656
#define RING_IPEIR(base)	_MMIO((base)+0x64)
1605
#define RING_IPEHR(base)	((base)+0x68)
1657
#define RING_IPEHR(base)	_MMIO((base)+0x68)
1606
/*
1658
/*
1607
 * On GEN4, only the render ring INSTDONE exists and has a different
1659
 * On GEN4, only the render ring INSTDONE exists and has a different
1608
 * layout than the GEN7+ version.
1660
 * layout than the GEN7+ version.
1609
 * The GEN2 counterpart of this register is GEN2_INSTDONE.
1661
 * The GEN2 counterpart of this register is GEN2_INSTDONE.
1610
 */
1662
 */
1611
#define RING_INSTDONE(base)	((base)+0x6c)
1663
#define RING_INSTDONE(base)	_MMIO((base)+0x6c)
1612
#define RING_INSTPS(base)	((base)+0x70)
1664
#define RING_INSTPS(base)	_MMIO((base)+0x70)
1613
#define RING_DMA_FADD(base)	((base)+0x78)
1665
#define RING_DMA_FADD(base)	_MMIO((base)+0x78)
1614
#define RING_DMA_FADD_UDW(base)	((base)+0x60) /* gen8+ */
1666
#define RING_DMA_FADD_UDW(base)	_MMIO((base)+0x60) /* gen8+ */
1615
#define RING_INSTPM(base)	((base)+0xc0)
1667
#define RING_INSTPM(base)	_MMIO((base)+0xc0)
1616
#define RING_MI_MODE(base)	((base)+0x9c)
1668
#define RING_MI_MODE(base)	_MMIO((base)+0x9c)
1617
#define INSTPS		0x02070 /* 965+ only */
1669
#define INSTPS		_MMIO(0x2070) /* 965+ only */
1618
#define GEN4_INSTDONE1	0x0207c /* 965+ only, aka INSTDONE_2 on SNB */
1670
#define GEN4_INSTDONE1	_MMIO(0x207c) /* 965+ only, aka INSTDONE_2 on SNB */
1619
#define ACTHD_I965	0x02074
1671
#define ACTHD_I965	_MMIO(0x2074)
1620
#define HWS_PGA		0x02080
1672
#define HWS_PGA		_MMIO(0x2080)
1621
#define HWS_ADDRESS_MASK	0xfffff000
1673
#define HWS_ADDRESS_MASK	0xfffff000
1622
#define HWS_START_ADDRESS_SHIFT	4
1674
#define HWS_START_ADDRESS_SHIFT	4
1623
#define PWRCTXA		0x2088 /* 965GM+ only */
1675
#define PWRCTXA		_MMIO(0x2088) /* 965GM+ only */
1624
#define   PWRCTX_EN	(1<<0)
1676
#define   PWRCTX_EN	(1<<0)
1625
#define IPEIR		0x02088
1677
#define IPEIR		_MMIO(0x2088)
1626
#define IPEHR		0x0208c
1678
#define IPEHR		_MMIO(0x208c)
1627
#define GEN2_INSTDONE	0x02090
1679
#define GEN2_INSTDONE	_MMIO(0x2090)
1628
#define NOPID		0x02094
1680
#define NOPID		_MMIO(0x2094)
1629
#define HWSTAM		0x02098
1681
#define HWSTAM		_MMIO(0x2098)
-
 
1682
#define DMA_FADD_I8XX	_MMIO(0x20d0)
-
 
1683
#define RING_BBSTATE(base)	_MMIO((base)+0x110)
-
 
1684
#define   RING_BB_PPGTT		(1 << 5)
-
 
1685
#define RING_SBBADDR(base)	_MMIO((base)+0x114) /* hsw+ */
1630
#define DMA_FADD_I8XX	0x020d0
1686
#define RING_SBBSTATE(base)	_MMIO((base)+0x118) /* hsw+ */
1631
#define RING_BBSTATE(base)	((base)+0x110)
1687
#define RING_SBBADDR_UDW(base)	_MMIO((base)+0x11c) /* gen8+ */
-
 
1688
#define RING_BBADDR(base)	_MMIO((base)+0x140)
-
 
1689
#define RING_BBADDR_UDW(base)	_MMIO((base)+0x168) /* gen8+ */
-
 
1690
#define RING_BB_PER_CTX_PTR(base)	_MMIO((base)+0x1c0) /* gen8+ */
-
 
1691
#define RING_INDIRECT_CTX(base)		_MMIO((base)+0x1c4) /* gen8+ */
Line 1632... Line 1692...
1632
#define RING_BBADDR(base)	((base)+0x140)
1692
#define RING_INDIRECT_CTX_OFFSET(base)	_MMIO((base)+0x1c8) /* gen8+ */
1633
#define RING_BBADDR_UDW(base)	((base)+0x168) /* gen8+ */
1693
#define RING_CTX_TIMESTAMP(base)	_MMIO((base)+0x3a8) /* gen8+ */
1634
 
1694
 
1635
#define ERROR_GEN6	0x040a0
1695
#define ERROR_GEN6	_MMIO(0x40a0)
1636
#define GEN7_ERR_INT	0x44040
1696
#define GEN7_ERR_INT	_MMIO(0x44040)
1637
#define   ERR_INT_POISON		(1<<31)
1697
#define   ERR_INT_POISON		(1<<31)
1638
#define   ERR_INT_MMIO_UNCLAIMED	(1<<13)
1698
#define   ERR_INT_MMIO_UNCLAIMED	(1<<13)
Line 1643... Line 1703...
1643
#define   ERR_INT_PIPE_CRC_DONE_A	(1<<2)
1703
#define   ERR_INT_PIPE_CRC_DONE_A	(1<<2)
1644
#define   ERR_INT_PIPE_CRC_DONE(pipe)	(1<<(2 + (pipe)*3))
1704
#define   ERR_INT_PIPE_CRC_DONE(pipe)	(1<<(2 + (pipe)*3))
1645
#define   ERR_INT_FIFO_UNDERRUN_A	(1<<0)
1705
#define   ERR_INT_FIFO_UNDERRUN_A	(1<<0)
1646
#define   ERR_INT_FIFO_UNDERRUN(pipe)	(1<<((pipe)*3))
1706
#define   ERR_INT_FIFO_UNDERRUN(pipe)	(1<<((pipe)*3))
Line 1647... Line 1707...
1647
 
1707
 
1648
#define GEN8_FAULT_TLB_DATA0		0x04b10
1708
#define GEN8_FAULT_TLB_DATA0		_MMIO(0x4b10)
Line 1649... Line 1709...
1649
#define GEN8_FAULT_TLB_DATA1		0x04b14
1709
#define GEN8_FAULT_TLB_DATA1		_MMIO(0x4b14)
1650
 
1710
 
Line 1651... Line 1711...
1651
#define FPGA_DBG		0x42300
1711
#define FPGA_DBG		_MMIO(0x42300)
1652
#define   FPGA_DBG_RM_NOCLAIM	(1<<31)
1712
#define   FPGA_DBG_RM_NOCLAIM	(1<<31)
1653
 
1713
 
1654
#define DERRMR		0x44050
1714
#define DERRMR		_MMIO(0x44050)
1655
/* Note that HBLANK events are reserved on bdw+ */
1715
/* Note that HBLANK events are reserved on bdw+ */
1656
#define   DERRMR_PIPEA_SCANLINE		(1<<0)
1716
#define   DERRMR_PIPEA_SCANLINE		(1<<0)
Line 1673... Line 1733...
1673
 
1733
 
1674
/* GM45+ chicken bits -- debug workaround bits that may be required
1734
/* GM45+ chicken bits -- debug workaround bits that may be required
1675
 * for various sorts of correct behavior.  The top 16 bits of each are
1735
 * for various sorts of correct behavior.  The top 16 bits of each are
1676
 * the enables for writing to the corresponding low bit.
1736
 * the enables for writing to the corresponding low bit.
1677
 */
1737
 */
1678
#define _3D_CHICKEN	0x02084
1738
#define _3D_CHICKEN	_MMIO(0x2084)
1679
#define  _3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB	(1 << 10)
1739
#define  _3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB	(1 << 10)
1680
#define _3D_CHICKEN2	0x0208c
1740
#define _3D_CHICKEN2	_MMIO(0x208c)
1681
/* Disables pipelining of read flushes past the SF-WIZ interface.
1741
/* Disables pipelining of read flushes past the SF-WIZ interface.
1682
 * Required on all Ironlake steppings according to the B-Spec, but the
1742
 * Required on all Ironlake steppings according to the B-Spec, but the
1683
 * particular danger of not doing so is not specified.
1743
 * particular danger of not doing so is not specified.
1684
 */
1744
 */
1685
# define _3D_CHICKEN2_WM_READ_PIPELINED			(1 << 14)
1745
# define _3D_CHICKEN2_WM_READ_PIPELINED			(1 << 14)
1686
#define _3D_CHICKEN3	0x02090
1746
#define _3D_CHICKEN3	_MMIO(0x2090)
1687
#define  _3D_CHICKEN_SF_DISABLE_OBJEND_CULL		(1 << 10)
1747
#define  _3D_CHICKEN_SF_DISABLE_OBJEND_CULL		(1 << 10)
1688
#define  _3D_CHICKEN3_SF_DISABLE_FASTCLIP_CULL		(1 << 5)
1748
#define  _3D_CHICKEN3_SF_DISABLE_FASTCLIP_CULL		(1 << 5)
1689
#define  _3D_CHICKEN_SDE_LIMIT_FIFO_POLY_DEPTH(x)	((x)<<1) /* gen8+ */
1749
#define  _3D_CHICKEN_SDE_LIMIT_FIFO_POLY_DEPTH(x)	((x)<<1) /* gen8+ */
Line 1690... Line 1750...
1690
#define  _3D_CHICKEN3_SF_DISABLE_PIPELINED_ATTR_FETCH	(1 << 1) /* gen6 */
1750
#define  _3D_CHICKEN3_SF_DISABLE_PIPELINED_ATTR_FETCH	(1 << 1) /* gen6 */
1691
 
1751
 
1692
#define MI_MODE		0x0209c
1752
#define MI_MODE		_MMIO(0x209c)
1693
# define VS_TIMER_DISPATCH				(1 << 6)
1753
# define VS_TIMER_DISPATCH				(1 << 6)
1694
# define MI_FLUSH_ENABLE				(1 << 12)
1754
# define MI_FLUSH_ENABLE				(1 << 12)
1695
# define ASYNC_FLIP_PERF_DISABLE			(1 << 14)
1755
# define ASYNC_FLIP_PERF_DISABLE			(1 << 14)
Line 1696... Line 1756...
1696
# define MODE_IDLE					(1 << 9)
1756
# define MODE_IDLE					(1 << 9)
1697
# define STOP_RING					(1 << 8)
1757
# define STOP_RING					(1 << 8)
1698
 
1758
 
1699
#define GEN6_GT_MODE	0x20d0
1759
#define GEN6_GT_MODE	_MMIO(0x20d0)
1700
#define GEN7_GT_MODE	0x7008
1760
#define GEN7_GT_MODE	_MMIO(0x7008)
1701
#define   GEN6_WIZ_HASHING(hi, lo)			(((hi) << 9) | ((lo) << 7))
1761
#define   GEN6_WIZ_HASHING(hi, lo)			(((hi) << 9) | ((lo) << 7))
1702
#define   GEN6_WIZ_HASHING_8x8				GEN6_WIZ_HASHING(0, 0)
1762
#define   GEN6_WIZ_HASHING_8x8				GEN6_WIZ_HASHING(0, 0)
1703
#define   GEN6_WIZ_HASHING_8x4				GEN6_WIZ_HASHING(0, 1)
1763
#define   GEN6_WIZ_HASHING_8x4				GEN6_WIZ_HASHING(0, 1)
1704
#define   GEN6_WIZ_HASHING_16x4				GEN6_WIZ_HASHING(1, 0)
1764
#define   GEN6_WIZ_HASHING_16x4				GEN6_WIZ_HASHING(1, 0)
1705
#define   GEN6_WIZ_HASHING_MASK				GEN6_WIZ_HASHING(1, 1)
1765
#define   GEN6_WIZ_HASHING_MASK				GEN6_WIZ_HASHING(1, 1)
Line 1706... Line 1766...
1706
#define   GEN6_TD_FOUR_ROW_DISPATCH_DISABLE		(1 << 5)
1766
#define   GEN6_TD_FOUR_ROW_DISPATCH_DISABLE		(1 << 5)
1707
#define   GEN9_IZ_HASHING_MASK(slice)			(0x3 << ((slice) * 2))
1767
#define   GEN9_IZ_HASHING_MASK(slice)			(0x3 << ((slice) * 2))
1708
#define   GEN9_IZ_HASHING(slice, val)			((val) << ((slice) * 2))
1768
#define   GEN9_IZ_HASHING(slice, val)			((val) << ((slice) * 2))
1709
 
1769
 
1710
#define GFX_MODE	0x02520
1770
#define GFX_MODE	_MMIO(0x2520)
1711
#define GFX_MODE_GEN7	0x0229c
1771
#define GFX_MODE_GEN7	_MMIO(0x229c)
1712
#define RING_MODE_GEN7(ring)	((ring)->mmio_base+0x29c)
1772
#define RING_MODE_GEN7(ring)	_MMIO((ring)->mmio_base+0x29c)
1713
#define   GFX_RUN_LIST_ENABLE		(1<<15)
1773
#define   GFX_RUN_LIST_ENABLE		(1<<15)
Line 1725... Line 1785...
1725
#define   GFX_FORWARD_VBLANK_COND	(2<<5)
1785
#define   GFX_FORWARD_VBLANK_COND	(2<<5)
Line 1726... Line 1786...
1726
 
1786
 
1727
#define VLV_DISPLAY_BASE 0x180000
1787
#define VLV_DISPLAY_BASE 0x180000
Line 1728... Line 1788...
1728
#define VLV_MIPI_BASE VLV_DISPLAY_BASE
1788
#define VLV_MIPI_BASE VLV_DISPLAY_BASE
1729
 
1789
 
1730
#define VLV_GU_CTL0	(VLV_DISPLAY_BASE + 0x2030)
1790
#define VLV_GU_CTL0	_MMIO(VLV_DISPLAY_BASE + 0x2030)
1731
#define VLV_GU_CTL1	(VLV_DISPLAY_BASE + 0x2034)
1791
#define VLV_GU_CTL1	_MMIO(VLV_DISPLAY_BASE + 0x2034)
1732
#define SCPD0		0x0209c /* 915+ only */
1792
#define SCPD0		_MMIO(0x209c) /* 915+ only */
1733
#define IER		0x020a0
1793
#define IER		_MMIO(0x20a0)
1734
#define IIR		0x020a4
1794
#define IIR		_MMIO(0x20a4)
1735
#define IMR		0x020a8
1795
#define IMR		_MMIO(0x20a8)
1736
#define ISR		0x020ac
1796
#define ISR		_MMIO(0x20ac)
1737
#define VLV_GUNIT_CLOCK_GATE	(VLV_DISPLAY_BASE + 0x2060)
1797
#define VLV_GUNIT_CLOCK_GATE	_MMIO(VLV_DISPLAY_BASE + 0x2060)
1738
#define   GINT_DIS		(1<<22)
1798
#define   GINT_DIS		(1<<22)
1739
#define   GCFG_DIS		(1<<8)
1799
#define   GCFG_DIS		(1<<8)
1740
#define VLV_GUNIT_CLOCK_GATE2	(VLV_DISPLAY_BASE + 0x2064)
1800
#define VLV_GUNIT_CLOCK_GATE2	_MMIO(VLV_DISPLAY_BASE + 0x2064)
1741
#define VLV_IIR_RW	(VLV_DISPLAY_BASE + 0x2084)
1801
#define VLV_IIR_RW	_MMIO(VLV_DISPLAY_BASE + 0x2084)
1742
#define VLV_IER		(VLV_DISPLAY_BASE + 0x20a0)
1802
#define VLV_IER		_MMIO(VLV_DISPLAY_BASE + 0x20a0)
1743
#define VLV_IIR		(VLV_DISPLAY_BASE + 0x20a4)
1803
#define VLV_IIR		_MMIO(VLV_DISPLAY_BASE + 0x20a4)
1744
#define VLV_IMR		(VLV_DISPLAY_BASE + 0x20a8)
1804
#define VLV_IMR		_MMIO(VLV_DISPLAY_BASE + 0x20a8)
1745
#define VLV_ISR		(VLV_DISPLAY_BASE + 0x20ac)
1805
#define VLV_ISR		_MMIO(VLV_DISPLAY_BASE + 0x20ac)
Line 1746... Line 1806...
1746
#define VLV_PCBR	(VLV_DISPLAY_BASE + 0x2120)
1806
#define VLV_PCBR	_MMIO(VLV_DISPLAY_BASE + 0x2120)
1747
#define VLV_PCBR_ADDR_SHIFT	12
1807
#define VLV_PCBR_ADDR_SHIFT	12
1748
 
1808
 
1749
#define   DISPLAY_PLANE_FLIP_PENDING(plane) (1<<(11-(plane))) /* A and B only */
1809
#define   DISPLAY_PLANE_FLIP_PENDING(plane) (1<<(11-(plane))) /* A and B only */
1750
#define EIR		0x020b0
1810
#define EIR		_MMIO(0x20b0)
1751
#define EMR		0x020b4
1811
#define EMR		_MMIO(0x20b4)
1752
#define ESR		0x020b8
1812
#define ESR		_MMIO(0x20b8)
1753
#define   GM45_ERROR_PAGE_TABLE				(1<<5)
1813
#define   GM45_ERROR_PAGE_TABLE				(1<<5)
1754
#define   GM45_ERROR_MEM_PRIV				(1<<4)
1814
#define   GM45_ERROR_MEM_PRIV				(1<<4)
1755
#define   I915_ERROR_PAGE_TABLE				(1<<4)
1815
#define   I915_ERROR_PAGE_TABLE				(1<<4)
1756
#define   GM45_ERROR_CP_PRIV				(1<<3)
1816
#define   GM45_ERROR_CP_PRIV				(1<<3)
1757
#define   I915_ERROR_MEMORY_REFRESH			(1<<1)
1817
#define   I915_ERROR_MEMORY_REFRESH			(1<<1)
1758
#define   I915_ERROR_INSTRUCTION			(1<<0)
1818
#define   I915_ERROR_INSTRUCTION			(1<<0)
1759
#define INSTPM	        0x020c0
1819
#define INSTPM	        _MMIO(0x20c0)
1760
#define   INSTPM_SELF_EN (1<<12) /* 915GM only */
1820
#define   INSTPM_SELF_EN (1<<12) /* 915GM only */
1761
#define   INSTPM_AGPBUSY_INT_EN (1<<11) /* gen3: when disabled, pending interrupts
1821
#define   INSTPM_AGPBUSY_INT_EN (1<<11) /* gen3: when disabled, pending interrupts
1762
					will not assert AGPBUSY# and will only
1822
					will not assert AGPBUSY# and will only
1763
					be delivered when out of C3. */
1823
					be delivered when out of C3. */
1764
#define   INSTPM_FORCE_ORDERING				(1<<7) /* GEN6+ */
1824
#define   INSTPM_FORCE_ORDERING				(1<<7) /* GEN6+ */
1765
#define   INSTPM_TLB_INVALIDATE	(1<<9)
1825
#define   INSTPM_TLB_INVALIDATE	(1<<9)
1766
#define   INSTPM_SYNC_FLUSH	(1<<5)
1826
#define   INSTPM_SYNC_FLUSH	(1<<5)
1767
#define ACTHD	        0x020c8
1827
#define ACTHD	        _MMIO(0x20c8)
1768
#define MEM_MODE	0x020cc
1828
#define MEM_MODE	_MMIO(0x20cc)
1769
#define   MEM_DISPLAY_B_TRICKLE_FEED_DISABLE (1<<3) /* 830 only */
1829
#define   MEM_DISPLAY_B_TRICKLE_FEED_DISABLE (1<<3) /* 830 only */
1770
#define   MEM_DISPLAY_A_TRICKLE_FEED_DISABLE (1<<2) /* 830/845 only */
1830
#define   MEM_DISPLAY_A_TRICKLE_FEED_DISABLE (1<<2) /* 830/845 only */
1771
#define   MEM_DISPLAY_TRICKLE_FEED_DISABLE (1<<2) /* 85x only */
1831
#define   MEM_DISPLAY_TRICKLE_FEED_DISABLE (1<<2) /* 85x only */
1772
#define FW_BLC		0x020d8
1832
#define FW_BLC		_MMIO(0x20d8)
1773
#define FW_BLC2		0x020dc
1833
#define FW_BLC2		_MMIO(0x20dc)
1774
#define FW_BLC_SELF	0x020e0 /* 915+ only */
1834
#define FW_BLC_SELF	_MMIO(0x20e0) /* 915+ only */
1775
#define   FW_BLC_SELF_EN_MASK      (1<<31)
1835
#define   FW_BLC_SELF_EN_MASK      (1<<31)
1776
#define   FW_BLC_SELF_FIFO_MASK    (1<<16) /* 945 only */
1836
#define   FW_BLC_SELF_FIFO_MASK    (1<<16) /* 945 only */
1777
#define   FW_BLC_SELF_EN           (1<<15) /* 945 only */
1837
#define   FW_BLC_SELF_EN           (1<<15) /* 945 only */
1778
#define MM_BURST_LENGTH     0x00700000
1838
#define MM_BURST_LENGTH     0x00700000
1779
#define MM_FIFO_WATERMARK   0x0001F000
1839
#define MM_FIFO_WATERMARK   0x0001F000
Line 1780... Line 1840...
1780
#define LM_BURST_LENGTH     0x00000700
1840
#define LM_BURST_LENGTH     0x00000700
1781
#define LM_FIFO_WATERMARK   0x0000001F
1841
#define LM_FIFO_WATERMARK   0x0000001F
1782
#define MI_ARB_STATE	0x020e4 /* 915+ only */
1842
#define MI_ARB_STATE	_MMIO(0x20e4) /* 915+ only */
1783
 
1843
 
Line 1841... Line 1901...
1841
 
1901
 
1842
/* Set display plane priority */
1902
/* Set display plane priority */
1843
#define   MI_ARB_DISPLAY_PRIORITY_A_B		(0 << 0)	/* display A > display B */
1903
#define   MI_ARB_DISPLAY_PRIORITY_A_B		(0 << 0)	/* display A > display B */
Line 1844... Line 1904...
1844
#define   MI_ARB_DISPLAY_PRIORITY_B_A		(1 << 0)	/* display B > display A */
1904
#define   MI_ARB_DISPLAY_PRIORITY_B_A		(1 << 0)	/* display B > display A */
1845
 
1905
 
1846
#define MI_STATE	0x020e4 /* gen2 only */
1906
#define MI_STATE	_MMIO(0x20e4) /* gen2 only */
Line 1847... Line 1907...
1847
#define   MI_AGPBUSY_INT_EN			(1 << 1) /* 85x only */
1907
#define   MI_AGPBUSY_INT_EN			(1 << 1) /* 85x only */
1848
#define   MI_AGPBUSY_830_MODE			(1 << 0) /* 85x only */
1908
#define   MI_AGPBUSY_830_MODE			(1 << 0) /* 85x only */
1849
 
1909
 
1850
#define CACHE_MODE_0	0x02120 /* 915+ only */
1910
#define CACHE_MODE_0	_MMIO(0x2120) /* 915+ only */
1851
#define   CM0_PIPELINED_RENDER_FLUSH_DISABLE (1<<8)
1911
#define   CM0_PIPELINED_RENDER_FLUSH_DISABLE (1<<8)
1852
#define   CM0_IZ_OPT_DISABLE      (1<<6)
1912
#define   CM0_IZ_OPT_DISABLE      (1<<6)
1853
#define   CM0_ZR_OPT_DISABLE      (1<<5)
1913
#define   CM0_ZR_OPT_DISABLE      (1<<5)
1854
#define	  CM0_STC_EVICT_DISABLE_LRA_SNB	(1<<5)
1914
#define	  CM0_STC_EVICT_DISABLE_LRA_SNB	(1<<5)
1855
#define   CM0_DEPTH_EVICT_DISABLE (1<<4)
1915
#define   CM0_DEPTH_EVICT_DISABLE (1<<4)
1856
#define   CM0_COLOR_EVICT_DISABLE (1<<3)
1916
#define   CM0_COLOR_EVICT_DISABLE (1<<3)
1857
#define   CM0_DEPTH_WRITE_DISABLE (1<<1)
1917
#define   CM0_DEPTH_WRITE_DISABLE (1<<1)
1858
#define   CM0_RC_OP_FLUSH_DISABLE (1<<0)
1918
#define   CM0_RC_OP_FLUSH_DISABLE (1<<0)
1859
#define GFX_FLSH_CNTL	0x02170 /* 915+ only */
1919
#define GFX_FLSH_CNTL	_MMIO(0x2170) /* 915+ only */
1860
#define GFX_FLSH_CNTL_GEN6	0x101008
1920
#define GFX_FLSH_CNTL_GEN6	_MMIO(0x101008)
1861
#define   GFX_FLSH_CNTL_EN	(1<<0)
1921
#define   GFX_FLSH_CNTL_EN	(1<<0)
Line 1862... Line 1922...
1862
#define ECOSKPD		0x021d0
1922
#define ECOSKPD		_MMIO(0x21d0)
1863
#define   ECO_GATING_CX_ONLY	(1<<3)
1923
#define   ECO_GATING_CX_ONLY	(1<<3)
1864
#define   ECO_FLIP_DONE		(1<<0)
1924
#define   ECO_FLIP_DONE		(1<<0)
1865
 
1925
 
1866
#define CACHE_MODE_0_GEN7	0x7000 /* IVB+ */
1926
#define CACHE_MODE_0_GEN7	_MMIO(0x7000) /* IVB+ */
1867
#define RC_OP_FLUSH_ENABLE (1<<0)
1927
#define RC_OP_FLUSH_ENABLE (1<<0)
1868
#define   HIZ_RAW_STALL_OPT_DISABLE (1<<2)
1928
#define   HIZ_RAW_STALL_OPT_DISABLE (1<<2)
Line 1869... Line 1929...
1869
#define CACHE_MODE_1		0x7004 /* IVB+ */
1929
#define CACHE_MODE_1		_MMIO(0x7004) /* IVB+ */
1870
#define   PIXEL_SUBSPAN_COLLECT_OPT_DISABLE	(1<<6)
1930
#define   PIXEL_SUBSPAN_COLLECT_OPT_DISABLE	(1<<6)
1871
#define   GEN8_4x4_STC_OPTIMIZATION_DISABLE	(1<<6)
1931
#define   GEN8_4x4_STC_OPTIMIZATION_DISABLE	(1<<6)
Line 1872... Line 1932...
1872
#define   GEN9_PARTIAL_RESOLVE_IN_VC_DISABLE	(1<<1)
1932
#define   GEN9_PARTIAL_RESOLVE_IN_VC_DISABLE	(1<<1)
1873
 
1933
 
1874
#define GEN6_BLITTER_ECOSKPD	0x221d0
1934
#define GEN6_BLITTER_ECOSKPD	_MMIO(0x221d0)
1875
#define   GEN6_BLITTER_LOCK_SHIFT			16
1935
#define   GEN6_BLITTER_LOCK_SHIFT			16
Line 1876... Line 1936...
1876
#define   GEN6_BLITTER_FBC_NOTIFY			(1<<3)
1936
#define   GEN6_BLITTER_FBC_NOTIFY			(1<<3)
1877
 
1937
 
1878
#define GEN6_RC_SLEEP_PSMI_CONTROL	0x2050
1938
#define GEN6_RC_SLEEP_PSMI_CONTROL	_MMIO(0x2050)
1879
#define   GEN6_PSMI_SLEEP_MSG_DISABLE	(1 << 0)
1939
#define   GEN6_PSMI_SLEEP_MSG_DISABLE	(1 << 0)
1880
#define   GEN8_RC_SEMA_IDLE_MSG_DISABLE	(1 << 12)
1940
#define   GEN8_RC_SEMA_IDLE_MSG_DISABLE	(1 << 12)
1881
#define   GEN8_FF_DOP_CLOCK_GATE_DISABLE	(1<<10)
1941
#define   GEN8_FF_DOP_CLOCK_GATE_DISABLE	(1<<10)
1882
 
1942
 
Line 1891... Line 1951...
1891
#define   CHV_FGT_EU_DIS_SS1_R0_SHIFT	24
1951
#define   CHV_FGT_EU_DIS_SS1_R0_SHIFT	24
1892
#define   CHV_FGT_EU_DIS_SS1_R0_MASK	(0xf << CHV_FGT_EU_DIS_SS1_R0_SHIFT)
1952
#define   CHV_FGT_EU_DIS_SS1_R0_MASK	(0xf << CHV_FGT_EU_DIS_SS1_R0_SHIFT)
1893
#define   CHV_FGT_EU_DIS_SS1_R1_SHIFT	28
1953
#define   CHV_FGT_EU_DIS_SS1_R1_SHIFT	28
1894
#define   CHV_FGT_EU_DIS_SS1_R1_MASK	(0xf << CHV_FGT_EU_DIS_SS1_R1_SHIFT)
1954
#define   CHV_FGT_EU_DIS_SS1_R1_MASK	(0xf << CHV_FGT_EU_DIS_SS1_R1_SHIFT)
Line 1895... Line 1955...
1895
 
1955
 
1896
#define GEN8_FUSE2			0x9120
1956
#define GEN8_FUSE2			_MMIO(0x9120)
1897
#define   GEN8_F2_SS_DIS_SHIFT		21
1957
#define   GEN8_F2_SS_DIS_SHIFT		21
1898
#define   GEN8_F2_SS_DIS_MASK		(0x7 << GEN8_F2_SS_DIS_SHIFT)
1958
#define   GEN8_F2_SS_DIS_MASK		(0x7 << GEN8_F2_SS_DIS_SHIFT)
1899
#define   GEN8_F2_S_ENA_SHIFT		25
1959
#define   GEN8_F2_S_ENA_SHIFT		25
Line 1900... Line 1960...
1900
#define   GEN8_F2_S_ENA_MASK		(0x7 << GEN8_F2_S_ENA_SHIFT)
1960
#define   GEN8_F2_S_ENA_MASK		(0x7 << GEN8_F2_S_ENA_SHIFT)
1901
 
1961
 
Line 1902... Line 1962...
1902
#define   GEN9_F2_SS_DIS_SHIFT		20
1962
#define   GEN9_F2_SS_DIS_SHIFT		20
1903
#define   GEN9_F2_SS_DIS_MASK		(0xf << GEN9_F2_SS_DIS_SHIFT)
1963
#define   GEN9_F2_SS_DIS_MASK		(0xf << GEN9_F2_SS_DIS_SHIFT)
1904
 
1964
 
1905
#define GEN8_EU_DISABLE0		0x9134
1965
#define GEN8_EU_DISABLE0		_MMIO(0x9134)
Line 1906... Line 1966...
1906
#define   GEN8_EU_DIS0_S0_MASK		0xffffff
1966
#define   GEN8_EU_DIS0_S0_MASK		0xffffff
1907
#define   GEN8_EU_DIS0_S1_SHIFT		24
1967
#define   GEN8_EU_DIS0_S1_SHIFT		24
1908
#define   GEN8_EU_DIS0_S1_MASK		(0xff << GEN8_EU_DIS0_S1_SHIFT)
1968
#define   GEN8_EU_DIS0_S1_MASK		(0xff << GEN8_EU_DIS0_S1_SHIFT)
1909
 
1969
 
Line 1910... Line 1970...
1910
#define GEN8_EU_DISABLE1		0x9138
1970
#define GEN8_EU_DISABLE1		_MMIO(0x9138)
1911
#define   GEN8_EU_DIS1_S1_MASK		0xffff
1971
#define   GEN8_EU_DIS1_S1_MASK		0xffff
Line 1912... Line 1972...
1912
#define   GEN8_EU_DIS1_S2_SHIFT		16
1972
#define   GEN8_EU_DIS1_S2_SHIFT		16
Line 1913... Line 1973...
1913
#define   GEN8_EU_DIS1_S2_MASK		(0xffff << GEN8_EU_DIS1_S2_SHIFT)
1973
#define   GEN8_EU_DIS1_S2_MASK		(0xffff << GEN8_EU_DIS1_S2_SHIFT)
1914
 
1974
 
1915
#define GEN8_EU_DISABLE2		0x913c
1975
#define GEN8_EU_DISABLE2		_MMIO(0x913c)
1916
#define   GEN8_EU_DIS2_S2_MASK		0xff
1976
#define   GEN8_EU_DIS2_S2_MASK		0xff
1917
 
1977
 
Line 1993... Line 2053...
1993
#define I915_WINVALID_INTERRUPT				(1<<1)
2053
#define I915_WINVALID_INTERRUPT				(1<<1)
1994
#define I915_USER_INTERRUPT				(1<<1)
2054
#define I915_USER_INTERRUPT				(1<<1)
1995
#define I915_ASLE_INTERRUPT				(1<<0)
2055
#define I915_ASLE_INTERRUPT				(1<<0)
1996
#define I915_BSD_USER_INTERRUPT				(1<<25)
2056
#define I915_BSD_USER_INTERRUPT				(1<<25)
Line 1997... Line 2057...
1997
 
2057
 
Line 1998... Line 2058...
1998
#define GEN6_BSD_RNCID			0x12198
2058
#define GEN6_BSD_RNCID			_MMIO(0x12198)
1999
 
2059
 
2000
#define GEN7_FF_THREAD_MODE		0x20a0
2060
#define GEN7_FF_THREAD_MODE		_MMIO(0x20a0)
2001
#define   GEN7_FF_SCHED_MASK		0x0077070
2061
#define   GEN7_FF_SCHED_MASK		0x0077070
2002
#define   GEN8_FF_DS_REF_CNT_FFME	(1 << 19)
2062
#define   GEN8_FF_DS_REF_CNT_FFME	(1 << 19)
2003
#define   GEN7_FF_TS_SCHED_HS1		(0x5<<16)
2063
#define   GEN7_FF_TS_SCHED_HS1		(0x5<<16)
Line 2016... Line 2076...
2016
 
2076
 
2017
/*
2077
/*
2018
 * Framebuffer compression (915+ only)
2078
 * Framebuffer compression (915+ only)
Line 2019... Line 2079...
2019
 */
2079
 */
2020
 
2080
 
2021
#define FBC_CFB_BASE		0x03200 /* 4k page aligned */
2081
#define FBC_CFB_BASE		_MMIO(0x3200) /* 4k page aligned */
2022
#define FBC_LL_BASE		0x03204 /* 4k page aligned */
2082
#define FBC_LL_BASE		_MMIO(0x3204) /* 4k page aligned */
2023
#define FBC_CONTROL		0x03208
2083
#define FBC_CONTROL		_MMIO(0x3208)
2024
#define   FBC_CTL_EN		(1<<31)
2084
#define   FBC_CTL_EN		(1<<31)
2025
#define   FBC_CTL_PERIODIC	(1<<30)
2085
#define   FBC_CTL_PERIODIC	(1<<30)
2026
#define   FBC_CTL_INTERVAL_SHIFT (16)
2086
#define   FBC_CTL_INTERVAL_SHIFT (16)
2027
#define   FBC_CTL_UNCOMPRESSIBLE (1<<14)
2087
#define   FBC_CTL_UNCOMPRESSIBLE (1<<14)
2028
#define   FBC_CTL_C3_IDLE	(1<<13)
2088
#define   FBC_CTL_C3_IDLE	(1<<13)
2029
#define   FBC_CTL_STRIDE_SHIFT	(5)
2089
#define   FBC_CTL_STRIDE_SHIFT	(5)
2030
#define   FBC_CTL_FENCENO_SHIFT	(0)
2090
#define   FBC_CTL_FENCENO_SHIFT	(0)
2031
#define FBC_COMMAND		0x0320c
2091
#define FBC_COMMAND		_MMIO(0x320c)
2032
#define   FBC_CMD_COMPRESS	(1<<0)
2092
#define   FBC_CMD_COMPRESS	(1<<0)
2033
#define FBC_STATUS		0x03210
2093
#define FBC_STATUS		_MMIO(0x3210)
2034
#define   FBC_STAT_COMPRESSING	(1<<31)
2094
#define   FBC_STAT_COMPRESSING	(1<<31)
2035
#define   FBC_STAT_COMPRESSED	(1<<30)
2095
#define   FBC_STAT_COMPRESSED	(1<<30)
2036
#define   FBC_STAT_MODIFIED	(1<<29)
2096
#define   FBC_STAT_MODIFIED	(1<<29)
2037
#define   FBC_STAT_CURRENT_LINE_SHIFT	(0)
2097
#define   FBC_STAT_CURRENT_LINE_SHIFT	(0)
2038
#define FBC_CONTROL2		0x03214
2098
#define FBC_CONTROL2		_MMIO(0x3214)
2039
#define   FBC_CTL_FENCE_DBL	(0<<4)
2099
#define   FBC_CTL_FENCE_DBL	(0<<4)
2040
#define   FBC_CTL_IDLE_IMM	(0<<2)
2100
#define   FBC_CTL_IDLE_IMM	(0<<2)
2041
#define   FBC_CTL_IDLE_FULL	(1<<2)
2101
#define   FBC_CTL_IDLE_FULL	(1<<2)
2042
#define   FBC_CTL_IDLE_LINE	(2<<2)
2102
#define   FBC_CTL_IDLE_LINE	(2<<2)
2043
#define   FBC_CTL_IDLE_DEBUG	(3<<2)
2103
#define   FBC_CTL_IDLE_DEBUG	(3<<2)
2044
#define   FBC_CTL_CPU_FENCE	(1<<1)
2104
#define   FBC_CTL_CPU_FENCE	(1<<1)
2045
#define   FBC_CTL_PLANE(plane)	((plane)<<0)
2105
#define   FBC_CTL_PLANE(plane)	((plane)<<0)
Line 2046... Line 2106...
2046
#define FBC_FENCE_OFF		0x03218 /* BSpec typo has 321Bh */
2106
#define FBC_FENCE_OFF		_MMIO(0x3218) /* BSpec typo has 321Bh */
2047
#define FBC_TAG(i)		(0x03300 + (i) * 4)
2107
#define FBC_TAG(i)		_MMIO(0x3300 + (i) * 4)
Line 2048... Line 2108...
2048
 
2108
 
Line 2049... Line 2109...
2049
#define FBC_STATUS2		0x43214
2109
#define FBC_STATUS2		_MMIO(0x43214)
2050
#define  FBC_COMPRESSION_MASK	0x7ff
2110
#define  FBC_COMPRESSION_MASK	0x7ff
2051
 
2111
 
2052
#define FBC_LL_SIZE		(1536)
2112
#define FBC_LL_SIZE		(1536)
2053
 
2113
 
2054
/* Framebuffer compression for GM45+ */
2114
/* Framebuffer compression for GM45+ */
2055
#define DPFC_CB_BASE		0x3200
2115
#define DPFC_CB_BASE		_MMIO(0x3200)
2056
#define DPFC_CONTROL		0x3208
2116
#define DPFC_CONTROL		_MMIO(0x3208)
2057
#define   DPFC_CTL_EN		(1<<31)
2117
#define   DPFC_CTL_EN		(1<<31)
2058
#define   DPFC_CTL_PLANE(plane)	((plane)<<30)
2118
#define   DPFC_CTL_PLANE(plane)	((plane)<<30)
2059
#define   IVB_DPFC_CTL_PLANE(plane)	((plane)<<29)
2119
#define   IVB_DPFC_CTL_PLANE(plane)	((plane)<<29)
2060
#define   DPFC_CTL_FENCE_EN	(1<<29)
2120
#define   DPFC_CTL_FENCE_EN	(1<<29)
2061
#define   IVB_DPFC_CTL_FENCE_EN	(1<<28)
2121
#define   IVB_DPFC_CTL_FENCE_EN	(1<<28)
2062
#define   DPFC_CTL_PERSISTENT_MODE	(1<<25)
2122
#define   DPFC_CTL_PERSISTENT_MODE	(1<<25)
2063
#define   DPFC_SR_EN		(1<<10)
2123
#define   DPFC_SR_EN		(1<<10)
2064
#define   DPFC_CTL_LIMIT_1X	(0<<6)
2124
#define   DPFC_CTL_LIMIT_1X	(0<<6)
2065
#define   DPFC_CTL_LIMIT_2X	(1<<6)
2125
#define   DPFC_CTL_LIMIT_2X	(1<<6)
2066
#define   DPFC_CTL_LIMIT_4X	(2<<6)
2126
#define   DPFC_CTL_LIMIT_4X	(2<<6)
2067
#define DPFC_RECOMP_CTL		0x320c
2127
#define DPFC_RECOMP_CTL		_MMIO(0x320c)
2068
#define   DPFC_RECOMP_STALL_EN	(1<<27)
2128
#define   DPFC_RECOMP_STALL_EN	(1<<27)
2069
#define   DPFC_RECOMP_STALL_WM_SHIFT (16)
2129
#define   DPFC_RECOMP_STALL_WM_SHIFT (16)
2070
#define   DPFC_RECOMP_STALL_WM_MASK (0x07ff0000)
2130
#define   DPFC_RECOMP_STALL_WM_MASK (0x07ff0000)
2071
#define   DPFC_RECOMP_TIMER_COUNT_SHIFT (0)
2131
#define   DPFC_RECOMP_TIMER_COUNT_SHIFT (0)
2072
#define   DPFC_RECOMP_TIMER_COUNT_MASK (0x0000003f)
2132
#define   DPFC_RECOMP_TIMER_COUNT_MASK (0x0000003f)
2073
#define DPFC_STATUS		0x3210
2133
#define DPFC_STATUS		_MMIO(0x3210)
2074
#define   DPFC_INVAL_SEG_SHIFT  (16)
2134
#define   DPFC_INVAL_SEG_SHIFT  (16)
2075
#define   DPFC_INVAL_SEG_MASK	(0x07ff0000)
2135
#define   DPFC_INVAL_SEG_MASK	(0x07ff0000)
2076
#define   DPFC_COMP_SEG_SHIFT	(0)
2136
#define   DPFC_COMP_SEG_SHIFT	(0)
Line 2077... Line 2137...
2077
#define   DPFC_COMP_SEG_MASK	(0x000003ff)
2137
#define   DPFC_COMP_SEG_MASK	(0x000003ff)
2078
#define DPFC_STATUS2		0x3214
2138
#define DPFC_STATUS2		_MMIO(0x3214)
2079
#define DPFC_FENCE_YOFF		0x3218
2139
#define DPFC_FENCE_YOFF		_MMIO(0x3218)
2080
#define DPFC_CHICKEN		0x3224
2140
#define DPFC_CHICKEN		_MMIO(0x3224)
2081
#define   DPFC_HT_MODIFY	(1<<31)
2141
#define   DPFC_HT_MODIFY	(1<<31)
2082
 
2142
 
2083
/* Framebuffer compression for Ironlake */
2143
/* Framebuffer compression for Ironlake */
2084
#define ILK_DPFC_CB_BASE	0x43200
2144
#define ILK_DPFC_CB_BASE	_MMIO(0x43200)
2085
#define ILK_DPFC_CONTROL	0x43208
2145
#define ILK_DPFC_CONTROL	_MMIO(0x43208)
2086
#define   FBC_CTL_FALSE_COLOR	(1<<10)
2146
#define   FBC_CTL_FALSE_COLOR	(1<<10)
2087
/* The bit 28-8 is reserved */
2147
/* The bit 28-8 is reserved */
2088
#define   DPFC_RESERVED		(0x1FFFFF00)
2148
#define   DPFC_RESERVED		(0x1FFFFF00)
2089
#define ILK_DPFC_RECOMP_CTL	0x4320c
2149
#define ILK_DPFC_RECOMP_CTL	_MMIO(0x4320c)
Line 2090... Line 2150...
2090
#define ILK_DPFC_STATUS		0x43210
2150
#define ILK_DPFC_STATUS		_MMIO(0x43210)
2091
#define ILK_DPFC_FENCE_YOFF	0x43218
2151
#define ILK_DPFC_FENCE_YOFF	_MMIO(0x43218)
2092
#define ILK_DPFC_CHICKEN	0x43224
2152
#define ILK_DPFC_CHICKEN	_MMIO(0x43224)
Line 2093... Line 2153...
2093
#define ILK_FBC_RT_BASE		0x2128
2153
#define ILK_FBC_RT_BASE		_MMIO(0x2128)
2094
#define   ILK_FBC_RT_VALID	(1<<0)
2154
#define   ILK_FBC_RT_VALID	(1<<0)
2095
#define   SNB_FBC_FRONT_BUFFER	(1<<1)
2155
#define   SNB_FBC_FRONT_BUFFER	(1<<1)
2096
 
2156
 
2097
#define ILK_DISPLAY_CHICKEN1	0x42000
2157
#define ILK_DISPLAY_CHICKEN1	_MMIO(0x42000)
2098
#define   ILK_FBCQ_DIS		(1<<22)
2158
#define   ILK_FBCQ_DIS		(1<<22)
2099
#define	  ILK_PABSTRETCH_DIS	(1<<21)
2159
#define	  ILK_PABSTRETCH_DIS	(1<<21)
2100
 
2160
 
Line 2101... Line 2161...
2101
 
2161
 
2102
/*
2162
/*
Line 2103... Line 2163...
2103
 * Framebuffer compression for Sandybridge
2163
 * Framebuffer compression for Sandybridge
2104
 *
2164
 *
Line 2105... Line 2165...
2105
 * The following two registers are of type GTTMMADR
2165
 * The following two registers are of type GTTMMADR
2106
 */
2166
 */
2107
#define SNB_DPFC_CTL_SA		0x100100
2167
#define SNB_DPFC_CTL_SA		_MMIO(0x100100)
Line 2108... Line 2168...
2108
#define   SNB_CPU_FENCE_ENABLE	(1<<29)
2168
#define   SNB_CPU_FENCE_ENABLE	(1<<29)
2109
#define DPFC_CPU_FENCE_OFFSET	0x100104
2169
#define DPFC_CPU_FENCE_OFFSET	_MMIO(0x100104)
2110
 
2170
 
2111
/* Framebuffer compression for Ivybridge */
2171
/* Framebuffer compression for Ivybridge */
2112
#define IVB_FBC_RT_BASE			0x7020
2172
#define IVB_FBC_RT_BASE			_MMIO(0x7020)
2113
 
2173
 
2114
#define IPS_CTL		0x43408
2174
#define IPS_CTL		_MMIO(0x43408)
2115
#define   IPS_ENABLE	(1 << 31)
2175
#define   IPS_ENABLE	(1 << 31)
2116
 
2176
 
2117
#define MSG_FBC_REND_STATE	0x50380
2177
#define MSG_FBC_REND_STATE	_MMIO(0x50380)
2118
#define   FBC_REND_NUKE		(1<<2)
2178
#define   FBC_REND_NUKE		(1<<2)
2119
#define   FBC_REND_CACHE_CLEAN	(1<<1)
2179
#define   FBC_REND_CACHE_CLEAN	(1<<1)
2120
 
2180
 
2121
/*
2181
/*
2122
 * GPIO regs
2182
 * GPIO regs
2123
 */
2183
 */
Line 2142... Line 2202...
2142
# define GPIO_DATA_VAL_MASK		(1 << 10)
2202
# define GPIO_DATA_VAL_MASK		(1 << 10)
2143
# define GPIO_DATA_VAL_OUT		(1 << 11)
2203
# define GPIO_DATA_VAL_OUT		(1 << 11)
2144
# define GPIO_DATA_VAL_IN		(1 << 12)
2204
# define GPIO_DATA_VAL_IN		(1 << 12)
2145
# define GPIO_DATA_PULLUP_DISABLE	(1 << 13)
2205
# define GPIO_DATA_PULLUP_DISABLE	(1 << 13)
Line 2146... Line 2206...
2146
 
2206
 
2147
#define GMBUS0			(dev_priv->gpio_mmio_base + 0x5100) /* clock/port select */
2207
#define GMBUS0			_MMIO(dev_priv->gpio_mmio_base + 0x5100) /* clock/port select */
2148
#define   GMBUS_RATE_100KHZ	(0<<8)
2208
#define   GMBUS_RATE_100KHZ	(0<<8)
2149
#define   GMBUS_RATE_50KHZ	(1<<8)
2209
#define   GMBUS_RATE_50KHZ	(1<<8)
2150
#define   GMBUS_RATE_400KHZ	(2<<8) /* reserved on Pineview */
2210
#define   GMBUS_RATE_400KHZ	(2<<8) /* reserved on Pineview */
2151
#define   GMBUS_RATE_1MHZ	(3<<8) /* reserved on Pineview */
2211
#define   GMBUS_RATE_1MHZ	(3<<8) /* reserved on Pineview */
Line 2161... Line 2221...
2161
#define   GMBUS_PIN_RESERVED	7 /* 7 reserved */
2221
#define   GMBUS_PIN_RESERVED	7 /* 7 reserved */
2162
#define   GMBUS_PIN_1_BXT	1
2222
#define   GMBUS_PIN_1_BXT	1
2163
#define   GMBUS_PIN_2_BXT	2
2223
#define   GMBUS_PIN_2_BXT	2
2164
#define   GMBUS_PIN_3_BXT	3
2224
#define   GMBUS_PIN_3_BXT	3
2165
#define   GMBUS_NUM_PINS	7 /* including 0 */
2225
#define   GMBUS_NUM_PINS	7 /* including 0 */
2166
#define GMBUS1			(dev_priv->gpio_mmio_base + 0x5104) /* command/status */
2226
#define GMBUS1			_MMIO(dev_priv->gpio_mmio_base + 0x5104) /* command/status */
2167
#define   GMBUS_SW_CLR_INT	(1<<31)
2227
#define   GMBUS_SW_CLR_INT	(1<<31)
2168
#define   GMBUS_SW_RDY		(1<<30)
2228
#define   GMBUS_SW_RDY		(1<<30)
2169
#define   GMBUS_ENT		(1<<29) /* enable timeout */
2229
#define   GMBUS_ENT		(1<<29) /* enable timeout */
2170
#define   GMBUS_CYCLE_NONE	(0<<25)
2230
#define   GMBUS_CYCLE_NONE	(0<<25)
2171
#define   GMBUS_CYCLE_WAIT	(1<<25)
2231
#define   GMBUS_CYCLE_WAIT	(1<<25)
Line 2175... Line 2235...
2175
#define   GMBUS_BYTE_COUNT_MAX   256U
2235
#define   GMBUS_BYTE_COUNT_MAX   256U
2176
#define   GMBUS_SLAVE_INDEX_SHIFT 8
2236
#define   GMBUS_SLAVE_INDEX_SHIFT 8
2177
#define   GMBUS_SLAVE_ADDR_SHIFT 1
2237
#define   GMBUS_SLAVE_ADDR_SHIFT 1
2178
#define   GMBUS_SLAVE_READ	(1<<0)
2238
#define   GMBUS_SLAVE_READ	(1<<0)
2179
#define   GMBUS_SLAVE_WRITE	(0<<0)
2239
#define   GMBUS_SLAVE_WRITE	(0<<0)
2180
#define GMBUS2			(dev_priv->gpio_mmio_base + 0x5108) /* status */
2240
#define GMBUS2			_MMIO(dev_priv->gpio_mmio_base + 0x5108) /* status */
2181
#define   GMBUS_INUSE		(1<<15)
2241
#define   GMBUS_INUSE		(1<<15)
2182
#define   GMBUS_HW_WAIT_PHASE	(1<<14)
2242
#define   GMBUS_HW_WAIT_PHASE	(1<<14)
2183
#define   GMBUS_STALL_TIMEOUT	(1<<13)
2243
#define   GMBUS_STALL_TIMEOUT	(1<<13)
2184
#define   GMBUS_INT		(1<<12)
2244
#define   GMBUS_INT		(1<<12)
2185
#define   GMBUS_HW_RDY		(1<<11)
2245
#define   GMBUS_HW_RDY		(1<<11)
2186
#define   GMBUS_SATOER		(1<<10)
2246
#define   GMBUS_SATOER		(1<<10)
2187
#define   GMBUS_ACTIVE		(1<<9)
2247
#define   GMBUS_ACTIVE		(1<<9)
2188
#define GMBUS3			(dev_priv->gpio_mmio_base + 0x510c) /* data buffer bytes 3-0 */
2248
#define GMBUS3			_MMIO(dev_priv->gpio_mmio_base + 0x510c) /* data buffer bytes 3-0 */
2189
#define GMBUS4			(dev_priv->gpio_mmio_base + 0x5110) /* interrupt mask (Pineview+) */
2249
#define GMBUS4			_MMIO(dev_priv->gpio_mmio_base + 0x5110) /* interrupt mask (Pineview+) */
2190
#define   GMBUS_SLAVE_TIMEOUT_EN (1<<4)
2250
#define   GMBUS_SLAVE_TIMEOUT_EN (1<<4)
2191
#define   GMBUS_NAK_EN		(1<<3)
2251
#define   GMBUS_NAK_EN		(1<<3)
2192
#define   GMBUS_IDLE_EN		(1<<2)
2252
#define   GMBUS_IDLE_EN		(1<<2)
2193
#define   GMBUS_HW_WAIT_EN	(1<<1)
2253
#define   GMBUS_HW_WAIT_EN	(1<<1)
2194
#define   GMBUS_HW_RDY_EN	(1<<0)
2254
#define   GMBUS_HW_RDY_EN	(1<<0)
2195
#define GMBUS5			(dev_priv->gpio_mmio_base + 0x5120) /* byte index */
2255
#define GMBUS5			_MMIO(dev_priv->gpio_mmio_base + 0x5120) /* byte index */
2196
#define   GMBUS_2BYTE_INDEX_EN	(1<<31)
2256
#define   GMBUS_2BYTE_INDEX_EN	(1<<31)
Line 2197... Line 2257...
2197
 
2257
 
2198
/*
2258
/*
2199
 * Clock control & power management
2259
 * Clock control & power management
2200
 */
2260
 */
2201
#define _DPLL_A (dev_priv->info.display_mmio_offset + 0x6014)
2261
#define _DPLL_A (dev_priv->info.display_mmio_offset + 0x6014)
2202
#define _DPLL_B (dev_priv->info.display_mmio_offset + 0x6018)
2262
#define _DPLL_B (dev_priv->info.display_mmio_offset + 0x6018)
2203
#define _CHV_DPLL_C (dev_priv->info.display_mmio_offset + 0x6030)
2263
#define _CHV_DPLL_C (dev_priv->info.display_mmio_offset + 0x6030)
Line 2204... Line 2264...
2204
#define DPLL(pipe) _PIPE3((pipe), _DPLL_A, _DPLL_B, _CHV_DPLL_C)
2264
#define DPLL(pipe) _MMIO_PIPE3((pipe), _DPLL_A, _DPLL_B, _CHV_DPLL_C)
2205
 
2265
 
2206
#define VGA0	0x6000
2266
#define VGA0	_MMIO(0x6000)
2207
#define VGA1	0x6004
2267
#define VGA1	_MMIO(0x6004)
2208
#define VGA_PD	0x6010
2268
#define VGA_PD	_MMIO(0x6010)
2209
#define   VGA0_PD_P2_DIV_4	(1 << 7)
2269
#define   VGA0_PD_P2_DIV_4	(1 << 7)
2210
#define   VGA0_PD_P1_DIV_2	(1 << 5)
2270
#define   VGA0_PD_P1_DIV_2	(1 << 5)
2211
#define   VGA0_PD_P1_SHIFT	0
2271
#define   VGA0_PD_P1_SHIFT	0
Line 2239... Line 2299...
2239
#define   DPLL_PORTB_READY_MASK		(0xf)
2299
#define   DPLL_PORTB_READY_MASK		(0xf)
Line 2240... Line 2300...
2240
 
2300
 
Line 2241... Line 2301...
2241
#define   DPLL_FPA01_P1_POST_DIV_MASK_I830	0x001f0000
2301
#define   DPLL_FPA01_P1_POST_DIV_MASK_I830	0x001f0000
2242
 
2302
 
2243
/* Additional CHV pll/phy registers */
2303
/* Additional CHV pll/phy registers */
2244
#define DPIO_PHY_STATUS			(VLV_DISPLAY_BASE + 0x6240)
2304
#define DPIO_PHY_STATUS			_MMIO(VLV_DISPLAY_BASE + 0x6240)
2245
#define   DPLL_PORTD_READY_MASK		(0xf)
2305
#define   DPLL_PORTD_READY_MASK		(0xf)
2246
#define DISPLAY_PHY_CONTROL (VLV_DISPLAY_BASE + 0x60100)
2306
#define DISPLAY_PHY_CONTROL _MMIO(VLV_DISPLAY_BASE + 0x60100)
2247
#define   PHY_CH_POWER_DOWN_OVRD_EN(phy, ch)	(1 << (2*(phy)+(ch)+27))
2307
#define   PHY_CH_POWER_DOWN_OVRD_EN(phy, ch)	(1 << (2*(phy)+(ch)+27))
2248
#define   PHY_LDO_DELAY_0NS			0x0
2308
#define   PHY_LDO_DELAY_0NS			0x0
2249
#define   PHY_LDO_DELAY_200NS			0x1
2309
#define   PHY_LDO_DELAY_200NS			0x1
2250
#define   PHY_LDO_DELAY_600NS			0x2
2310
#define   PHY_LDO_DELAY_600NS			0x2
2251
#define   PHY_LDO_SEQ_DELAY(delay, phy)		((delay) << (2*(phy)+23))
2311
#define   PHY_LDO_SEQ_DELAY(delay, phy)		((delay) << (2*(phy)+23))
2252
#define   PHY_CH_POWER_DOWN_OVRD(mask, phy, ch)	((mask) << (8*(phy)+4*(ch)+11))
2312
#define   PHY_CH_POWER_DOWN_OVRD(mask, phy, ch)	((mask) << (8*(phy)+4*(ch)+11))
2253
#define   PHY_CH_SU_PSR				0x1
2313
#define   PHY_CH_SU_PSR				0x1
2254
#define   PHY_CH_DEEP_PSR			0x7
2314
#define   PHY_CH_DEEP_PSR			0x7
2255
#define   PHY_CH_POWER_MODE(mode, phy, ch)	((mode) << (6*(phy)+3*(ch)+2))
2315
#define   PHY_CH_POWER_MODE(mode, phy, ch)	((mode) << (6*(phy)+3*(ch)+2))
2256
#define   PHY_COM_LANE_RESET_DEASSERT(phy)	(1 << (phy))
2316
#define   PHY_COM_LANE_RESET_DEASSERT(phy)	(1 << (phy))
2257
#define DISPLAY_PHY_STATUS (VLV_DISPLAY_BASE + 0x60104)
2317
#define DISPLAY_PHY_STATUS _MMIO(VLV_DISPLAY_BASE + 0x60104)
2258
#define   PHY_POWERGOOD(phy)	(((phy) == DPIO_PHY0) ? (1<<31) : (1<<30))
2318
#define   PHY_POWERGOOD(phy)	(((phy) == DPIO_PHY0) ? (1<<31) : (1<<30))
Line 2259... Line 2319...
2259
#define   PHY_STATUS_CMN_LDO(phy, ch)                   (1 << (6-(6*(phy)+3*(ch))))
2319
#define   PHY_STATUS_CMN_LDO(phy, ch)                   (1 << (6-(6*(phy)+3*(ch))))
Line 2298... Line 2358...
2298
#define   SDVO_MULTIPLIER_SHIFT_VGA		0
2358
#define   SDVO_MULTIPLIER_SHIFT_VGA		0
Line 2299... Line 2359...
2299
 
2359
 
2300
#define _DPLL_A_MD (dev_priv->info.display_mmio_offset + 0x601c)
2360
#define _DPLL_A_MD (dev_priv->info.display_mmio_offset + 0x601c)
2301
#define _DPLL_B_MD (dev_priv->info.display_mmio_offset + 0x6020)
2361
#define _DPLL_B_MD (dev_priv->info.display_mmio_offset + 0x6020)
2302
#define _CHV_DPLL_C_MD (dev_priv->info.display_mmio_offset + 0x603c)
2362
#define _CHV_DPLL_C_MD (dev_priv->info.display_mmio_offset + 0x603c)
Line 2303... Line 2363...
2303
#define DPLL_MD(pipe) _PIPE3((pipe), _DPLL_A_MD, _DPLL_B_MD, _CHV_DPLL_C_MD)
2363
#define DPLL_MD(pipe) _MMIO_PIPE3((pipe), _DPLL_A_MD, _DPLL_B_MD, _CHV_DPLL_C_MD)
2304
 
2364
 
2305
/*
2365
/*
2306
 * UDI pixel divider, controlling how many pixels are stuffed into a packet.
2366
 * UDI pixel divider, controlling how many pixels are stuffed into a packet.
Line 2337... Line 2397...
2337
 * I don't entirely understand what this does...
2397
 * I don't entirely understand what this does...
2338
 */
2398
 */
2339
#define   DPLL_MD_VGA_UDI_MULTIPLIER_MASK	0x0000003f
2399
#define   DPLL_MD_VGA_UDI_MULTIPLIER_MASK	0x0000003f
2340
#define   DPLL_MD_VGA_UDI_MULTIPLIER_SHIFT	0
2400
#define   DPLL_MD_VGA_UDI_MULTIPLIER_SHIFT	0
Line 2341... Line 2401...
2341
 
2401
 
2342
#define _FPA0	0x06040
2402
#define _FPA0	0x6040
2343
#define _FPA1	0x06044
2403
#define _FPA1	0x6044
2344
#define _FPB0	0x06048
2404
#define _FPB0	0x6048
2345
#define _FPB1	0x0604c
2405
#define _FPB1	0x604c
2346
#define FP0(pipe) _PIPE(pipe, _FPA0, _FPB0)
2406
#define FP0(pipe) _MMIO_PIPE(pipe, _FPA0, _FPB0)
2347
#define FP1(pipe) _PIPE(pipe, _FPA1, _FPB1)
2407
#define FP1(pipe) _MMIO_PIPE(pipe, _FPA1, _FPB1)
2348
#define   FP_N_DIV_MASK		0x003f0000
2408
#define   FP_N_DIV_MASK		0x003f0000
2349
#define   FP_N_PINEVIEW_DIV_MASK	0x00ff0000
2409
#define   FP_N_PINEVIEW_DIV_MASK	0x00ff0000
2350
#define   FP_N_DIV_SHIFT		16
2410
#define   FP_N_DIV_SHIFT		16
2351
#define   FP_M1_DIV_MASK	0x00003f00
2411
#define   FP_M1_DIV_MASK	0x00003f00
2352
#define   FP_M1_DIV_SHIFT		 8
2412
#define   FP_M1_DIV_SHIFT		 8
2353
#define   FP_M2_DIV_MASK	0x0000003f
2413
#define   FP_M2_DIV_MASK	0x0000003f
2354
#define   FP_M2_PINEVIEW_DIV_MASK	0x000000ff
2414
#define   FP_M2_PINEVIEW_DIV_MASK	0x000000ff
2355
#define   FP_M2_DIV_SHIFT		 0
2415
#define   FP_M2_DIV_SHIFT		 0
2356
#define DPLL_TEST	0x606c
2416
#define DPLL_TEST	_MMIO(0x606c)
2357
#define   DPLLB_TEST_SDVO_DIV_1		(0 << 22)
2417
#define   DPLLB_TEST_SDVO_DIV_1		(0 << 22)
2358
#define   DPLLB_TEST_SDVO_DIV_2		(1 << 22)
2418
#define   DPLLB_TEST_SDVO_DIV_2		(1 << 22)
2359
#define   DPLLB_TEST_SDVO_DIV_4		(2 << 22)
2419
#define   DPLLB_TEST_SDVO_DIV_4		(2 << 22)
2360
#define   DPLLB_TEST_SDVO_DIV_MASK	(3 << 22)
2420
#define   DPLLB_TEST_SDVO_DIV_MASK	(3 << 22)
2361
#define   DPLLB_TEST_N_BYPASS		(1 << 19)
2421
#define   DPLLB_TEST_N_BYPASS		(1 << 19)
2362
#define   DPLLB_TEST_M_BYPASS		(1 << 18)
2422
#define   DPLLB_TEST_M_BYPASS		(1 << 18)
2363
#define   DPLLB_INPUT_BUFFER_ENABLE	(1 << 16)
2423
#define   DPLLB_INPUT_BUFFER_ENABLE	(1 << 16)
2364
#define   DPLLA_TEST_N_BYPASS		(1 << 3)
2424
#define   DPLLA_TEST_N_BYPASS		(1 << 3)
2365
#define   DPLLA_TEST_M_BYPASS		(1 << 2)
2425
#define   DPLLA_TEST_M_BYPASS		(1 << 2)
2366
#define   DPLLA_INPUT_BUFFER_ENABLE	(1 << 0)
2426
#define   DPLLA_INPUT_BUFFER_ENABLE	(1 << 0)
2367
#define D_STATE		0x6104
2427
#define D_STATE		_MMIO(0x6104)
2368
#define  DSTATE_GFX_RESET_I830			(1<<6)
2428
#define  DSTATE_GFX_RESET_I830			(1<<6)
2369
#define  DSTATE_PLL_D3_OFF			(1<<3)
2429
#define  DSTATE_PLL_D3_OFF			(1<<3)
2370
#define  DSTATE_GFX_CLOCK_GATING		(1<<1)
2430
#define  DSTATE_GFX_CLOCK_GATING		(1<<1)
2371
#define  DSTATE_DOT_CLOCK_GATING		(1<<0)
2431
#define  DSTATE_DOT_CLOCK_GATING		(1<<0)
2372
#define DSPCLK_GATE_D	(dev_priv->info.display_mmio_offset + 0x6200)
2432
#define DSPCLK_GATE_D	_MMIO(dev_priv->info.display_mmio_offset + 0x6200)
2373
# define DPUNIT_B_CLOCK_GATE_DISABLE		(1 << 30) /* 965 */
2433
# define DPUNIT_B_CLOCK_GATE_DISABLE		(1 << 30) /* 965 */
2374
# define VSUNIT_CLOCK_GATE_DISABLE		(1 << 29) /* 965 */
2434
# define VSUNIT_CLOCK_GATE_DISABLE		(1 << 29) /* 965 */
2375
# define VRHUNIT_CLOCK_GATE_DISABLE		(1 << 28) /* 965 */
2435
# define VRHUNIT_CLOCK_GATE_DISABLE		(1 << 28) /* 965 */
2376
# define VRDUNIT_CLOCK_GATE_DISABLE		(1 << 27) /* 965 */
2436
# define VRDUNIT_CLOCK_GATE_DISABLE		(1 << 27) /* 965 */
Line 2406... Line 2466...
2406
# define OVCUNIT_CLOCK_GATE_DISABLE		(1 << 2)
2466
# define OVCUNIT_CLOCK_GATE_DISABLE		(1 << 2)
2407
# define OVUUNIT_CLOCK_GATE_DISABLE		(1 << 1)
2467
# define OVUUNIT_CLOCK_GATE_DISABLE		(1 << 1)
2408
# define ZVUNIT_CLOCK_GATE_DISABLE		(1 << 0) /* 830 */
2468
# define ZVUNIT_CLOCK_GATE_DISABLE		(1 << 0) /* 830 */
2409
# define OVLUNIT_CLOCK_GATE_DISABLE		(1 << 0) /* 845,865 */
2469
# define OVLUNIT_CLOCK_GATE_DISABLE		(1 << 0) /* 845,865 */
Line 2410... Line 2470...
2410
 
2470
 
2411
#define RENCLK_GATE_D1		0x6204
2471
#define RENCLK_GATE_D1		_MMIO(0x6204)
2412
# define BLITTER_CLOCK_GATE_DISABLE		(1 << 13) /* 945GM only */
2472
# define BLITTER_CLOCK_GATE_DISABLE		(1 << 13) /* 945GM only */
2413
# define MPEG_CLOCK_GATE_DISABLE		(1 << 12) /* 945GM only */
2473
# define MPEG_CLOCK_GATE_DISABLE		(1 << 12) /* 945GM only */
2414
# define PC_FE_CLOCK_GATE_DISABLE		(1 << 11)
2474
# define PC_FE_CLOCK_GATE_DISABLE		(1 << 11)
2415
# define PC_BE_CLOCK_GATE_DISABLE		(1 << 10)
2475
# define PC_BE_CLOCK_GATE_DISABLE		(1 << 10)
Line 2470... Line 2530...
2470
# define I965_DG_CLOCK_GATE_DISABLE		(1 << 3)
2530
# define I965_DG_CLOCK_GATE_DISABLE		(1 << 3)
2471
# define I965_QC_CLOCK_GATE_DISABLE		(1 << 2)
2531
# define I965_QC_CLOCK_GATE_DISABLE		(1 << 2)
2472
# define I965_FT_CLOCK_GATE_DISABLE		(1 << 1)
2532
# define I965_FT_CLOCK_GATE_DISABLE		(1 << 1)
2473
# define I965_DM_CLOCK_GATE_DISABLE		(1 << 0)
2533
# define I965_DM_CLOCK_GATE_DISABLE		(1 << 0)
Line 2474... Line 2534...
2474
 
2534
 
2475
#define RENCLK_GATE_D2		0x6208
2535
#define RENCLK_GATE_D2		_MMIO(0x6208)
2476
#define VF_UNIT_CLOCK_GATE_DISABLE		(1 << 9)
2536
#define VF_UNIT_CLOCK_GATE_DISABLE		(1 << 9)
2477
#define GS_UNIT_CLOCK_GATE_DISABLE		(1 << 7)
2537
#define GS_UNIT_CLOCK_GATE_DISABLE		(1 << 7)
Line 2478... Line 2538...
2478
#define CL_UNIT_CLOCK_GATE_DISABLE		(1 << 6)
2538
#define CL_UNIT_CLOCK_GATE_DISABLE		(1 << 6)
2479
 
2539
 
Line 2480... Line 2540...
2480
#define VDECCLK_GATE_D		0x620C		/* g4x only */
2540
#define VDECCLK_GATE_D		_MMIO(0x620C)		/* g4x only */
2481
#define  VCP_UNIT_CLOCK_GATE_DISABLE		(1 << 4)
2541
#define  VCP_UNIT_CLOCK_GATE_DISABLE		(1 << 4)
Line 2482... Line 2542...
2482
 
2542
 
2483
#define RAMCLK_GATE_D		0x6210		/* CRL only */
2543
#define RAMCLK_GATE_D		_MMIO(0x6210)		/* CRL only */
Line 2484... Line 2544...
2484
#define DEUC			0x6214          /* CRL only */
2544
#define DEUC			_MMIO(0x6214)          /* CRL only */
Line 2485... Line 2545...
2485
 
2545
 
2486
#define FW_BLC_SELF_VLV		(VLV_DISPLAY_BASE + 0x6500)
2546
#define FW_BLC_SELF_VLV		_MMIO(VLV_DISPLAY_BASE + 0x6500)
2487
#define  FW_CSPWRDWNEN		(1<<15)
2547
#define  FW_CSPWRDWNEN		(1<<15)
2488
 
2548
 
Line 2489... Line 2549...
2489
#define MI_ARB_VLV		(VLV_DISPLAY_BASE + 0x6504)
2549
#define MI_ARB_VLV		_MMIO(VLV_DISPLAY_BASE + 0x6504)
2490
 
2550
 
2491
#define CZCLK_CDCLK_FREQ_RATIO	(VLV_DISPLAY_BASE + 0x6508)
2551
#define CZCLK_CDCLK_FREQ_RATIO	_MMIO(VLV_DISPLAY_BASE + 0x6508)
2492
#define   CDCLK_FREQ_SHIFT	4
2552
#define   CDCLK_FREQ_SHIFT	4
2493
#define   CDCLK_FREQ_MASK	(0x1f << CDCLK_FREQ_SHIFT)
2553
#define   CDCLK_FREQ_MASK	(0x1f << CDCLK_FREQ_SHIFT)
2494
#define   CZCLK_FREQ_MASK	0xf
2554
#define   CZCLK_FREQ_MASK	0xf
Line 2495... Line 2555...
2495
 
2555
 
Line 2496... Line 2556...
2496
#define GCI_CONTROL		(VLV_DISPLAY_BASE + 0x650C)
2556
#define GCI_CONTROL		_MMIO(VLV_DISPLAY_BASE + 0x650C)
2497
#define   PFI_CREDIT_63		(9 << 28)		/* chv only */
2557
#define   PFI_CREDIT_63		(9 << 28)		/* chv only */
2498
#define   PFI_CREDIT_31		(8 << 28)		/* chv only */
2558
#define   PFI_CREDIT_31		(8 << 28)		/* chv only */
2499
#define   PFI_CREDIT(x)		(((x) - 8) << 28)	/* 8-15 */
2559
#define   PFI_CREDIT(x)		(((x) - 8) << 28)	/* 8-15 */
2500
#define   PFI_CREDIT_RESEND	(1 << 27)
2560
#define   PFI_CREDIT_RESEND	(1 << 27)
2501
#define   VGA_FAST_MODE_DISABLE	(1 << 14)
2561
#define   VGA_FAST_MODE_DISABLE	(1 << 14)
2502
 
2562
 
2503
#define GMBUSFREQ_VLV		(VLV_DISPLAY_BASE + 0x6510)
2563
#define GMBUSFREQ_VLV		_MMIO(VLV_DISPLAY_BASE + 0x6510)
Line 2504... Line 2564...
2504
 
2564
 
Line 2505... Line 2565...
2505
/*
2565
/*
Line 2525... Line 2585...
2525
 */
2585
 */
2526
#define MCHBAR_MIRROR_BASE	0x10000
2586
#define MCHBAR_MIRROR_BASE	0x10000
Line 2527... Line 2587...
2527
 
2587
 
Line 2528... Line 2588...
2528
#define MCHBAR_MIRROR_BASE_SNB	0x140000
2588
#define MCHBAR_MIRROR_BASE_SNB	0x140000
2529
 
2589
 
2530
#define CTG_STOLEN_RESERVED		(MCHBAR_MIRROR_BASE + 0x34)
2590
#define CTG_STOLEN_RESERVED		_MMIO(MCHBAR_MIRROR_BASE + 0x34)
2531
#define ELK_STOLEN_RESERVED		(MCHBAR_MIRROR_BASE + 0x48)
2591
#define ELK_STOLEN_RESERVED		_MMIO(MCHBAR_MIRROR_BASE + 0x48)
Line 2532... Line 2592...
2532
#define G4X_STOLEN_RESERVED_ADDR1_MASK	(0xFFFF << 16)
2592
#define G4X_STOLEN_RESERVED_ADDR1_MASK	(0xFFFF << 16)
2533
#define G4X_STOLEN_RESERVED_ADDR2_MASK	(0xFFF << 4)
2593
#define G4X_STOLEN_RESERVED_ADDR2_MASK	(0xFFF << 4)
Line 2534... Line 2594...
2534
 
2594
 
2535
/* Memory controller frequency in MCHBAR for Haswell (possible SNB+) */
2595
/* Memory controller frequency in MCHBAR for Haswell (possible SNB+) */
2536
#define DCLK (MCHBAR_MIRROR_BASE_SNB + 0x5e04)
2596
#define DCLK _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5e04)
2537
 
2597
 
2538
/* 915-945 and GM965 MCH register controlling DRAM channel access */
2598
/* 915-945 and GM965 MCH register controlling DRAM channel access */
2539
#define DCC			0x10200
2599
#define DCC			_MMIO(MCHBAR_MIRROR_BASE + 0x200)
2540
#define DCC_ADDRESSING_MODE_SINGLE_CHANNEL		(0 << 0)
2600
#define DCC_ADDRESSING_MODE_SINGLE_CHANNEL		(0 << 0)
2541
#define DCC_ADDRESSING_MODE_DUAL_CHANNEL_ASYMMETRIC	(1 << 0)
2601
#define DCC_ADDRESSING_MODE_DUAL_CHANNEL_ASYMMETRIC	(1 << 0)
2542
#define DCC_ADDRESSING_MODE_DUAL_CHANNEL_INTERLEAVED	(2 << 0)
2602
#define DCC_ADDRESSING_MODE_DUAL_CHANNEL_INTERLEAVED	(2 << 0)
2543
#define DCC_ADDRESSING_MODE_MASK			(3 << 0)
2603
#define DCC_ADDRESSING_MODE_MASK			(3 << 0)
Line 2544... Line 2604...
2544
#define DCC_CHANNEL_XOR_DISABLE				(1 << 10)
2604
#define DCC_CHANNEL_XOR_DISABLE				(1 << 10)
2545
#define DCC_CHANNEL_XOR_BIT_17				(1 << 9)
2605
#define DCC_CHANNEL_XOR_BIT_17				(1 << 9)
2546
#define DCC2			0x10204
2606
#define DCC2			_MMIO(MCHBAR_MIRROR_BASE + 0x204)
Line 2547... Line 2607...
2547
#define DCC2_MODIFIED_ENHANCED_DISABLE			(1 << 20)
2607
#define DCC2_MODIFIED_ENHANCED_DISABLE			(1 << 20)
2548
 
2608
 
2549
/* Pineview MCH register contains DDR3 setting */
2609
/* Pineview MCH register contains DDR3 setting */
Line 2550... Line 2610...
2550
#define CSHRDDR3CTL            0x101a8
2610
#define CSHRDDR3CTL            _MMIO(MCHBAR_MIRROR_BASE + 0x1a8)
2551
#define CSHRDDR3CTL_DDR3       (1 << 2)
2611
#define CSHRDDR3CTL_DDR3       (1 << 2)
2552
 
2612
 
2553
/* 965 MCH register controlling DRAM channel configuration */
2613
/* 965 MCH register controlling DRAM channel configuration */
2554
#define C0DRB3			0x10206
2614
#define C0DRB3			_MMIO(MCHBAR_MIRROR_BASE + 0x206)
2555
#define C1DRB3			0x10606
2615
#define C1DRB3			_MMIO(MCHBAR_MIRROR_BASE + 0x606)
2556
 
2616
 
2557
/* snb MCH registers for reading the DRAM channel configuration */
2617
/* snb MCH registers for reading the DRAM channel configuration */
2558
#define MAD_DIMM_C0			(MCHBAR_MIRROR_BASE_SNB + 0x5004)
2618
#define MAD_DIMM_C0			_MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5004)
Line 2575... Line 2635...
2575
#define   MAD_DIMM_B_SIZE_MASK		(0xff << MAD_DIMM_B_SIZE_SHIFT)
2635
#define   MAD_DIMM_B_SIZE_MASK		(0xff << MAD_DIMM_B_SIZE_SHIFT)
2576
#define   MAD_DIMM_A_SIZE_SHIFT		0
2636
#define   MAD_DIMM_A_SIZE_SHIFT		0
2577
#define   MAD_DIMM_A_SIZE_MASK		(0xff << MAD_DIMM_A_SIZE_SHIFT)
2637
#define   MAD_DIMM_A_SIZE_MASK		(0xff << MAD_DIMM_A_SIZE_SHIFT)
Line 2578... Line 2638...
2578
 
2638
 
2579
/* snb MCH registers for priority tuning */
2639
/* snb MCH registers for priority tuning */
2580
#define MCH_SSKPD			(MCHBAR_MIRROR_BASE_SNB + 0x5d10)
2640
#define MCH_SSKPD			_MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5d10)
2581
#define   MCH_SSKPD_WM0_MASK		0x3f
2641
#define   MCH_SSKPD_WM0_MASK		0x3f
Line 2582... Line 2642...
2582
#define   MCH_SSKPD_WM0_VAL		0xc
2642
#define   MCH_SSKPD_WM0_VAL		0xc
Line 2583... Line 2643...
2583
 
2643
 
2584
#define MCH_SECP_NRG_STTS		(MCHBAR_MIRROR_BASE_SNB + 0x592c)
2644
#define MCH_SECP_NRG_STTS		_MMIO(MCHBAR_MIRROR_BASE_SNB + 0x592c)
2585
 
2645
 
2586
/* Clocking configuration register */
2646
/* Clocking configuration register */
2587
#define CLKCFG			0x10c00
2647
#define CLKCFG			_MMIO(MCHBAR_MIRROR_BASE + 0xc00)
2588
#define CLKCFG_FSB_400					(5 << 0)	/* hrawclk 100 */
2648
#define CLKCFG_FSB_400					(5 << 0)	/* hrawclk 100 */
2589
#define CLKCFG_FSB_533					(1 << 0)	/* hrawclk 133 */
2649
#define CLKCFG_FSB_533					(1 << 0)	/* hrawclk 133 */
Line 2598... Line 2658...
2598
#define CLKCFG_MEM_533					(1 << 4)
2658
#define CLKCFG_MEM_533					(1 << 4)
2599
#define CLKCFG_MEM_667					(2 << 4)
2659
#define CLKCFG_MEM_667					(2 << 4)
2600
#define CLKCFG_MEM_800					(3 << 4)
2660
#define CLKCFG_MEM_800					(3 << 4)
2601
#define CLKCFG_MEM_MASK					(7 << 4)
2661
#define CLKCFG_MEM_MASK					(7 << 4)
Line 2602... Line 2662...
2602
 
2662
 
2603
#define HPLLVCO                 (MCHBAR_MIRROR_BASE + 0xc38)
2663
#define HPLLVCO                 _MMIO(MCHBAR_MIRROR_BASE + 0xc38)
Line 2604... Line 2664...
2604
#define HPLLVCO_MOBILE          (MCHBAR_MIRROR_BASE + 0xc0f)
2664
#define HPLLVCO_MOBILE          _MMIO(MCHBAR_MIRROR_BASE + 0xc0f)
2605
 
2665
 
2606
#define TSC1			0x11001
2666
#define TSC1			_MMIO(0x11001)
2607
#define   TSE			(1<<0)
2667
#define   TSE			(1<<0)
2608
#define TR1			0x11006
2668
#define TR1			_MMIO(0x11006)
2609
#define TSFS			0x11020
2669
#define TSFS			_MMIO(0x11020)
2610
#define   TSFS_SLOPE_MASK	0x0000ff00
2670
#define   TSFS_SLOPE_MASK	0x0000ff00
Line 2611... Line 2671...
2611
#define   TSFS_SLOPE_SHIFT	8
2671
#define   TSFS_SLOPE_SHIFT	8
2612
#define   TSFS_INTR_MASK	0x000000ff
2672
#define   TSFS_INTR_MASK	0x000000ff
2613
 
2673
 
2614
#define CRSTANDVID		0x11100
2674
#define CRSTANDVID		_MMIO(0x11100)
2615
#define PXVFREQ(i)		(0x11110 + (i) * 4) /* P[0-15]VIDFREQ (0x1114c) (Ironlake) */
2675
#define PXVFREQ(fstart)		_MMIO(0x11110 + (fstart) * 4)  /* P[0-15]VIDFREQ (0x1114c) (Ironlake) */
2616
#define   PXVFREQ_PX_MASK	0x7f000000
2676
#define   PXVFREQ_PX_MASK	0x7f000000
2617
#define   PXVFREQ_PX_SHIFT	24
2677
#define   PXVFREQ_PX_SHIFT	24
2618
#define VIDFREQ_BASE		0x11110
2678
#define VIDFREQ_BASE		_MMIO(0x11110)
2619
#define VIDFREQ1		0x11110 /* VIDFREQ1-4 (0x1111c) (Cantiga) */
2679
#define VIDFREQ1		_MMIO(0x11110) /* VIDFREQ1-4 (0x1111c) (Cantiga) */
2620
#define VIDFREQ2		0x11114
2680
#define VIDFREQ2		_MMIO(0x11114)
2621
#define VIDFREQ3		0x11118
2681
#define VIDFREQ3		_MMIO(0x11118)
2622
#define VIDFREQ4		0x1111c
2682
#define VIDFREQ4		_MMIO(0x1111c)
2623
#define   VIDFREQ_P0_MASK	0x1f000000
2683
#define   VIDFREQ_P0_MASK	0x1f000000
2624
#define   VIDFREQ_P0_SHIFT	24
2684
#define   VIDFREQ_P0_SHIFT	24
Line 2629... Line 2689...
2629
#define   VIDFREQ_P1_MASK	0x00001f00
2689
#define   VIDFREQ_P1_MASK	0x00001f00
2630
#define   VIDFREQ_P1_SHIFT	8
2690
#define   VIDFREQ_P1_SHIFT	8
2631
#define   VIDFREQ_P1_CSCLK_MASK	0x000000f0
2691
#define   VIDFREQ_P1_CSCLK_MASK	0x000000f0
2632
#define   VIDFREQ_P1_CSCLK_SHIFT 4
2692
#define   VIDFREQ_P1_CSCLK_SHIFT 4
2633
#define   VIDFREQ_P1_CRCLK_MASK	0x0000000f
2693
#define   VIDFREQ_P1_CRCLK_MASK	0x0000000f
2634
#define INTTOEXT_BASE_ILK	0x11300
2694
#define INTTOEXT_BASE_ILK	_MMIO(0x11300)
2635
#define INTTOEXT_BASE		0x11120 /* INTTOEXT1-8 (0x1113c) */
2695
#define INTTOEXT_BASE		_MMIO(0x11120) /* INTTOEXT1-8 (0x1113c) */
2636
#define   INTTOEXT_MAP3_SHIFT	24
2696
#define   INTTOEXT_MAP3_SHIFT	24
2637
#define   INTTOEXT_MAP3_MASK	(0x1f << INTTOEXT_MAP3_SHIFT)
2697
#define   INTTOEXT_MAP3_MASK	(0x1f << INTTOEXT_MAP3_SHIFT)
2638
#define   INTTOEXT_MAP2_SHIFT	16
2698
#define   INTTOEXT_MAP2_SHIFT	16
2639
#define   INTTOEXT_MAP2_MASK	(0x1f << INTTOEXT_MAP2_SHIFT)
2699
#define   INTTOEXT_MAP2_MASK	(0x1f << INTTOEXT_MAP2_SHIFT)
2640
#define   INTTOEXT_MAP1_SHIFT	8
2700
#define   INTTOEXT_MAP1_SHIFT	8
2641
#define   INTTOEXT_MAP1_MASK	(0x1f << INTTOEXT_MAP1_SHIFT)
2701
#define   INTTOEXT_MAP1_MASK	(0x1f << INTTOEXT_MAP1_SHIFT)
2642
#define   INTTOEXT_MAP0_SHIFT	0
2702
#define   INTTOEXT_MAP0_SHIFT	0
2643
#define   INTTOEXT_MAP0_MASK	(0x1f << INTTOEXT_MAP0_SHIFT)
2703
#define   INTTOEXT_MAP0_MASK	(0x1f << INTTOEXT_MAP0_SHIFT)
2644
#define MEMSWCTL		0x11170 /* Ironlake only */
2704
#define MEMSWCTL		_MMIO(0x11170) /* Ironlake only */
2645
#define   MEMCTL_CMD_MASK	0xe000
2705
#define   MEMCTL_CMD_MASK	0xe000
2646
#define   MEMCTL_CMD_SHIFT	13
2706
#define   MEMCTL_CMD_SHIFT	13
2647
#define   MEMCTL_CMD_RCLK_OFF	0
2707
#define   MEMCTL_CMD_RCLK_OFF	0
2648
#define   MEMCTL_CMD_RCLK_ON	1
2708
#define   MEMCTL_CMD_RCLK_ON	1
2649
#define   MEMCTL_CMD_CHFREQ	2
2709
#define   MEMCTL_CMD_CHFREQ	2
Line 2654... Line 2714...
2654
					   when command complete */
2714
					   when command complete */
2655
#define   MEMCTL_FREQ_MASK	0x0f00 /* jitter, from 0-15 */
2715
#define   MEMCTL_FREQ_MASK	0x0f00 /* jitter, from 0-15 */
2656
#define   MEMCTL_FREQ_SHIFT	8
2716
#define   MEMCTL_FREQ_SHIFT	8
2657
#define   MEMCTL_SFCAVM		(1<<7)
2717
#define   MEMCTL_SFCAVM		(1<<7)
2658
#define   MEMCTL_TGT_VID_MASK	0x007f
2718
#define   MEMCTL_TGT_VID_MASK	0x007f
2659
#define MEMIHYST		0x1117c
2719
#define MEMIHYST		_MMIO(0x1117c)
2660
#define MEMINTREN		0x11180 /* 16 bits */
2720
#define MEMINTREN		_MMIO(0x11180) /* 16 bits */
2661
#define   MEMINT_RSEXIT_EN	(1<<8)
2721
#define   MEMINT_RSEXIT_EN	(1<<8)
2662
#define   MEMINT_CX_SUPR_EN	(1<<7)
2722
#define   MEMINT_CX_SUPR_EN	(1<<7)
2663
#define   MEMINT_CONT_BUSY_EN	(1<<6)
2723
#define   MEMINT_CONT_BUSY_EN	(1<<6)
2664
#define   MEMINT_AVG_BUSY_EN	(1<<5)
2724
#define   MEMINT_AVG_BUSY_EN	(1<<5)
2665
#define   MEMINT_EVAL_CHG_EN	(1<<4)
2725
#define   MEMINT_EVAL_CHG_EN	(1<<4)
2666
#define   MEMINT_MON_IDLE_EN	(1<<3)
2726
#define   MEMINT_MON_IDLE_EN	(1<<3)
2667
#define   MEMINT_UP_EVAL_EN	(1<<2)
2727
#define   MEMINT_UP_EVAL_EN	(1<<2)
2668
#define   MEMINT_DOWN_EVAL_EN	(1<<1)
2728
#define   MEMINT_DOWN_EVAL_EN	(1<<1)
2669
#define   MEMINT_SW_CMD_EN	(1<<0)
2729
#define   MEMINT_SW_CMD_EN	(1<<0)
2670
#define MEMINTRSTR		0x11182 /* 16 bits */
2730
#define MEMINTRSTR		_MMIO(0x11182) /* 16 bits */
2671
#define   MEM_RSEXIT_MASK	0xc000
2731
#define   MEM_RSEXIT_MASK	0xc000
2672
#define   MEM_RSEXIT_SHIFT	14
2732
#define   MEM_RSEXIT_SHIFT	14
2673
#define   MEM_CONT_BUSY_MASK	0x3000
2733
#define   MEM_CONT_BUSY_MASK	0x3000
2674
#define   MEM_CONT_BUSY_SHIFT	12
2734
#define   MEM_CONT_BUSY_SHIFT	12
2675
#define   MEM_AVG_BUSY_MASK	0x0c00
2735
#define   MEM_AVG_BUSY_MASK	0x0c00
Line 2685... Line 2745...
2685
#define   MEM_SW_CMD_MASK	0x0003
2745
#define   MEM_SW_CMD_MASK	0x0003
2686
#define   MEM_INT_STEER_GFX	0
2746
#define   MEM_INT_STEER_GFX	0
2687
#define   MEM_INT_STEER_CMR	1
2747
#define   MEM_INT_STEER_CMR	1
2688
#define   MEM_INT_STEER_SMI	2
2748
#define   MEM_INT_STEER_SMI	2
2689
#define   MEM_INT_STEER_SCI	3
2749
#define   MEM_INT_STEER_SCI	3
2690
#define MEMINTRSTS		0x11184
2750
#define MEMINTRSTS		_MMIO(0x11184)
2691
#define   MEMINT_RSEXIT		(1<<7)
2751
#define   MEMINT_RSEXIT		(1<<7)
2692
#define   MEMINT_CONT_BUSY	(1<<6)
2752
#define   MEMINT_CONT_BUSY	(1<<6)
2693
#define   MEMINT_AVG_BUSY	(1<<5)
2753
#define   MEMINT_AVG_BUSY	(1<<5)
2694
#define   MEMINT_EVAL_CHG	(1<<4)
2754
#define   MEMINT_EVAL_CHG	(1<<4)
2695
#define   MEMINT_MON_IDLE	(1<<3)
2755
#define   MEMINT_MON_IDLE	(1<<3)
2696
#define   MEMINT_UP_EVAL	(1<<2)
2756
#define   MEMINT_UP_EVAL	(1<<2)
2697
#define   MEMINT_DOWN_EVAL	(1<<1)
2757
#define   MEMINT_DOWN_EVAL	(1<<1)
2698
#define   MEMINT_SW_CMD		(1<<0)
2758
#define   MEMINT_SW_CMD		(1<<0)
2699
#define MEMMODECTL		0x11190
2759
#define MEMMODECTL		_MMIO(0x11190)
2700
#define   MEMMODE_BOOST_EN	(1<<31)
2760
#define   MEMMODE_BOOST_EN	(1<<31)
2701
#define   MEMMODE_BOOST_FREQ_MASK 0x0f000000 /* jitter for boost, 0-15 */
2761
#define   MEMMODE_BOOST_FREQ_MASK 0x0f000000 /* jitter for boost, 0-15 */
2702
#define   MEMMODE_BOOST_FREQ_SHIFT 24
2762
#define   MEMMODE_BOOST_FREQ_SHIFT 24
2703
#define   MEMMODE_IDLE_MODE_MASK 0x00030000
2763
#define   MEMMODE_IDLE_MODE_MASK 0x00030000
2704
#define   MEMMODE_IDLE_MODE_SHIFT 16
2764
#define   MEMMODE_IDLE_MODE_SHIFT 16
Line 2711... Line 2771...
2711
#define   MEMMODE_FSTART_MASK	0x00000f00 /* starting jitter, 0-15 */
2771
#define   MEMMODE_FSTART_MASK	0x00000f00 /* starting jitter, 0-15 */
2712
#define   MEMMODE_FSTART_SHIFT	8
2772
#define   MEMMODE_FSTART_SHIFT	8
2713
#define   MEMMODE_FMAX_MASK	0x000000f0 /* max jitter, 0-15 */
2773
#define   MEMMODE_FMAX_MASK	0x000000f0 /* max jitter, 0-15 */
2714
#define   MEMMODE_FMAX_SHIFT	4
2774
#define   MEMMODE_FMAX_SHIFT	4
2715
#define   MEMMODE_FMIN_MASK	0x0000000f /* min jitter, 0-15 */
2775
#define   MEMMODE_FMIN_MASK	0x0000000f /* min jitter, 0-15 */
2716
#define RCBMAXAVG		0x1119c
2776
#define RCBMAXAVG		_MMIO(0x1119c)
2717
#define MEMSWCTL2		0x1119e /* Cantiga only */
2777
#define MEMSWCTL2		_MMIO(0x1119e) /* Cantiga only */
2718
#define   SWMEMCMD_RENDER_OFF	(0 << 13)
2778
#define   SWMEMCMD_RENDER_OFF	(0 << 13)
2719
#define   SWMEMCMD_RENDER_ON	(1 << 13)
2779
#define   SWMEMCMD_RENDER_ON	(1 << 13)
2720
#define   SWMEMCMD_SWFREQ	(2 << 13)
2780
#define   SWMEMCMD_SWFREQ	(2 << 13)
2721
#define   SWMEMCMD_TARVID	(3 << 13)
2781
#define   SWMEMCMD_TARVID	(3 << 13)
2722
#define   SWMEMCMD_VRM_OFF	(4 << 13)
2782
#define   SWMEMCMD_VRM_OFF	(4 << 13)
Line 2724... Line 2784...
2724
#define   CMDSTS		(1<<12)
2784
#define   CMDSTS		(1<<12)
2725
#define   SFCAVM		(1<<11)
2785
#define   SFCAVM		(1<<11)
2726
#define   SWFREQ_MASK		0x0380 /* P0-7 */
2786
#define   SWFREQ_MASK		0x0380 /* P0-7 */
2727
#define   SWFREQ_SHIFT		7
2787
#define   SWFREQ_SHIFT		7
2728
#define   TARVID_MASK		0x001f
2788
#define   TARVID_MASK		0x001f
2729
#define MEMSTAT_CTG		0x111a0
2789
#define MEMSTAT_CTG		_MMIO(0x111a0)
2730
#define RCBMINAVG		0x111a0
2790
#define RCBMINAVG		_MMIO(0x111a0)
2731
#define RCUPEI			0x111b0
2791
#define RCUPEI			_MMIO(0x111b0)
2732
#define RCDNEI			0x111b4
2792
#define RCDNEI			_MMIO(0x111b4)
2733
#define RSTDBYCTL		0x111b8
2793
#define RSTDBYCTL		_MMIO(0x111b8)
2734
#define   RS1EN			(1<<31)
2794
#define   RS1EN			(1<<31)
2735
#define   RS2EN			(1<<30)
2795
#define   RS2EN			(1<<30)
2736
#define   RS3EN			(1<<29)
2796
#define   RS3EN			(1<<29)
2737
#define   D3RS3EN		(1<<28) /* Display D3 imlies RS3 */
2797
#define   D3RS3EN		(1<<28) /* Display D3 imlies RS3 */
2738
#define   SWPROMORSX		(1<<27) /* RSx promotion timers ignored */
2798
#define   SWPROMORSX		(1<<27) /* RSx promotion timers ignored */
Line 2772... Line 2832...
2772
#define   RS_CSTATE_C36_RS1_C7_RS2 (1<<4)
2832
#define   RS_CSTATE_C36_RS1_C7_RS2 (1<<4)
2773
#define   RS_CSTATE_RSVD	(2<<4)
2833
#define   RS_CSTATE_RSVD	(2<<4)
2774
#define   RS_CSTATE_C367_RS2	(3<<4)
2834
#define   RS_CSTATE_C367_RS2	(3<<4)
2775
#define   REDSAVES		(1<<3) /* no context save if was idle during rs0 */
2835
#define   REDSAVES		(1<<3) /* no context save if was idle during rs0 */
2776
#define   REDRESTORES		(1<<2) /* no restore if was idle during rs0 */
2836
#define   REDRESTORES		(1<<2) /* no restore if was idle during rs0 */
2777
#define VIDCTL			0x111c0
2837
#define VIDCTL			_MMIO(0x111c0)
2778
#define VIDSTS			0x111c8
2838
#define VIDSTS			_MMIO(0x111c8)
2779
#define VIDSTART		0x111cc /* 8 bits */
2839
#define VIDSTART		_MMIO(0x111cc) /* 8 bits */
2780
#define MEMSTAT_ILK			0x111f8
2840
#define MEMSTAT_ILK		_MMIO(0x111f8)
2781
#define   MEMSTAT_VID_MASK	0x7f00
2841
#define   MEMSTAT_VID_MASK	0x7f00
2782
#define   MEMSTAT_VID_SHIFT	8
2842
#define   MEMSTAT_VID_SHIFT	8
2783
#define   MEMSTAT_PSTATE_MASK	0x00f8
2843
#define   MEMSTAT_PSTATE_MASK	0x00f8
2784
#define   MEMSTAT_PSTATE_SHIFT  3
2844
#define   MEMSTAT_PSTATE_SHIFT  3
2785
#define   MEMSTAT_MON_ACTV	(1<<2)
2845
#define   MEMSTAT_MON_ACTV	(1<<2)
2786
#define   MEMSTAT_SRC_CTL_MASK	0x0003
2846
#define   MEMSTAT_SRC_CTL_MASK	0x0003
2787
#define   MEMSTAT_SRC_CTL_CORE	0
2847
#define   MEMSTAT_SRC_CTL_CORE	0
2788
#define   MEMSTAT_SRC_CTL_TRB	1
2848
#define   MEMSTAT_SRC_CTL_TRB	1
2789
#define   MEMSTAT_SRC_CTL_THM	2
2849
#define   MEMSTAT_SRC_CTL_THM	2
2790
#define   MEMSTAT_SRC_CTL_STDBY 3
2850
#define   MEMSTAT_SRC_CTL_STDBY 3
2791
#define RCPREVBSYTUPAVG		0x113b8
2851
#define RCPREVBSYTUPAVG		_MMIO(0x113b8)
2792
#define RCPREVBSYTDNAVG		0x113bc
2852
#define RCPREVBSYTDNAVG		_MMIO(0x113bc)
2793
#define PMMISC			0x11214
2853
#define PMMISC			_MMIO(0x11214)
2794
#define   MCPPCE_EN		(1<<0) /* enable PM_MSG from PCH->MPC */
2854
#define   MCPPCE_EN		(1<<0) /* enable PM_MSG from PCH->MPC */
2795
#define SDEW			0x1124c
2855
#define SDEW			_MMIO(0x1124c)
2796
#define CSIEW0			0x11250
2856
#define CSIEW0			_MMIO(0x11250)
2797
#define CSIEW1			0x11254
2857
#define CSIEW1			_MMIO(0x11254)
2798
#define CSIEW2			0x11258
2858
#define CSIEW2			_MMIO(0x11258)
2799
#define PEW(i)			(0x1125c + (i) * 4) /* 5 registers */
2859
#define PEW(i)			_MMIO(0x1125c + (i) * 4) /* 5 registers */
2800
#define DEW(i)			(0x11270 + (i) * 4) /* 3 registers */
2860
#define DEW(i)			_MMIO(0x11270 + (i) * 4) /* 3 registers */
2801
#define MCHAFE			0x112c0
2861
#define MCHAFE			_MMIO(0x112c0)
2802
#define CSIEC			0x112e0
2862
#define CSIEC			_MMIO(0x112e0)
2803
#define DMIEC			0x112e4
2863
#define DMIEC			_MMIO(0x112e4)
2804
#define DDREC			0x112e8
2864
#define DDREC			_MMIO(0x112e8)
2805
#define PEG0EC			0x112ec
2865
#define PEG0EC			_MMIO(0x112ec)
2806
#define PEG1EC			0x112f0
2866
#define PEG1EC			_MMIO(0x112f0)
2807
#define GFXEC			0x112f4
2867
#define GFXEC			_MMIO(0x112f4)
2808
#define RPPREVBSYTUPAVG		0x113b8
2868
#define RPPREVBSYTUPAVG		_MMIO(0x113b8)
2809
#define RPPREVBSYTDNAVG		0x113bc
2869
#define RPPREVBSYTDNAVG		_MMIO(0x113bc)
2810
#define ECR			0x11600
2870
#define ECR			_MMIO(0x11600)
2811
#define   ECR_GPFE		(1<<31)
2871
#define   ECR_GPFE		(1<<31)
2812
#define   ECR_IMONE		(1<<30)
2872
#define   ECR_IMONE		(1<<30)
2813
#define   ECR_CAP_MASK		0x0000001f /* Event range, 0-31 */
2873
#define   ECR_CAP_MASK		0x0000001f /* Event range, 0-31 */
2814
#define OGW0			0x11608
2874
#define OGW0			_MMIO(0x11608)
2815
#define OGW1			0x1160c
2875
#define OGW1			_MMIO(0x1160c)
2816
#define EG0			0x11610
2876
#define EG0			_MMIO(0x11610)
2817
#define EG1			0x11614
2877
#define EG1			_MMIO(0x11614)
2818
#define EG2			0x11618
2878
#define EG2			_MMIO(0x11618)
2819
#define EG3			0x1161c
2879
#define EG3			_MMIO(0x1161c)
2820
#define EG4			0x11620
2880
#define EG4			_MMIO(0x11620)
2821
#define EG5			0x11624
2881
#define EG5			_MMIO(0x11624)
2822
#define EG6			0x11628
2882
#define EG6			_MMIO(0x11628)
2823
#define EG7			0x1162c
2883
#define EG7			_MMIO(0x1162c)
2824
#define PXW(i)			(0x11664 + (i) * 4) /* 4 registers */
2884
#define PXW(i)			_MMIO(0x11664 + (i) * 4) /* 4 registers */
2825
#define PXWL(i)			(0x11680 + (i) * 4) /* 8 registers */
2885
#define PXWL(i)			_MMIO(0x11680 + (i) * 8) /* 8 registers */
2826
#define LCFUSE02		0x116c0
2886
#define LCFUSE02		_MMIO(0x116c0)
2827
#define   LCFUSE_HIV_MASK	0x000000ff
2887
#define   LCFUSE_HIV_MASK	0x000000ff
2828
#define CSIPLL0			0x12c10
2888
#define CSIPLL0			_MMIO(0x12c10)
2829
#define DDRMPLL1		0X12c20
2889
#define DDRMPLL1		_MMIO(0X12c20)
2830
#define PEG_BAND_GAP_DATA	0x14d68
2890
#define PEG_BAND_GAP_DATA	_MMIO(0x14d68)
Line 2831... Line 2891...
2831
 
2891
 
2832
#define GEN6_GT_THREAD_STATUS_REG 0x13805c
2892
#define GEN6_GT_THREAD_STATUS_REG _MMIO(0x13805c)
Line 2833... Line 2893...
2833
#define GEN6_GT_THREAD_STATUS_CORE_MASK 0x7
2893
#define GEN6_GT_THREAD_STATUS_CORE_MASK 0x7
2834
 
2894
 
2835
#define GEN6_GT_PERF_STATUS	(MCHBAR_MIRROR_BASE_SNB + 0x5948)
2895
#define GEN6_GT_PERF_STATUS	_MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5948)
2836
#define BXT_GT_PERF_STATUS      (MCHBAR_MIRROR_BASE_SNB + 0x7070)
2896
#define BXT_GT_PERF_STATUS      _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x7070)
2837
#define GEN6_RP_STATE_LIMITS	(MCHBAR_MIRROR_BASE_SNB + 0x5994)
2897
#define GEN6_RP_STATE_LIMITS	_MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5994)
Line 2838... Line 2898...
2838
#define GEN6_RP_STATE_CAP	(MCHBAR_MIRROR_BASE_SNB + 0x5998)
2898
#define GEN6_RP_STATE_CAP	_MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5998)
2839
#define BXT_RP_STATE_CAP        0x138170
2899
#define BXT_RP_STATE_CAP        _MMIO(0x138170)
2840
 
2900
 
2841
/*
2901
/*
Line 2855... Line 2915...
2855
				INTERVAL_1_28_US(us))
2915
				INTERVAL_1_28_US(us))
Line 2856... Line 2916...
2856
 
2916
 
2857
/*
2917
/*
2858
 * Logical Context regs
2918
 * Logical Context regs
2859
 */
2919
 */
2860
#define CCID			0x2180
2920
#define CCID			_MMIO(0x2180)
2861
#define   CCID_EN		(1<<0)
2921
#define   CCID_EN		(1<<0)
2862
/*
2922
/*
2863
 * Notes on SNB/IVB/VLV context size:
2923
 * Notes on SNB/IVB/VLV context size:
2864
 * - Power context is saved elsewhere (LLC or stolen)
2924
 * - Power context is saved elsewhere (LLC or stolen)
Line 2870... Line 2930...
2870
 *   based on empirical testing that's just nonsense.
2930
 *   based on empirical testing that's just nonsense.
2871
 * - Pipelined/VF state is saved on SNB/IVB respectively
2931
 * - Pipelined/VF state is saved on SNB/IVB respectively
2872
 * - GT1 size just indicates how much of render context
2932
 * - GT1 size just indicates how much of render context
2873
 *   doesn't need saving on GT1
2933
 *   doesn't need saving on GT1
2874
 */
2934
 */
2875
#define CXT_SIZE		0x21a0
2935
#define CXT_SIZE		_MMIO(0x21a0)
2876
#define GEN6_CXT_POWER_SIZE(cxt_reg)	(((cxt_reg) >> 24) & 0x3f)
2936
#define GEN6_CXT_POWER_SIZE(cxt_reg)	(((cxt_reg) >> 24) & 0x3f)
2877
#define GEN6_CXT_RING_SIZE(cxt_reg)	(((cxt_reg) >> 18) & 0x3f)
2937
#define GEN6_CXT_RING_SIZE(cxt_reg)	(((cxt_reg) >> 18) & 0x3f)
2878
#define GEN6_CXT_RENDER_SIZE(cxt_reg)	(((cxt_reg) >> 12) & 0x3f)
2938
#define GEN6_CXT_RENDER_SIZE(cxt_reg)	(((cxt_reg) >> 12) & 0x3f)
2879
#define GEN6_CXT_EXTENDED_SIZE(cxt_reg)	(((cxt_reg) >> 6) & 0x3f)
2939
#define GEN6_CXT_EXTENDED_SIZE(cxt_reg)	(((cxt_reg) >> 6) & 0x3f)
2880
#define GEN6_CXT_PIPELINE_SIZE(cxt_reg)	(((cxt_reg) >> 0) & 0x3f)
2940
#define GEN6_CXT_PIPELINE_SIZE(cxt_reg)	(((cxt_reg) >> 0) & 0x3f)
2881
#define GEN6_CXT_TOTAL_SIZE(cxt_reg)	(GEN6_CXT_RING_SIZE(cxt_reg) + \
2941
#define GEN6_CXT_TOTAL_SIZE(cxt_reg)	(GEN6_CXT_RING_SIZE(cxt_reg) + \
2882
					GEN6_CXT_EXTENDED_SIZE(cxt_reg) + \
2942
					GEN6_CXT_EXTENDED_SIZE(cxt_reg) + \
2883
					GEN6_CXT_PIPELINE_SIZE(cxt_reg))
2943
					GEN6_CXT_PIPELINE_SIZE(cxt_reg))
2884
#define GEN7_CXT_SIZE		0x21a8
2944
#define GEN7_CXT_SIZE		_MMIO(0x21a8)
2885
#define GEN7_CXT_POWER_SIZE(ctx_reg)	(((ctx_reg) >> 25) & 0x7f)
2945
#define GEN7_CXT_POWER_SIZE(ctx_reg)	(((ctx_reg) >> 25) & 0x7f)
2886
#define GEN7_CXT_RING_SIZE(ctx_reg)	(((ctx_reg) >> 22) & 0x7)
2946
#define GEN7_CXT_RING_SIZE(ctx_reg)	(((ctx_reg) >> 22) & 0x7)
2887
#define GEN7_CXT_RENDER_SIZE(ctx_reg)	(((ctx_reg) >> 16) & 0x3f)
2947
#define GEN7_CXT_RENDER_SIZE(ctx_reg)	(((ctx_reg) >> 16) & 0x3f)
2888
#define GEN7_CXT_EXTENDED_SIZE(ctx_reg)	(((ctx_reg) >> 9) & 0x7f)
2948
#define GEN7_CXT_EXTENDED_SIZE(ctx_reg)	(((ctx_reg) >> 9) & 0x7f)
2889
#define GEN7_CXT_GT1_SIZE(ctx_reg)	(((ctx_reg) >> 6) & 0x7)
2949
#define GEN7_CXT_GT1_SIZE(ctx_reg)	(((ctx_reg) >> 6) & 0x7)
Line 2899... Line 2959...
2899
 */
2959
 */
2900
#define HSW_CXT_TOTAL_SIZE		(17 * PAGE_SIZE)
2960
#define HSW_CXT_TOTAL_SIZE		(17 * PAGE_SIZE)
2901
/* Same as Haswell, but 72064 bytes now. */
2961
/* Same as Haswell, but 72064 bytes now. */
2902
#define GEN8_CXT_TOTAL_SIZE		(18 * PAGE_SIZE)
2962
#define GEN8_CXT_TOTAL_SIZE		(18 * PAGE_SIZE)
Line 2903... Line 2963...
2903
 
2963
 
2904
#define CHV_CLK_CTL1			0x101100
2964
#define CHV_CLK_CTL1			_MMIO(0x101100)
2905
#define VLV_CLK_CTL2			0x101104
2965
#define VLV_CLK_CTL2			_MMIO(0x101104)
Line 2906... Line 2966...
2906
#define   CLK_CTL2_CZCOUNT_30NS_SHIFT	28
2966
#define   CLK_CTL2_CZCOUNT_30NS_SHIFT	28
2907
 
2967
 
2908
/*
2968
/*
Line 2909... Line 2969...
2909
 * Overlay regs
2969
 * Overlay regs
2910
 */
2970
 */
2911
 
2971
 
2912
#define OVADD			0x30000
2972
#define OVADD			_MMIO(0x30000)
2913
#define DOVSTA			0x30008
2973
#define DOVSTA			_MMIO(0x30008)
2914
#define OC_BUF			(0x3<<20)
2974
#define OC_BUF			(0x3<<20)
2915
#define OGAMC5			0x30010
2975
#define OGAMC5			_MMIO(0x30010)
2916
#define OGAMC4			0x30014
2976
#define OGAMC4			_MMIO(0x30014)
2917
#define OGAMC3			0x30018
2977
#define OGAMC3			_MMIO(0x30018)
-
 
2978
#define OGAMC2			_MMIO(0x3001c)
-
 
2979
#define OGAMC1			_MMIO(0x30020)
-
 
2980
#define OGAMC0			_MMIO(0x30024)
-
 
2981
 
-
 
2982
/*
-
 
2983
 * GEN9 clock gating regs
-
 
2984
 */
Line 2918... Line 2985...
2918
#define OGAMC2			0x3001c
2985
#define GEN9_CLKGATE_DIS_0		_MMIO(0x46530)
2919
#define OGAMC1			0x30020
2986
#define   PWM2_GATING_DIS		(1 << 14)
2920
#define OGAMC0			0x30024
2987
#define   PWM1_GATING_DIS		(1 << 13)
Line 2975... Line 3042...
2975
#define _PIPE_CRC_RES_2_B_IVB		0x61068
3042
#define _PIPE_CRC_RES_2_B_IVB		0x61068
2976
#define _PIPE_CRC_RES_3_B_IVB		0x6106c
3043
#define _PIPE_CRC_RES_3_B_IVB		0x6106c
2977
#define _PIPE_CRC_RES_4_B_IVB		0x61070
3044
#define _PIPE_CRC_RES_4_B_IVB		0x61070
2978
#define _PIPE_CRC_RES_5_B_IVB		0x61074
3045
#define _PIPE_CRC_RES_5_B_IVB		0x61074
Line 2979... Line 3046...
2979
 
3046
 
2980
#define PIPE_CRC_CTL(pipe) _TRANSCODER2(pipe, _PIPE_CRC_CTL_A)
-
 
2981
#define PIPE_CRC_RES_1_IVB(pipe)	\
3047
#define PIPE_CRC_CTL(pipe)		_MMIO_TRANS2(pipe, _PIPE_CRC_CTL_A)
2982
	_TRANSCODER2(pipe, _PIPE_CRC_RES_1_A_IVB)
-
 
2983
#define PIPE_CRC_RES_2_IVB(pipe)	\
3048
#define PIPE_CRC_RES_1_IVB(pipe)	_MMIO_TRANS2(pipe, _PIPE_CRC_RES_1_A_IVB)
2984
	_TRANSCODER2(pipe, _PIPE_CRC_RES_2_A_IVB)
-
 
2985
#define PIPE_CRC_RES_3_IVB(pipe)	\
3049
#define PIPE_CRC_RES_2_IVB(pipe)	_MMIO_TRANS2(pipe, _PIPE_CRC_RES_2_A_IVB)
2986
	_TRANSCODER2(pipe, _PIPE_CRC_RES_3_A_IVB)
-
 
2987
#define PIPE_CRC_RES_4_IVB(pipe)	\
3050
#define PIPE_CRC_RES_3_IVB(pipe)	_MMIO_TRANS2(pipe, _PIPE_CRC_RES_3_A_IVB)
2988
	_TRANSCODER2(pipe, _PIPE_CRC_RES_4_A_IVB)
-
 
2989
#define PIPE_CRC_RES_5_IVB(pipe)	\
3051
#define PIPE_CRC_RES_4_IVB(pipe)	_MMIO_TRANS2(pipe, _PIPE_CRC_RES_4_A_IVB)
2990
	_TRANSCODER2(pipe, _PIPE_CRC_RES_5_A_IVB)
3052
#define PIPE_CRC_RES_5_IVB(pipe)	_MMIO_TRANS2(pipe, _PIPE_CRC_RES_5_A_IVB)
2991
 
-
 
2992
#define PIPE_CRC_RES_RED(pipe) \
3053
 
2993
	_TRANSCODER2(pipe, _PIPE_CRC_RES_RED_A)
-
 
2994
#define PIPE_CRC_RES_GREEN(pipe) \
3054
#define PIPE_CRC_RES_RED(pipe)		_MMIO_TRANS2(pipe, _PIPE_CRC_RES_RED_A)
2995
	_TRANSCODER2(pipe, _PIPE_CRC_RES_GREEN_A)
-
 
2996
#define PIPE_CRC_RES_BLUE(pipe) \
3055
#define PIPE_CRC_RES_GREEN(pipe)	_MMIO_TRANS2(pipe, _PIPE_CRC_RES_GREEN_A)
2997
	_TRANSCODER2(pipe, _PIPE_CRC_RES_BLUE_A)
-
 
2998
#define PIPE_CRC_RES_RES1_I915(pipe) \
3056
#define PIPE_CRC_RES_BLUE(pipe)		_MMIO_TRANS2(pipe, _PIPE_CRC_RES_BLUE_A)
2999
	_TRANSCODER2(pipe, _PIPE_CRC_RES_RES1_A_I915)
-
 
3000
#define PIPE_CRC_RES_RES2_G4X(pipe) \
3057
#define PIPE_CRC_RES_RES1_I915(pipe)	_MMIO_TRANS2(pipe, _PIPE_CRC_RES_RES1_A_I915)
Line 3001... Line 3058...
3001
	_TRANSCODER2(pipe, _PIPE_CRC_RES_RES2_A_G4X)
3058
#define PIPE_CRC_RES_RES2_G4X(pipe)	_MMIO_TRANS2(pipe, _PIPE_CRC_RES_RES2_A_G4X)
3002
 
3059
 
3003
/* Pipe A timing regs */
3060
/* Pipe A timing regs */
3004
#define _HTOTAL_A	0x60000
3061
#define _HTOTAL_A	0x60000
Line 3028... Line 3085...
3028
#define TRANSCODER_B_OFFSET 0x61000
3085
#define TRANSCODER_B_OFFSET 0x61000
3029
#define TRANSCODER_C_OFFSET 0x62000
3086
#define TRANSCODER_C_OFFSET 0x62000
3030
#define CHV_TRANSCODER_C_OFFSET 0x63000
3087
#define CHV_TRANSCODER_C_OFFSET 0x63000
3031
#define TRANSCODER_EDP_OFFSET 0x6f000
3088
#define TRANSCODER_EDP_OFFSET 0x6f000
Line 3032... Line 3089...
3032
 
3089
 
3033
#define _TRANSCODER2(pipe, reg) (dev_priv->info.trans_offsets[(pipe)] - \
3090
#define _MMIO_TRANS2(pipe, reg) _MMIO(dev_priv->info.trans_offsets[(pipe)] - \
3034
	dev_priv->info.trans_offsets[TRANSCODER_A] + (reg) + \
3091
	dev_priv->info.trans_offsets[TRANSCODER_A] + (reg) + \
Line 3035... Line 3092...
3035
	dev_priv->info.display_mmio_offset)
3092
	dev_priv->info.display_mmio_offset)
3036
 
3093
 
3037
#define HTOTAL(trans) _TRANSCODER2(trans, _HTOTAL_A)
3094
#define HTOTAL(trans)		_MMIO_TRANS2(trans, _HTOTAL_A)
3038
#define HBLANK(trans) _TRANSCODER2(trans, _HBLANK_A)
3095
#define HBLANK(trans)		_MMIO_TRANS2(trans, _HBLANK_A)
3039
#define HSYNC(trans) _TRANSCODER2(trans, _HSYNC_A)
3096
#define HSYNC(trans)		_MMIO_TRANS2(trans, _HSYNC_A)
3040
#define VTOTAL(trans) _TRANSCODER2(trans, _VTOTAL_A)
3097
#define VTOTAL(trans)		_MMIO_TRANS2(trans, _VTOTAL_A)
3041
#define VBLANK(trans) _TRANSCODER2(trans, _VBLANK_A)
3098
#define VBLANK(trans)		_MMIO_TRANS2(trans, _VBLANK_A)
3042
#define VSYNC(trans) _TRANSCODER2(trans, _VSYNC_A)
3099
#define VSYNC(trans)		_MMIO_TRANS2(trans, _VSYNC_A)
3043
#define BCLRPAT(trans) _TRANSCODER2(trans, _BCLRPAT_A)
3100
#define BCLRPAT(trans)		_MMIO_TRANS2(trans, _BCLRPAT_A)
3044
#define VSYNCSHIFT(trans) _TRANSCODER2(trans, _VSYNCSHIFT_A)
3101
#define VSYNCSHIFT(trans)	_MMIO_TRANS2(trans, _VSYNCSHIFT_A)
Line 3045... Line 3102...
3045
#define PIPESRC(trans) _TRANSCODER2(trans, _PIPEASRC)
3102
#define PIPESRC(trans)		_MMIO_TRANS2(trans, _PIPEASRC)
3046
#define PIPE_MULT(trans) _TRANSCODER2(trans, _PIPE_MULT_A)
3103
#define PIPE_MULT(trans)	_MMIO_TRANS2(trans, _PIPE_MULT_A)
3047
 
3104
 
3048
/* VLV eDP PSR registers */
3105
/* VLV eDP PSR registers */
Line 3057... Line 3114...
3057
#define  VLV_EDP_PSR_ACTIVE_ENTRY		(1<<8)
3114
#define  VLV_EDP_PSR_ACTIVE_ENTRY		(1<<8)
3058
#define  VLV_EDP_PSR_SRC_TRANSMITTER_STATE	(1<<9)
3115
#define  VLV_EDP_PSR_SRC_TRANSMITTER_STATE	(1<<9)
3059
#define  VLV_EDP_PSR_DBL_FRAME			(1<<10)
3116
#define  VLV_EDP_PSR_DBL_FRAME			(1<<10)
3060
#define  VLV_EDP_PSR_FRAME_COUNT_MASK		(0xff<<16)
3117
#define  VLV_EDP_PSR_FRAME_COUNT_MASK		(0xff<<16)
3061
#define  VLV_EDP_PSR_IDLE_FRAME_SHIFT		16
3118
#define  VLV_EDP_PSR_IDLE_FRAME_SHIFT		16
3062
#define VLV_PSRCTL(pipe) _PIPE(pipe, _PSRCTLA, _PSRCTLB)
3119
#define VLV_PSRCTL(pipe)	_MMIO_PIPE(pipe, _PSRCTLA, _PSRCTLB)
Line 3063... Line 3120...
3063
 
3120
 
3064
#define _VSCSDPA			(VLV_DISPLAY_BASE + 0x600a0)
3121
#define _VSCSDPA			(VLV_DISPLAY_BASE + 0x600a0)
3065
#define _VSCSDPB			(VLV_DISPLAY_BASE + 0x610a0)
3122
#define _VSCSDPB			(VLV_DISPLAY_BASE + 0x610a0)
3066
#define  VLV_EDP_PSR_SDP_FREQ_MASK	(3<<30)
3123
#define  VLV_EDP_PSR_SDP_FREQ_MASK	(3<<30)
3067
#define  VLV_EDP_PSR_SDP_FREQ_ONCE	(1<<31)
3124
#define  VLV_EDP_PSR_SDP_FREQ_ONCE	(1<<31)
3068
#define  VLV_EDP_PSR_SDP_FREQ_EVFRAME	(1<<30)
3125
#define  VLV_EDP_PSR_SDP_FREQ_EVFRAME	(1<<30)
Line 3069... Line 3126...
3069
#define VLV_VSCSDP(pipe)	_PIPE(pipe, _VSCSDPA, _VSCSDPB)
3126
#define VLV_VSCSDP(pipe)	_MMIO_PIPE(pipe, _VSCSDPA, _VSCSDPB)
3070
 
3127
 
3071
#define _PSRSTATA			(VLV_DISPLAY_BASE + 0x60094)
3128
#define _PSRSTATA			(VLV_DISPLAY_BASE + 0x60094)
3072
#define _PSRSTATB			(VLV_DISPLAY_BASE + 0x61094)
3129
#define _PSRSTATB			(VLV_DISPLAY_BASE + 0x61094)
Line 3077... Line 3134...
3077
#define  VLV_EDP_PSR_IN_TRANS_TO_ACTIVE	(2<<0)
3134
#define  VLV_EDP_PSR_IN_TRANS_TO_ACTIVE	(2<<0)
3078
#define  VLV_EDP_PSR_ACTIVE_NORFB_UP	(3<<0)
3135
#define  VLV_EDP_PSR_ACTIVE_NORFB_UP	(3<<0)
3079
#define  VLV_EDP_PSR_ACTIVE_SF_UPDATE	(4<<0)
3136
#define  VLV_EDP_PSR_ACTIVE_SF_UPDATE	(4<<0)
3080
#define  VLV_EDP_PSR_EXIT		(5<<0)
3137
#define  VLV_EDP_PSR_EXIT		(5<<0)
3081
#define  VLV_EDP_PSR_IN_TRANS		(1<<7)
3138
#define  VLV_EDP_PSR_IN_TRANS		(1<<7)
3082
#define VLV_PSRSTAT(pipe) _PIPE(pipe, _PSRSTATA, _PSRSTATB)
3139
#define VLV_PSRSTAT(pipe)	_MMIO_PIPE(pipe, _PSRSTATA, _PSRSTATB)
Line 3083... Line 3140...
3083
 
3140
 
-
 
3141
/* HSW+ eDP PSR registers */
3084
/* HSW+ eDP PSR registers */
3142
#define HSW_EDP_PSR_BASE	0x64800
3085
#define EDP_PSR_BASE(dev)                       (IS_HASWELL(dev) ? 0x64800 : 0x6f800)
3143
#define BDW_EDP_PSR_BASE	0x6f800
3086
#define EDP_PSR_CTL(dev)			(EDP_PSR_BASE(dev) + 0)
3144
#define EDP_PSR_CTL				_MMIO(dev_priv->psr_mmio_base + 0)
3087
#define   EDP_PSR_ENABLE			(1<<31)
3145
#define   EDP_PSR_ENABLE			(1<<31)
3088
#define   BDW_PSR_SINGLE_FRAME			(1<<30)
3146
#define   BDW_PSR_SINGLE_FRAME			(1<<30)
3089
#define   EDP_PSR_LINK_STANDBY			(1<<27)
3147
#define   EDP_PSR_LINK_STANDBY			(1<<27)
3090
#define   EDP_PSR_MIN_LINK_ENTRY_TIME_MASK	(3<<25)
3148
#define   EDP_PSR_MIN_LINK_ENTRY_TIME_MASK	(3<<25)
Line 3104... Line 3162...
3104
#define   EDP_PSR_TP1_TIME_100us		(1<<4)
3162
#define   EDP_PSR_TP1_TIME_100us		(1<<4)
3105
#define   EDP_PSR_TP1_TIME_2500us		(2<<4)
3163
#define   EDP_PSR_TP1_TIME_2500us		(2<<4)
3106
#define   EDP_PSR_TP1_TIME_0us			(3<<4)
3164
#define   EDP_PSR_TP1_TIME_0us			(3<<4)
3107
#define   EDP_PSR_IDLE_FRAME_SHIFT		0
3165
#define   EDP_PSR_IDLE_FRAME_SHIFT		0
Line 3108... Line 3166...
3108
 
3166
 
3109
#define EDP_PSR_AUX_CTL(dev)			(EDP_PSR_BASE(dev) + 0x10)
3167
#define EDP_PSR_AUX_CTL				_MMIO(dev_priv->psr_mmio_base + 0x10)
3110
#define EDP_PSR_AUX_DATA1(dev)			(EDP_PSR_BASE(dev) + 0x14)
-
 
3111
#define EDP_PSR_AUX_DATA2(dev)			(EDP_PSR_BASE(dev) + 0x18)
-
 
3112
#define EDP_PSR_AUX_DATA3(dev)			(EDP_PSR_BASE(dev) + 0x1c)
-
 
3113
#define EDP_PSR_AUX_DATA4(dev)			(EDP_PSR_BASE(dev) + 0x20)
-
 
Line 3114... Line 3168...
3114
#define EDP_PSR_AUX_DATA5(dev)			(EDP_PSR_BASE(dev) + 0x24)
3168
#define EDP_PSR_AUX_DATA(i)			_MMIO(dev_priv->psr_mmio_base + 0x14 + (i) * 4) /* 5 registers */
3115
 
3169
 
3116
#define EDP_PSR_STATUS_CTL(dev)			(EDP_PSR_BASE(dev) + 0x40)
3170
#define EDP_PSR_STATUS_CTL			_MMIO(dev_priv->psr_mmio_base + 0x40)
3117
#define   EDP_PSR_STATUS_STATE_MASK		(7<<29)
3171
#define   EDP_PSR_STATUS_STATE_MASK		(7<<29)
3118
#define   EDP_PSR_STATUS_STATE_IDLE		(0<<29)
3172
#define   EDP_PSR_STATUS_STATE_IDLE		(0<<29)
3119
#define   EDP_PSR_STATUS_STATE_SRDONACK		(1<<29)
3173
#define   EDP_PSR_STATUS_STATE_SRDONACK		(1<<29)
Line 3135... Line 3189...
3135
#define   EDP_PSR_STATUS_SENDING_IDLE		(1<<9)
3189
#define   EDP_PSR_STATUS_SENDING_IDLE		(1<<9)
3136
#define   EDP_PSR_STATUS_SENDING_TP2_TP3	(1<<8)
3190
#define   EDP_PSR_STATUS_SENDING_TP2_TP3	(1<<8)
3137
#define   EDP_PSR_STATUS_SENDING_TP1		(1<<4)
3191
#define   EDP_PSR_STATUS_SENDING_TP1		(1<<4)
3138
#define   EDP_PSR_STATUS_IDLE_MASK		0xf
3192
#define   EDP_PSR_STATUS_IDLE_MASK		0xf
Line 3139... Line 3193...
3139
 
3193
 
3140
#define EDP_PSR_PERF_CNT(dev)		(EDP_PSR_BASE(dev) + 0x44)
3194
#define EDP_PSR_PERF_CNT		_MMIO(dev_priv->psr_mmio_base + 0x44)
Line 3141... Line 3195...
3141
#define   EDP_PSR_PERF_CNT_MASK		0xffffff
3195
#define   EDP_PSR_PERF_CNT_MASK		0xffffff
3142
 
3196
 
3143
#define EDP_PSR_DEBUG_CTL(dev)		(EDP_PSR_BASE(dev) + 0x60)
3197
#define EDP_PSR_DEBUG_CTL		_MMIO(dev_priv->psr_mmio_base + 0x60)
3144
#define   EDP_PSR_DEBUG_MASK_LPSP	(1<<27)
3198
#define   EDP_PSR_DEBUG_MASK_LPSP	(1<<27)
Line 3145... Line 3199...
3145
#define   EDP_PSR_DEBUG_MASK_MEMUP	(1<<26)
3199
#define   EDP_PSR_DEBUG_MASK_MEMUP	(1<<26)
3146
#define   EDP_PSR_DEBUG_MASK_HPD	(1<<25)
3200
#define   EDP_PSR_DEBUG_MASK_HPD	(1<<25)
3147
 
3201
 
3148
#define EDP_PSR2_CTL			0x6f900
3202
#define EDP_PSR2_CTL			_MMIO(0x6f900)
3149
#define   EDP_PSR2_ENABLE		(1<<31)
3203
#define   EDP_PSR2_ENABLE		(1<<31)
3150
#define   EDP_SU_TRACK_ENABLE		(1<<30)
3204
#define   EDP_SU_TRACK_ENABLE		(1<<30)
Line 3158... Line 3212...
3158
#define   EDP_PSR2_FRAME_BEFORE_SU_SHIFT 4
3212
#define   EDP_PSR2_FRAME_BEFORE_SU_SHIFT 4
3159
#define   EDP_PSR2_FRAME_BEFORE_SU_MASK	(0xf<<4)
3213
#define   EDP_PSR2_FRAME_BEFORE_SU_MASK	(0xf<<4)
3160
#define   EDP_PSR2_IDLE_MASK		0xf
3214
#define   EDP_PSR2_IDLE_MASK		0xf
Line 3161... Line 3215...
3161
 
3215
 
3162
/* VGA port control */
3216
/* VGA port control */
3163
#define ADPA			0x61100
3217
#define ADPA			_MMIO(0x61100)
3164
#define PCH_ADPA                0xe1100
3218
#define PCH_ADPA                _MMIO(0xe1100)
Line 3165... Line 3219...
3165
#define VLV_ADPA		(VLV_DISPLAY_BASE + ADPA)
3219
#define VLV_ADPA		_MMIO(VLV_DISPLAY_BASE + 0x61100)
3166
 
3220
 
3167
#define   ADPA_DAC_ENABLE	(1<<31)
3221
#define   ADPA_DAC_ENABLE	(1<<31)
3168
#define   ADPA_DAC_DISABLE	0
3222
#define   ADPA_DAC_DISABLE	0
Line 3206... Line 3260...
3206
#define   ADPA_DPMS_STANDBY	(2<<10)
3260
#define   ADPA_DPMS_STANDBY	(2<<10)
3207
#define   ADPA_DPMS_OFF		(3<<10)
3261
#define   ADPA_DPMS_OFF		(3<<10)
Line 3208... Line 3262...
3208
 
3262
 
3209
 
3263
 
3210
/* Hotplug control (945+ only) */
3264
/* Hotplug control (945+ only) */
3211
#define PORT_HOTPLUG_EN		(dev_priv->info.display_mmio_offset + 0x61110)
3265
#define PORT_HOTPLUG_EN		_MMIO(dev_priv->info.display_mmio_offset + 0x61110)
3212
#define   PORTB_HOTPLUG_INT_EN			(1 << 29)
3266
#define   PORTB_HOTPLUG_INT_EN			(1 << 29)
3213
#define   PORTC_HOTPLUG_INT_EN			(1 << 28)
3267
#define   PORTC_HOTPLUG_INT_EN			(1 << 28)
3214
#define   PORTD_HOTPLUG_INT_EN			(1 << 27)
3268
#define   PORTD_HOTPLUG_INT_EN			(1 << 27)
Line 3236... Line 3290...
3236
#define CRT_HOTPLUG_DETECT_DELAY_1G		(0 << 4)
3290
#define CRT_HOTPLUG_DETECT_DELAY_1G		(0 << 4)
3237
#define CRT_HOTPLUG_DETECT_DELAY_2G		(1 << 4)
3291
#define CRT_HOTPLUG_DETECT_DELAY_2G		(1 << 4)
3238
#define CRT_HOTPLUG_DETECT_VOLTAGE_325MV	(0 << 2)
3292
#define CRT_HOTPLUG_DETECT_VOLTAGE_325MV	(0 << 2)
3239
#define CRT_HOTPLUG_DETECT_VOLTAGE_475MV	(1 << 2)
3293
#define CRT_HOTPLUG_DETECT_VOLTAGE_475MV	(1 << 2)
Line 3240... Line 3294...
3240
 
3294
 
3241
#define PORT_HOTPLUG_STAT	(dev_priv->info.display_mmio_offset + 0x61114)
3295
#define PORT_HOTPLUG_STAT	_MMIO(dev_priv->info.display_mmio_offset + 0x61114)
3242
/*
3296
/*
3243
 * HDMI/DP bits are g4x+
3297
 * HDMI/DP bits are g4x+
3244
 *
3298
 *
3245
 * WARNING: Bspec for hpd status bits on gen4 seems to be completely confused.
3299
 * WARNING: Bspec for hpd status bits on gen4 seems to be completely confused.
Line 3302... Line 3356...
3302
						 PORTC_HOTPLUG_INT_STATUS | \
3356
						 PORTC_HOTPLUG_INT_STATUS | \
3303
						 PORTD_HOTPLUG_INT_STATUS)
3357
						 PORTD_HOTPLUG_INT_STATUS)
Line 3304... Line 3358...
3304
 
3358
 
3305
/* SDVO and HDMI port control.
3359
/* SDVO and HDMI port control.
3306
 * The same register may be used for SDVO or HDMI */
3360
 * The same register may be used for SDVO or HDMI */
3307
#define GEN3_SDVOB	0x61140
3361
#define _GEN3_SDVOB	0x61140
-
 
3362
#define _GEN3_SDVOC	0x61160
-
 
3363
#define GEN3_SDVOB	_MMIO(_GEN3_SDVOB)
3308
#define GEN3_SDVOC	0x61160
3364
#define GEN3_SDVOC	_MMIO(_GEN3_SDVOC)
3309
#define GEN4_HDMIB	GEN3_SDVOB
3365
#define GEN4_HDMIB	GEN3_SDVOB
3310
#define GEN4_HDMIC	GEN3_SDVOC
3366
#define GEN4_HDMIC	GEN3_SDVOC
3311
#define VLV_HDMIB	(VLV_DISPLAY_BASE + GEN4_HDMIB)
3367
#define VLV_HDMIB	_MMIO(VLV_DISPLAY_BASE + 0x61140)
3312
#define VLV_HDMIC	(VLV_DISPLAY_BASE + GEN4_HDMIC)
3368
#define VLV_HDMIC	_MMIO(VLV_DISPLAY_BASE + 0x61160)
3313
#define CHV_HDMID	(VLV_DISPLAY_BASE + 0x6116C)
3369
#define CHV_HDMID	_MMIO(VLV_DISPLAY_BASE + 0x6116C)
3314
#define PCH_SDVOB	0xe1140
3370
#define PCH_SDVOB	_MMIO(0xe1140)
3315
#define PCH_HDMIB	PCH_SDVOB
3371
#define PCH_HDMIB	PCH_SDVOB
3316
#define PCH_HDMIC	0xe1150
3372
#define PCH_HDMIC	_MMIO(0xe1150)
Line 3317... Line 3373...
3317
#define PCH_HDMID	0xe1160
3373
#define PCH_HDMID	_MMIO(0xe1160)
3318
 
3374
 
3319
#define PORT_DFT_I9XX				0x61150
3375
#define PORT_DFT_I9XX				_MMIO(0x61150)
3320
#define   DC_BALANCE_RESET			(1 << 25)
3376
#define   DC_BALANCE_RESET			(1 << 25)
3321
#define PORT_DFT2_G4X		(dev_priv->info.display_mmio_offset + 0x61154)
3377
#define PORT_DFT2_G4X		_MMIO(dev_priv->info.display_mmio_offset + 0x61154)
3322
#define   DC_BALANCE_RESET_VLV			(1 << 31)
3378
#define   DC_BALANCE_RESET_VLV			(1 << 31)
3323
#define   PIPE_SCRAMBLE_RESET_MASK		((1 << 14) | (0x3 << 0))
3379
#define   PIPE_SCRAMBLE_RESET_MASK		((1 << 14) | (0x3 << 0))
3324
#define   PIPE_C_SCRAMBLE_RESET			(1 << 14) /* chv */
3380
#define   PIPE_C_SCRAMBLE_RESET			(1 << 14) /* chv */
Line 3376... Line 3432...
3376
#define   SDVO_PIPE_SEL_CHV(pipe)		((pipe) << 24)
3432
#define   SDVO_PIPE_SEL_CHV(pipe)		((pipe) << 24)
3377
#define   SDVO_PIPE_SEL_MASK_CHV		(3 << 24)
3433
#define   SDVO_PIPE_SEL_MASK_CHV		(3 << 24)
Line 3378... Line 3434...
3378
 
3434
 
3379
 
3435
 
-
 
3436
/* DVO port control */
3380
/* DVO port control */
3437
#define _DVOA			0x61120
-
 
3438
#define DVOA			_MMIO(_DVOA)
3381
#define DVOA			0x61120
3439
#define _DVOB			0x61140
-
 
3440
#define DVOB			_MMIO(_DVOB)
3382
#define DVOB			0x61140
3441
#define _DVOC			0x61160
3383
#define DVOC			0x61160
3442
#define DVOC			_MMIO(_DVOC)
3384
#define   DVO_ENABLE			(1 << 31)
3443
#define   DVO_ENABLE			(1 << 31)
3385
#define   DVO_PIPE_B_SELECT		(1 << 30)
3444
#define   DVO_PIPE_B_SELECT		(1 << 30)
3386
#define   DVO_PIPE_STALL_UNUSED		(0 << 28)
3445
#define   DVO_PIPE_STALL_UNUSED		(0 << 28)
Line 3403... Line 3462...
3403
#define   DVO_HSYNC_ACTIVE_HIGH		(1 << 3)
3462
#define   DVO_HSYNC_ACTIVE_HIGH		(1 << 3)
3404
#define   DVO_BLANK_ACTIVE_HIGH		(1 << 2)
3463
#define   DVO_BLANK_ACTIVE_HIGH		(1 << 2)
3405
#define   DVO_OUTPUT_CSTATE_PIXELS	(1 << 1)	/* SDG only */
3464
#define   DVO_OUTPUT_CSTATE_PIXELS	(1 << 1)	/* SDG only */
3406
#define   DVO_OUTPUT_SOURCE_SIZE_PIXELS	(1 << 0)	/* SDG only */
3465
#define   DVO_OUTPUT_SOURCE_SIZE_PIXELS	(1 << 0)	/* SDG only */
3407
#define   DVO_PRESERVE_MASK		(0x7<<24)
3466
#define   DVO_PRESERVE_MASK		(0x7<<24)
3408
#define DVOA_SRCDIM		0x61124
3467
#define DVOA_SRCDIM		_MMIO(0x61124)
3409
#define DVOB_SRCDIM		0x61144
3468
#define DVOB_SRCDIM		_MMIO(0x61144)
3410
#define DVOC_SRCDIM		0x61164
3469
#define DVOC_SRCDIM		_MMIO(0x61164)
3411
#define   DVO_SRCDIM_HORIZONTAL_SHIFT	12
3470
#define   DVO_SRCDIM_HORIZONTAL_SHIFT	12
3412
#define   DVO_SRCDIM_VERTICAL_SHIFT	0
3471
#define   DVO_SRCDIM_VERTICAL_SHIFT	0
Line 3413... Line 3472...
3413
 
3472
 
3414
/* LVDS port control */
3473
/* LVDS port control */
3415
#define LVDS			0x61180
3474
#define LVDS			_MMIO(0x61180)
3416
/*
3475
/*
3417
 * Enables the LVDS port.  This bit must be set before DPLLs are enabled, as
3476
 * Enables the LVDS port.  This bit must be set before DPLLs are enabled, as
3418
 * the DPLL semantics change when the LVDS is assigned to that pipe.
3477
 * the DPLL semantics change when the LVDS is assigned to that pipe.
3419
 */
3478
 */
Line 3460... Line 3519...
3460
#define   LVDS_B0B3_POWER_MASK		(3 << 2)
3519
#define   LVDS_B0B3_POWER_MASK		(3 << 2)
3461
#define   LVDS_B0B3_POWER_DOWN		(0 << 2)
3520
#define   LVDS_B0B3_POWER_DOWN		(0 << 2)
3462
#define   LVDS_B0B3_POWER_UP		(3 << 2)
3521
#define   LVDS_B0B3_POWER_UP		(3 << 2)
Line 3463... Line 3522...
3463
 
3522
 
3464
/* Video Data Island Packet control */
3523
/* Video Data Island Packet control */
3465
#define VIDEO_DIP_DATA		0x61178
3524
#define VIDEO_DIP_DATA		_MMIO(0x61178)
3466
/* Read the description of VIDEO_DIP_DATA (before Haswell) or VIDEO_DIP_ECC
3525
/* Read the description of VIDEO_DIP_DATA (before Haswell) or VIDEO_DIP_ECC
3467
 * (Haswell and newer) to see which VIDEO_DIP_DATA byte corresponds to each byte
3526
 * (Haswell and newer) to see which VIDEO_DIP_DATA byte corresponds to each byte
3468
 * of the infoframe structure specified by CEA-861. */
3527
 * of the infoframe structure specified by CEA-861. */
3469
#define   VIDEO_DIP_DATA_SIZE	32
3528
#define   VIDEO_DIP_DATA_SIZE	32
3470
#define   VIDEO_DIP_VSC_DATA_SIZE	36
3529
#define   VIDEO_DIP_VSC_DATA_SIZE	36
3471
#define VIDEO_DIP_CTL		0x61170
3530
#define VIDEO_DIP_CTL		_MMIO(0x61170)
3472
/* Pre HSW: */
3531
/* Pre HSW: */
3473
#define   VIDEO_DIP_ENABLE		(1 << 31)
3532
#define   VIDEO_DIP_ENABLE		(1 << 31)
3474
#define   VIDEO_DIP_PORT(port)		((port) << 29)
3533
#define   VIDEO_DIP_PORT(port)		((port) << 29)
3475
#define   VIDEO_DIP_PORT_MASK		(3 << 29)
3534
#define   VIDEO_DIP_PORT_MASK		(3 << 29)
Line 3493... Line 3552...
3493
#define   VIDEO_DIP_ENABLE_VS_HSW	(1 << 8)
3552
#define   VIDEO_DIP_ENABLE_VS_HSW	(1 << 8)
3494
#define   VIDEO_DIP_ENABLE_GMP_HSW	(1 << 4)
3553
#define   VIDEO_DIP_ENABLE_GMP_HSW	(1 << 4)
3495
#define   VIDEO_DIP_ENABLE_SPD_HSW	(1 << 0)
3554
#define   VIDEO_DIP_ENABLE_SPD_HSW	(1 << 0)
Line 3496... Line 3555...
3496
 
3555
 
3497
/* Panel power sequencing */
3556
/* Panel power sequencing */
3498
#define PP_STATUS	0x61200
3557
#define PP_STATUS	_MMIO(0x61200)
3499
#define   PP_ON		(1 << 31)
3558
#define   PP_ON		(1 << 31)
3500
/*
3559
/*
3501
 * Indicates that all dependencies of the panel are on:
3560
 * Indicates that all dependencies of the panel are on:
3502
 *
3561
 *
Line 3519... Line 3578...
3519
#define   PP_SEQUENCE_STATE_ON_IDLE	(0x8 << 0)
3578
#define   PP_SEQUENCE_STATE_ON_IDLE	(0x8 << 0)
3520
#define   PP_SEQUENCE_STATE_ON_S1_0	(0x9 << 0)
3579
#define   PP_SEQUENCE_STATE_ON_S1_0	(0x9 << 0)
3521
#define   PP_SEQUENCE_STATE_ON_S1_2	(0xa << 0)
3580
#define   PP_SEQUENCE_STATE_ON_S1_2	(0xa << 0)
3522
#define   PP_SEQUENCE_STATE_ON_S1_3	(0xb << 0)
3581
#define   PP_SEQUENCE_STATE_ON_S1_3	(0xb << 0)
3523
#define   PP_SEQUENCE_STATE_RESET	(0xf << 0)
3582
#define   PP_SEQUENCE_STATE_RESET	(0xf << 0)
3524
#define PP_CONTROL	0x61204
3583
#define PP_CONTROL	_MMIO(0x61204)
3525
#define   POWER_TARGET_ON	(1 << 0)
3584
#define   POWER_TARGET_ON	(1 << 0)
3526
#define PP_ON_DELAYS	0x61208
3585
#define PP_ON_DELAYS	_MMIO(0x61208)
3527
#define PP_OFF_DELAYS	0x6120c
3586
#define PP_OFF_DELAYS	_MMIO(0x6120c)
3528
#define PP_DIVISOR	0x61210
3587
#define PP_DIVISOR	_MMIO(0x61210)
Line 3529... Line 3588...
3529
 
3588
 
3530
/* Panel fitting */
3589
/* Panel fitting */
3531
#define PFIT_CONTROL	(dev_priv->info.display_mmio_offset + 0x61230)
3590
#define PFIT_CONTROL	_MMIO(dev_priv->info.display_mmio_offset + 0x61230)
3532
#define   PFIT_ENABLE		(1 << 31)
3591
#define   PFIT_ENABLE		(1 << 31)
3533
#define   PFIT_PIPE_MASK	(3 << 29)
3592
#define   PFIT_PIPE_MASK	(3 << 29)
3534
#define   PFIT_PIPE_SHIFT	29
3593
#define   PFIT_PIPE_SHIFT	29
3535
#define   VERT_INTERP_DISABLE	(0 << 10)
3594
#define   VERT_INTERP_DISABLE	(0 << 10)
Line 3544... Line 3603...
3544
#define   PFIT_FILTER_FUZZY	(0 << 24)
3603
#define   PFIT_FILTER_FUZZY	(0 << 24)
3545
#define   PFIT_SCALING_AUTO	(0 << 26)
3604
#define   PFIT_SCALING_AUTO	(0 << 26)
3546
#define   PFIT_SCALING_PROGRAMMED (1 << 26)
3605
#define   PFIT_SCALING_PROGRAMMED (1 << 26)
3547
#define   PFIT_SCALING_PILLAR	(2 << 26)
3606
#define   PFIT_SCALING_PILLAR	(2 << 26)
3548
#define   PFIT_SCALING_LETTER	(3 << 26)
3607
#define   PFIT_SCALING_LETTER	(3 << 26)
3549
#define PFIT_PGM_RATIOS	(dev_priv->info.display_mmio_offset + 0x61234)
3608
#define PFIT_PGM_RATIOS _MMIO(dev_priv->info.display_mmio_offset + 0x61234)
3550
/* Pre-965 */
3609
/* Pre-965 */
3551
#define		PFIT_VERT_SCALE_SHIFT		20
3610
#define		PFIT_VERT_SCALE_SHIFT		20
3552
#define		PFIT_VERT_SCALE_MASK		0xfff00000
3611
#define		PFIT_VERT_SCALE_MASK		0xfff00000
3553
#define		PFIT_HORIZ_SCALE_SHIFT		4
3612
#define		PFIT_HORIZ_SCALE_SHIFT		4
3554
#define		PFIT_HORIZ_SCALE_MASK		0x0000fff0
3613
#define		PFIT_HORIZ_SCALE_MASK		0x0000fff0
Line 3556... Line 3615...
3556
#define		PFIT_VERT_SCALE_SHIFT_965	16
3615
#define		PFIT_VERT_SCALE_SHIFT_965	16
3557
#define		PFIT_VERT_SCALE_MASK_965	0x1fff0000
3616
#define		PFIT_VERT_SCALE_MASK_965	0x1fff0000
3558
#define		PFIT_HORIZ_SCALE_SHIFT_965	0
3617
#define		PFIT_HORIZ_SCALE_SHIFT_965	0
3559
#define		PFIT_HORIZ_SCALE_MASK_965	0x00001fff
3618
#define		PFIT_HORIZ_SCALE_MASK_965	0x00001fff
Line 3560... Line 3619...
3560
 
3619
 
Line 3561... Line 3620...
3561
#define PFIT_AUTO_RATIOS (dev_priv->info.display_mmio_offset + 0x61238)
3620
#define PFIT_AUTO_RATIOS _MMIO(dev_priv->info.display_mmio_offset + 0x61238)
3562
 
3621
 
3563
#define _VLV_BLC_PWM_CTL2_A (dev_priv->info.display_mmio_offset + 0x61250)
3622
#define _VLV_BLC_PWM_CTL2_A (dev_priv->info.display_mmio_offset + 0x61250)
3564
#define _VLV_BLC_PWM_CTL2_B (dev_priv->info.display_mmio_offset + 0x61350)
3623
#define _VLV_BLC_PWM_CTL2_B (dev_priv->info.display_mmio_offset + 0x61350)
Line 3565... Line 3624...
3565
#define VLV_BLC_PWM_CTL2(pipe) _PIPE(pipe, _VLV_BLC_PWM_CTL2_A, \
3624
#define VLV_BLC_PWM_CTL2(pipe) _MMIO_PIPE(pipe, _VLV_BLC_PWM_CTL2_A, \
3566
				     _VLV_BLC_PWM_CTL2_B)
3625
				     _VLV_BLC_PWM_CTL2_B)
3567
 
3626
 
3568
#define _VLV_BLC_PWM_CTL_A (dev_priv->info.display_mmio_offset + 0x61254)
3627
#define _VLV_BLC_PWM_CTL_A (dev_priv->info.display_mmio_offset + 0x61254)
Line 3569... Line 3628...
3569
#define _VLV_BLC_PWM_CTL_B (dev_priv->info.display_mmio_offset + 0x61354)
3628
#define _VLV_BLC_PWM_CTL_B (dev_priv->info.display_mmio_offset + 0x61354)
3570
#define VLV_BLC_PWM_CTL(pipe) _PIPE(pipe, _VLV_BLC_PWM_CTL_A, \
3629
#define VLV_BLC_PWM_CTL(pipe) _MMIO_PIPE(pipe, _VLV_BLC_PWM_CTL_A, \
3571
				    _VLV_BLC_PWM_CTL_B)
3630
				    _VLV_BLC_PWM_CTL_B)
3572
 
3631
 
Line 3573... Line 3632...
3573
#define _VLV_BLC_HIST_CTL_A (dev_priv->info.display_mmio_offset + 0x61260)
3632
#define _VLV_BLC_HIST_CTL_A (dev_priv->info.display_mmio_offset + 0x61260)
3574
#define _VLV_BLC_HIST_CTL_B (dev_priv->info.display_mmio_offset + 0x61360)
3633
#define _VLV_BLC_HIST_CTL_B (dev_priv->info.display_mmio_offset + 0x61360)
3575
#define VLV_BLC_HIST_CTL(pipe) _PIPE(pipe, _VLV_BLC_HIST_CTL_A, \
3634
#define VLV_BLC_HIST_CTL(pipe) _MMIO_PIPE(pipe, _VLV_BLC_HIST_CTL_A, \
3576
				     _VLV_BLC_HIST_CTL_B)
3635
				     _VLV_BLC_HIST_CTL_B)
3577
 
3636
 
3578
/* Backlight control */
3637
/* Backlight control */
3579
#define BLC_PWM_CTL2	(dev_priv->info.display_mmio_offset + 0x61250) /* 965+ only */
3638
#define BLC_PWM_CTL2	_MMIO(dev_priv->info.display_mmio_offset + 0x61250) /* 965+ only */
Line 3597... Line 3656...
3597
#define   BLM_PHASE_IN_TIME_BASE_MASK	(0xff << 16)
3656
#define   BLM_PHASE_IN_TIME_BASE_MASK	(0xff << 16)
3598
#define   BLM_PHASE_IN_COUNT_SHIFT	(8)
3657
#define   BLM_PHASE_IN_COUNT_SHIFT	(8)
3599
#define   BLM_PHASE_IN_COUNT_MASK	(0xff << 8)
3658
#define   BLM_PHASE_IN_COUNT_MASK	(0xff << 8)
3600
#define   BLM_PHASE_IN_INCR_SHIFT	(0)
3659
#define   BLM_PHASE_IN_INCR_SHIFT	(0)
3601
#define   BLM_PHASE_IN_INCR_MASK	(0xff << 0)
3660
#define   BLM_PHASE_IN_INCR_MASK	(0xff << 0)
3602
#define BLC_PWM_CTL	(dev_priv->info.display_mmio_offset + 0x61254)
3661
#define BLC_PWM_CTL	_MMIO(dev_priv->info.display_mmio_offset + 0x61254)
3603
/*
3662
/*
3604
 * This is the most significant 15 bits of the number of backlight cycles in a
3663
 * This is the most significant 15 bits of the number of backlight cycles in a
3605
 * complete cycle of the modulated backlight control.
3664
 * complete cycle of the modulated backlight control.
3606
 *
3665
 *
3607
 * The actual value is this field multiplied by two.
3666
 * The actual value is this field multiplied by two.
Line 3619... Line 3678...
3619
#define   BACKLIGHT_DUTY_CYCLE_SHIFT		(0)
3678
#define   BACKLIGHT_DUTY_CYCLE_SHIFT		(0)
3620
#define   BACKLIGHT_DUTY_CYCLE_MASK		(0xffff)
3679
#define   BACKLIGHT_DUTY_CYCLE_MASK		(0xffff)
3621
#define   BACKLIGHT_DUTY_CYCLE_MASK_PNV		(0xfffe)
3680
#define   BACKLIGHT_DUTY_CYCLE_MASK_PNV		(0xfffe)
3622
#define   BLM_POLARITY_PNV			(1 << 0) /* pnv only */
3681
#define   BLM_POLARITY_PNV			(1 << 0) /* pnv only */
Line 3623... Line 3682...
3623
 
3682
 
3624
#define BLC_HIST_CTL	(dev_priv->info.display_mmio_offset + 0x61260)
3683
#define BLC_HIST_CTL	_MMIO(dev_priv->info.display_mmio_offset + 0x61260)
Line 3625... Line 3684...
3625
#define  BLM_HISTOGRAM_ENABLE			(1 << 31)
3684
#define  BLM_HISTOGRAM_ENABLE			(1 << 31)
3626
 
3685
 
3627
/* New registers for PCH-split platforms. Safe where new bits show up, the
3686
/* New registers for PCH-split platforms. Safe where new bits show up, the
3628
 * register layout machtes with gen4 BLC_PWM_CTL[12]. */
3687
 * register layout machtes with gen4 BLC_PWM_CTL[12]. */
Line 3629... Line 3688...
3629
#define BLC_PWM_CPU_CTL2	0x48250
3688
#define BLC_PWM_CPU_CTL2	_MMIO(0x48250)
Line 3630... Line 3689...
3630
#define BLC_PWM_CPU_CTL		0x48254
3689
#define BLC_PWM_CPU_CTL		_MMIO(0x48254)
3631
 
3690
 
3632
#define HSW_BLC_PWM2_CTL	0x48350
3691
#define HSW_BLC_PWM2_CTL	_MMIO(0x48350)
3633
 
3692
 
3634
/* PCH CTL1 is totally different, all but the below bits are reserved. CTL2 is
3693
/* PCH CTL1 is totally different, all but the below bits are reserved. CTL2 is
3635
 * like the normal CTL from gen4 and earlier. Hooray for confusing naming. */
3694
 * like the normal CTL from gen4 and earlier. Hooray for confusing naming. */
3636
#define BLC_PWM_PCH_CTL1	0xc8250
3695
#define BLC_PWM_PCH_CTL1	_MMIO(0xc8250)
Line 3637... Line 3696...
3637
#define   BLM_PCH_PWM_ENABLE			(1 << 31)
3696
#define   BLM_PCH_PWM_ENABLE			(1 << 31)
3638
#define   BLM_PCH_OVERRIDE_ENABLE		(1 << 30)
3697
#define   BLM_PCH_OVERRIDE_ENABLE		(1 << 30)
Line 3639... Line 3698...
3639
#define   BLM_PCH_POLARITY			(1 << 29)
3698
#define   BLM_PCH_POLARITY			(1 << 29)
3640
#define BLC_PWM_PCH_CTL2	0xc8254
3699
#define BLC_PWM_PCH_CTL2	_MMIO(0xc8254)
3641
 
3700
 
Line 3657... Line 3716...
3657
 
3716
 
3658
#define _BXT_BLC_PWM_CTL2			0xC8350
3717
#define _BXT_BLC_PWM_CTL2			0xC8350
3659
#define _BXT_BLC_PWM_FREQ2			0xC8354
3718
#define _BXT_BLC_PWM_FREQ2			0xC8354
Line 3660... Line 3719...
3660
#define _BXT_BLC_PWM_DUTY2			0xC8358
3719
#define _BXT_BLC_PWM_DUTY2			0xC8358
3661
 
3720
 
3662
#define BXT_BLC_PWM_CTL(controller)    _PIPE(controller, \
3721
#define BXT_BLC_PWM_CTL(controller)    _MMIO_PIPE(controller,		\
3663
					_BXT_BLC_PWM_CTL1, _BXT_BLC_PWM_CTL2)
3722
					_BXT_BLC_PWM_CTL1, _BXT_BLC_PWM_CTL2)
3664
#define BXT_BLC_PWM_FREQ(controller)   _PIPE(controller, \
3723
#define BXT_BLC_PWM_FREQ(controller)   _MMIO_PIPE(controller, \
3665
					_BXT_BLC_PWM_FREQ1, _BXT_BLC_PWM_FREQ2)
3724
					_BXT_BLC_PWM_FREQ1, _BXT_BLC_PWM_FREQ2)
Line 3666... Line 3725...
3666
#define BXT_BLC_PWM_DUTY(controller)   _PIPE(controller, \
3725
#define BXT_BLC_PWM_DUTY(controller)   _MMIO_PIPE(controller, \
3667
					_BXT_BLC_PWM_DUTY1, _BXT_BLC_PWM_DUTY2)
3726
					_BXT_BLC_PWM_DUTY1, _BXT_BLC_PWM_DUTY2)
Line 3668... Line 3727...
3668
 
3727
 
3669
#define PCH_GTC_CTL		0xe7000
3728
#define PCH_GTC_CTL		_MMIO(0xe7000)
3670
#define   PCH_GTC_ENABLE	(1 << 31)
3729
#define   PCH_GTC_ENABLE	(1 << 31)
3671
 
3730
 
3672
/* TV port control */
3731
/* TV port control */
3673
#define TV_CTL			0x68000
3732
#define TV_CTL			_MMIO(0x68000)
3674
/* Enables the TV encoder */
3733
/* Enables the TV encoder */
Line 3735... Line 3794...
3735
 * This is used for load detection in combination with TVDAC_SENSE_MASK
3794
 * This is used for load detection in combination with TVDAC_SENSE_MASK
3736
 */
3795
 */
3737
# define TV_TEST_MODE_MONITOR_DETECT	(7 << 0)
3796
# define TV_TEST_MODE_MONITOR_DETECT	(7 << 0)
3738
# define TV_TEST_MODE_MASK		(7 << 0)
3797
# define TV_TEST_MODE_MASK		(7 << 0)
Line 3739... Line 3798...
3739
 
3798
 
3740
#define TV_DAC			0x68004
3799
#define TV_DAC			_MMIO(0x68004)
3741
# define TV_DAC_SAVE		0x00ffff00
3800
# define TV_DAC_SAVE		0x00ffff00
3742
/*
3801
/*
3743
 * Reports that DAC state change logic has reported change (RO).
3802
 * Reports that DAC state change logic has reported change (RO).
3744
 *
3803
 *
Line 3786... Line 3845...
3786
 * CSC coefficients are stored in a floating point format with 9 bits of
3845
 * CSC coefficients are stored in a floating point format with 9 bits of
3787
 * mantissa and 2 or 3 bits of exponent.  The exponent is represented as 2**-n,
3846
 * mantissa and 2 or 3 bits of exponent.  The exponent is represented as 2**-n,
3788
 * where 2-bit exponents are unsigned n, and 3-bit exponents are signed n with
3847
 * where 2-bit exponents are unsigned n, and 3-bit exponents are signed n with
3789
 * -1 (0x3) being the only legal negative value.
3848
 * -1 (0x3) being the only legal negative value.
3790
 */
3849
 */
3791
#define TV_CSC_Y		0x68010
3850
#define TV_CSC_Y		_MMIO(0x68010)
3792
# define TV_RY_MASK			0x07ff0000
3851
# define TV_RY_MASK			0x07ff0000
3793
# define TV_RY_SHIFT			16
3852
# define TV_RY_SHIFT			16
3794
# define TV_GY_MASK			0x00000fff
3853
# define TV_GY_MASK			0x00000fff
3795
# define TV_GY_SHIFT			0
3854
# define TV_GY_SHIFT			0
Line 3796... Line 3855...
3796
 
3855
 
3797
#define TV_CSC_Y2		0x68014
3856
#define TV_CSC_Y2		_MMIO(0x68014)
3798
# define TV_BY_MASK			0x07ff0000
3857
# define TV_BY_MASK			0x07ff0000
3799
# define TV_BY_SHIFT			16
3858
# define TV_BY_SHIFT			16
3800
/*
3859
/*
3801
 * Y attenuation for component video.
3860
 * Y attenuation for component video.
3802
 *
3861
 *
3803
 * Stored in 1.9 fixed point.
3862
 * Stored in 1.9 fixed point.
3804
 */
3863
 */
3805
# define TV_AY_MASK			0x000003ff
3864
# define TV_AY_MASK			0x000003ff
Line 3806... Line 3865...
3806
# define TV_AY_SHIFT			0
3865
# define TV_AY_SHIFT			0
3807
 
3866
 
3808
#define TV_CSC_U		0x68018
3867
#define TV_CSC_U		_MMIO(0x68018)
3809
# define TV_RU_MASK			0x07ff0000
3868
# define TV_RU_MASK			0x07ff0000
3810
# define TV_RU_SHIFT			16
3869
# define TV_RU_SHIFT			16
Line 3811... Line 3870...
3811
# define TV_GU_MASK			0x000007ff
3870
# define TV_GU_MASK			0x000007ff
3812
# define TV_GU_SHIFT			0
3871
# define TV_GU_SHIFT			0
3813
 
3872
 
3814
#define TV_CSC_U2		0x6801c
3873
#define TV_CSC_U2		_MMIO(0x6801c)
3815
# define TV_BU_MASK			0x07ff0000
3874
# define TV_BU_MASK			0x07ff0000
3816
# define TV_BU_SHIFT			16
3875
# define TV_BU_SHIFT			16
3817
/*
3876
/*
3818
 * U attenuation for component video.
3877
 * U attenuation for component video.
3819
 *
3878
 *
3820
 * Stored in 1.9 fixed point.
3879
 * Stored in 1.9 fixed point.
Line 3821... Line 3880...
3821
 */
3880
 */
3822
# define TV_AU_MASK			0x000003ff
3881
# define TV_AU_MASK			0x000003ff
3823
# define TV_AU_SHIFT			0
3882
# define TV_AU_SHIFT			0
3824
 
3883
 
3825
#define TV_CSC_V		0x68020
3884
#define TV_CSC_V		_MMIO(0x68020)
Line 3826... Line 3885...
3826
# define TV_RV_MASK			0x0fff0000
3885
# define TV_RV_MASK			0x0fff0000
3827
# define TV_RV_SHIFT			16
3886
# define TV_RV_SHIFT			16
3828
# define TV_GV_MASK			0x000007ff
3887
# define TV_GV_MASK			0x000007ff
3829
# define TV_GV_SHIFT			0
3888
# define TV_GV_SHIFT			0
3830
 
3889
 
3831
#define TV_CSC_V2		0x68024
3890
#define TV_CSC_V2		_MMIO(0x68024)
3832
# define TV_BV_MASK			0x07ff0000
3891
# define TV_BV_MASK			0x07ff0000
3833
# define TV_BV_SHIFT			16
3892
# define TV_BV_SHIFT			16
3834
/*
3893
/*
3835
 * V attenuation for component video.
3894
 * V attenuation for component video.
Line 3836... Line 3895...
3836
 *
3895
 *
3837
 * Stored in 1.9 fixed point.
3896
 * Stored in 1.9 fixed point.
3838
 */
3897
 */
3839
# define TV_AV_MASK			0x000007ff
3898
# define TV_AV_MASK			0x000007ff
3840
# define TV_AV_SHIFT			0
3899
# define TV_AV_SHIFT			0
3841
 
3900
 
Line 3851... Line 3910...
3851
# define TV_SATURATION_SHIFT		8
3910
# define TV_SATURATION_SHIFT		8
3852
/* Hue adjustment, as an integer phase angle in degrees */
3911
/* Hue adjustment, as an integer phase angle in degrees */
3853
# define TV_HUE_MASK			0x000000ff
3912
# define TV_HUE_MASK			0x000000ff
3854
# define TV_HUE_SHIFT			0
3913
# define TV_HUE_SHIFT			0
Line 3855... Line 3914...
3855
 
3914
 
3856
#define TV_CLR_LEVEL		0x6802c
3915
#define TV_CLR_LEVEL		_MMIO(0x6802c)
3857
/* Controls the DAC level for black */
3916
/* Controls the DAC level for black */
3858
# define TV_BLACK_LEVEL_MASK		0x01ff0000
3917
# define TV_BLACK_LEVEL_MASK		0x01ff0000
3859
# define TV_BLACK_LEVEL_SHIFT		16
3918
# define TV_BLACK_LEVEL_SHIFT		16
3860
/* Controls the DAC level for blanking */
3919
/* Controls the DAC level for blanking */
3861
# define TV_BLANK_LEVEL_MASK		0x000001ff
3920
# define TV_BLANK_LEVEL_MASK		0x000001ff
Line 3862... Line 3921...
3862
# define TV_BLANK_LEVEL_SHIFT		0
3921
# define TV_BLANK_LEVEL_SHIFT		0
3863
 
3922
 
3864
#define TV_H_CTL_1		0x68030
3923
#define TV_H_CTL_1		_MMIO(0x68030)
3865
/* Number of pixels in the hsync. */
3924
/* Number of pixels in the hsync. */
3866
# define TV_HSYNC_END_MASK		0x1fff0000
3925
# define TV_HSYNC_END_MASK		0x1fff0000
3867
# define TV_HSYNC_END_SHIFT		16
3926
# define TV_HSYNC_END_SHIFT		16
3868
/* Total number of pixels minus one in the line (display and blanking). */
3927
/* Total number of pixels minus one in the line (display and blanking). */
Line 3869... Line 3928...
3869
# define TV_HTOTAL_MASK			0x00001fff
3928
# define TV_HTOTAL_MASK			0x00001fff
3870
# define TV_HTOTAL_SHIFT		0
3929
# define TV_HTOTAL_SHIFT		0
3871
 
3930
 
3872
#define TV_H_CTL_2		0x68034
3931
#define TV_H_CTL_2		_MMIO(0x68034)
3873
/* Enables the colorburst (needed for non-component color) */
3932
/* Enables the colorburst (needed for non-component color) */
3874
# define TV_BURST_ENA			(1 << 31)
3933
# define TV_BURST_ENA			(1 << 31)
3875
/* Offset of the colorburst from the start of hsync, in pixels minus one. */
3934
/* Offset of the colorburst from the start of hsync, in pixels minus one. */
3876
# define TV_HBURST_START_SHIFT		16
3935
# define TV_HBURST_START_SHIFT		16
3877
# define TV_HBURST_START_MASK		0x1fff0000
3936
# define TV_HBURST_START_MASK		0x1fff0000
Line 3878... Line 3937...
3878
/* Length of the colorburst */
3937
/* Length of the colorburst */
3879
# define TV_HBURST_LEN_SHIFT		0
3938
# define TV_HBURST_LEN_SHIFT		0
3880
# define TV_HBURST_LEN_MASK		0x0001fff
3939
# define TV_HBURST_LEN_MASK		0x0001fff
3881
 
3940
 
3882
#define TV_H_CTL_3		0x68038
3941
#define TV_H_CTL_3		_MMIO(0x68038)
3883
/* End of hblank, measured in pixels minus one from start of hsync */
3942
/* End of hblank, measured in pixels minus one from start of hsync */
3884
# define TV_HBLANK_END_SHIFT		16
3943
# define TV_HBLANK_END_SHIFT		16
Line 3885... Line 3944...
3885
# define TV_HBLANK_END_MASK		0x1fff0000
3944
# define TV_HBLANK_END_MASK		0x1fff0000
3886
/* Start of hblank, measured in pixels minus one from start of hsync */
3945
/* Start of hblank, measured in pixels minus one from start of hsync */
3887
# define TV_HBLANK_START_SHIFT		0
3946
# define TV_HBLANK_START_SHIFT		0
3888
# define TV_HBLANK_START_MASK		0x0001fff
3947
# define TV_HBLANK_START_MASK		0x0001fff
3889
 
3948
 
3890
#define TV_V_CTL_1		0x6803c
3949
#define TV_V_CTL_1		_MMIO(0x6803c)
3891
/* XXX */
3950
/* XXX */
3892
# define TV_NBR_END_SHIFT		16
3951
# define TV_NBR_END_SHIFT		16
3893
# define TV_NBR_END_MASK		0x07ff0000
3952
# define TV_NBR_END_MASK		0x07ff0000
3894
/* XXX */
3953
/* XXX */
Line 3895... Line 3954...
3895
# define TV_VI_END_F1_SHIFT		8
3954
# define TV_VI_END_F1_SHIFT		8
3896
# define TV_VI_END_F1_MASK		0x00003f00
3955
# define TV_VI_END_F1_MASK		0x00003f00
3897
/* XXX */
3956
/* XXX */
3898
# define TV_VI_END_F2_SHIFT		0
3957
# define TV_VI_END_F2_SHIFT		0
3899
# define TV_VI_END_F2_MASK		0x0000003f
3958
# define TV_VI_END_F2_MASK		0x0000003f
3900
 
3959
 
Line 3912... Line 3971...
3912
 * number of half lines.
3971
 * number of half lines.
3913
 */
3972
 */
3914
# define TV_VSYNC_START_F2_MASK		0x0000007f
3973
# define TV_VSYNC_START_F2_MASK		0x0000007f
3915
# define TV_VSYNC_START_F2_SHIFT	0
3974
# define TV_VSYNC_START_F2_SHIFT	0
Line 3916... Line 3975...
3916
 
3975
 
3917
#define TV_V_CTL_3		0x68044
3976
#define TV_V_CTL_3		_MMIO(0x68044)
3918
/* Enables generation of the equalization signal */
3977
/* Enables generation of the equalization signal */
3919
# define TV_EQUAL_ENA			(1 << 31)
3978
# define TV_EQUAL_ENA			(1 << 31)
3920
/* Length of vsync, in half lines */
3979
/* Length of vsync, in half lines */
3921
# define TV_VEQ_LEN_MASK		0x007f0000
3980
# define TV_VEQ_LEN_MASK		0x007f0000
Line 3930... Line 3989...
3930
 * the number of half lines.
3989
 * the number of half lines.
3931
 */
3990
 */
3932
# define TV_VEQ_START_F2_MASK		0x000007f
3991
# define TV_VEQ_START_F2_MASK		0x000007f
3933
# define TV_VEQ_START_F2_SHIFT		0
3992
# define TV_VEQ_START_F2_SHIFT		0
Line 3934... Line 3993...
3934
 
3993
 
3935
#define TV_V_CTL_4		0x68048
3994
#define TV_V_CTL_4		_MMIO(0x68048)
3936
/*
3995
/*
3937
 * Offset to start of vertical colorburst, measured in one less than the
3996
 * Offset to start of vertical colorburst, measured in one less than the
3938
 * number of lines from vertical start.
3997
 * number of lines from vertical start.
3939
 */
3998
 */
Line 3944... Line 4003...
3944
 * number of lines from the start of NBR.
4003
 * number of lines from the start of NBR.
3945
 */
4004
 */
3946
# define TV_VBURST_END_F1_MASK		0x000000ff
4005
# define TV_VBURST_END_F1_MASK		0x000000ff
3947
# define TV_VBURST_END_F1_SHIFT		0
4006
# define TV_VBURST_END_F1_SHIFT		0
Line 3948... Line 4007...
3948
 
4007
 
3949
#define TV_V_CTL_5		0x6804c
4008
#define TV_V_CTL_5		_MMIO(0x6804c)
3950
/*
4009
/*
3951
 * Offset to start of vertical colorburst, measured in one less than the
4010
 * Offset to start of vertical colorburst, measured in one less than the
3952
 * number of lines from vertical start.
4011
 * number of lines from vertical start.
3953
 */
4012
 */
Line 3958... Line 4017...
3958
 * number of lines from the start of NBR.
4017
 * number of lines from the start of NBR.
3959
 */
4018
 */
3960
# define TV_VBURST_END_F2_MASK		0x000000ff
4019
# define TV_VBURST_END_F2_MASK		0x000000ff
3961
# define TV_VBURST_END_F2_SHIFT		0
4020
# define TV_VBURST_END_F2_SHIFT		0
Line 3962... Line 4021...
3962
 
4021
 
3963
#define TV_V_CTL_6		0x68050
4022
#define TV_V_CTL_6		_MMIO(0x68050)
3964
/*
4023
/*
3965
 * Offset to start of vertical colorburst, measured in one less than the
4024
 * Offset to start of vertical colorburst, measured in one less than the
3966
 * number of lines from vertical start.
4025
 * number of lines from vertical start.
3967
 */
4026
 */
Line 3972... Line 4031...
3972
 * number of lines from the start of NBR.
4031
 * number of lines from the start of NBR.
3973
 */
4032
 */
3974
# define TV_VBURST_END_F3_MASK		0x000000ff
4033
# define TV_VBURST_END_F3_MASK		0x000000ff
3975
# define TV_VBURST_END_F3_SHIFT		0
4034
# define TV_VBURST_END_F3_SHIFT		0
Line 3976... Line 4035...
3976
 
4035
 
3977
#define TV_V_CTL_7		0x68054
4036
#define TV_V_CTL_7		_MMIO(0x68054)
3978
/*
4037
/*
3979
 * Offset to start of vertical colorburst, measured in one less than the
4038
 * Offset to start of vertical colorburst, measured in one less than the
3980
 * number of lines from vertical start.
4039
 * number of lines from vertical start.
3981
 */
4040
 */
Line 3986... Line 4045...
3986
 * number of lines from the start of NBR.
4045
 * number of lines from the start of NBR.
3987
 */
4046
 */
3988
# define TV_VBURST_END_F4_MASK		0x000000ff
4047
# define TV_VBURST_END_F4_MASK		0x000000ff
3989
# define TV_VBURST_END_F4_SHIFT		0
4048
# define TV_VBURST_END_F4_SHIFT		0
Line 3990... Line 4049...
3990
 
4049
 
3991
#define TV_SC_CTL_1		0x68060
4050
#define TV_SC_CTL_1		_MMIO(0x68060)
3992
/* Turns on the first subcarrier phase generation DDA */
4051
/* Turns on the first subcarrier phase generation DDA */
3993
# define TV_SC_DDA1_EN			(1 << 31)
4052
# define TV_SC_DDA1_EN			(1 << 31)
3994
/* Turns on the first subcarrier phase generation DDA */
4053
/* Turns on the first subcarrier phase generation DDA */
3995
# define TV_SC_DDA2_EN			(1 << 30)
4054
# define TV_SC_DDA2_EN			(1 << 30)
Line 4008... Line 4067...
4008
# define TV_BURST_LEVEL_SHIFT		16
4067
# define TV_BURST_LEVEL_SHIFT		16
4009
/* Sets the increment of the first subcarrier phase generation DDA */
4068
/* Sets the increment of the first subcarrier phase generation DDA */
4010
# define TV_SCDDA1_INC_MASK		0x00000fff
4069
# define TV_SCDDA1_INC_MASK		0x00000fff
4011
# define TV_SCDDA1_INC_SHIFT		0
4070
# define TV_SCDDA1_INC_SHIFT		0
Line 4012... Line 4071...
4012
 
4071
 
4013
#define TV_SC_CTL_2		0x68064
4072
#define TV_SC_CTL_2		_MMIO(0x68064)
4014
/* Sets the rollover for the second subcarrier phase generation DDA */
4073
/* Sets the rollover for the second subcarrier phase generation DDA */
4015
# define TV_SCDDA2_SIZE_MASK		0x7fff0000
4074
# define TV_SCDDA2_SIZE_MASK		0x7fff0000
4016
# define TV_SCDDA2_SIZE_SHIFT		16
4075
# define TV_SCDDA2_SIZE_SHIFT		16
4017
/* Sets the increent of the second subcarrier phase generation DDA */
4076
/* Sets the increent of the second subcarrier phase generation DDA */
4018
# define TV_SCDDA2_INC_MASK		0x00007fff
4077
# define TV_SCDDA2_INC_MASK		0x00007fff
Line 4019... Line 4078...
4019
# define TV_SCDDA2_INC_SHIFT		0
4078
# define TV_SCDDA2_INC_SHIFT		0
4020
 
4079
 
4021
#define TV_SC_CTL_3		0x68068
4080
#define TV_SC_CTL_3		_MMIO(0x68068)
4022
/* Sets the rollover for the third subcarrier phase generation DDA */
4081
/* Sets the rollover for the third subcarrier phase generation DDA */
4023
# define TV_SCDDA3_SIZE_MASK		0x7fff0000
4082
# define TV_SCDDA3_SIZE_MASK		0x7fff0000
4024
# define TV_SCDDA3_SIZE_SHIFT		16
4083
# define TV_SCDDA3_SIZE_SHIFT		16
4025
/* Sets the increent of the third subcarrier phase generation DDA */
4084
/* Sets the increent of the third subcarrier phase generation DDA */
Line 4026... Line 4085...
4026
# define TV_SCDDA3_INC_MASK		0x00007fff
4085
# define TV_SCDDA3_INC_MASK		0x00007fff
4027
# define TV_SCDDA3_INC_SHIFT		0
4086
# define TV_SCDDA3_INC_SHIFT		0
4028
 
4087
 
4029
#define TV_WIN_POS		0x68070
4088
#define TV_WIN_POS		_MMIO(0x68070)
4030
/* X coordinate of the display from the start of horizontal active */
4089
/* X coordinate of the display from the start of horizontal active */
4031
# define TV_XPOS_MASK			0x1fff0000
4090
# define TV_XPOS_MASK			0x1fff0000
4032
# define TV_XPOS_SHIFT			16
4091
# define TV_XPOS_SHIFT			16
Line 4033... Line 4092...
4033
/* Y coordinate of the display from the start of vertical active (NBR) */
4092
/* Y coordinate of the display from the start of vertical active (NBR) */
4034
# define TV_YPOS_MASK			0x00000fff
4093
# define TV_YPOS_MASK			0x00000fff
4035
# define TV_YPOS_SHIFT			0
4094
# define TV_YPOS_SHIFT			0
4036
 
4095
 
4037
#define TV_WIN_SIZE		0x68074
4096
#define TV_WIN_SIZE		_MMIO(0x68074)
4038
/* Horizontal size of the display window, measured in pixels*/
4097
/* Horizontal size of the display window, measured in pixels*/
Line 4044... Line 4103...
4044
 * Must be even for interlaced modes.
4103
 * Must be even for interlaced modes.
4045
 */
4104
 */
4046
# define TV_YSIZE_MASK			0x00000fff
4105
# define TV_YSIZE_MASK			0x00000fff
4047
# define TV_YSIZE_SHIFT			0
4106
# define TV_YSIZE_SHIFT			0
Line 4048... Line 4107...
4048
 
4107
 
4049
#define TV_FILTER_CTL_1		0x68080
4108
#define TV_FILTER_CTL_1		_MMIO(0x68080)
4050
/*
4109
/*
4051
 * Enables automatic scaling calculation.
4110
 * Enables automatic scaling calculation.
4052
 *
4111
 *
4053
 * If set, the rest of the registers are ignored, and the calculated values can
4112
 * If set, the rest of the registers are ignored, and the calculated values can
Line 4077... Line 4136...
4077
 * (src width - 1) / ((oversample * dest width) - 1)
4136
 * (src width - 1) / ((oversample * dest width) - 1)
4078
 */
4137
 */
4079
# define TV_HSCALE_FRAC_MASK		0x00003fff
4138
# define TV_HSCALE_FRAC_MASK		0x00003fff
4080
# define TV_HSCALE_FRAC_SHIFT		0
4139
# define TV_HSCALE_FRAC_SHIFT		0
Line 4081... Line 4140...
4081
 
4140
 
4082
#define TV_FILTER_CTL_2		0x68084
4141
#define TV_FILTER_CTL_2		_MMIO(0x68084)
4083
/*
4142
/*
4084
 * Sets the integer part of the 3.15 fixed-point vertical scaling factor.
4143
 * Sets the integer part of the 3.15 fixed-point vertical scaling factor.
4085
 *
4144
 *
4086
 * TV_VSCALE should be (src height - 1) / ((interlace * dest height) - 1)
4145
 * TV_VSCALE should be (src height - 1) / ((interlace * dest height) - 1)
Line 4093... Line 4152...
4093
 * \sa TV_VSCALE_INT_MASK
4152
 * \sa TV_VSCALE_INT_MASK
4094
 */
4153
 */
4095
# define TV_VSCALE_FRAC_MASK		0x00007fff
4154
# define TV_VSCALE_FRAC_MASK		0x00007fff
4096
# define TV_VSCALE_FRAC_SHIFT		0
4155
# define TV_VSCALE_FRAC_SHIFT		0
Line 4097... Line 4156...
4097
 
4156
 
4098
#define TV_FILTER_CTL_3		0x68088
4157
#define TV_FILTER_CTL_3		_MMIO(0x68088)
4099
/*
4158
/*
4100
 * Sets the integer part of the 3.15 fixed-point vertical scaling factor.
4159
 * Sets the integer part of the 3.15 fixed-point vertical scaling factor.
4101
 *
4160
 *
4102
 * TV_VSCALE should be (src height - 1) / (1/4 * (dest height - 1))
4161
 * TV_VSCALE should be (src height - 1) / (1/4 * (dest height - 1))
Line 4113... Line 4172...
4113
 * \sa TV_VSCALE_IP_INT_MASK
4172
 * \sa TV_VSCALE_IP_INT_MASK
4114
 */
4173
 */
4115
# define TV_VSCALE_IP_FRAC_MASK		0x00007fff
4174
# define TV_VSCALE_IP_FRAC_MASK		0x00007fff
4116
# define TV_VSCALE_IP_FRAC_SHIFT		0
4175
# define TV_VSCALE_IP_FRAC_SHIFT		0
Line 4117... Line 4176...
4117
 
4176
 
4118
#define TV_CC_CONTROL		0x68090
4177
#define TV_CC_CONTROL		_MMIO(0x68090)
4119
# define TV_CC_ENABLE			(1 << 31)
4178
# define TV_CC_ENABLE			(1 << 31)
4120
/*
4179
/*
4121
 * Specifies which field to send the CC data in.
4180
 * Specifies which field to send the CC data in.
4122
 *
4181
 *
Line 4129... Line 4188...
4129
# define TV_CC_HOFF_SHIFT		16
4188
# define TV_CC_HOFF_SHIFT		16
4130
/* Sets the vertical position of the CC data.  Usually 21 */
4189
/* Sets the vertical position of the CC data.  Usually 21 */
4131
# define TV_CC_LINE_MASK		0x0000003f
4190
# define TV_CC_LINE_MASK		0x0000003f
4132
# define TV_CC_LINE_SHIFT		0
4191
# define TV_CC_LINE_SHIFT		0
Line 4133... Line 4192...
4133
 
4192
 
4134
#define TV_CC_DATA		0x68094
4193
#define TV_CC_DATA		_MMIO(0x68094)
4135
# define TV_CC_RDY			(1 << 31)
4194
# define TV_CC_RDY			(1 << 31)
4136
/* Second word of CC data to be transmitted. */
4195
/* Second word of CC data to be transmitted. */
4137
# define TV_CC_DATA_2_MASK		0x007f0000
4196
# define TV_CC_DATA_2_MASK		0x007f0000
4138
# define TV_CC_DATA_2_SHIFT		16
4197
# define TV_CC_DATA_2_SHIFT		16
4139
/* First word of CC data to be transmitted. */
4198
/* First word of CC data to be transmitted. */
4140
# define TV_CC_DATA_1_MASK		0x0000007f
4199
# define TV_CC_DATA_1_MASK		0x0000007f
Line 4141... Line 4200...
4141
# define TV_CC_DATA_1_SHIFT		0
4200
# define TV_CC_DATA_1_SHIFT		0
4142
 
4201
 
4143
#define TV_H_LUMA(i)		(0x68100 + (i) * 4) /* 60 registers */
4202
#define TV_H_LUMA(i)		_MMIO(0x68100 + (i) * 4) /* 60 registers */
4144
#define TV_H_CHROMA(i)		(0x68200 + (i) * 4) /* 60 registers */
4203
#define TV_H_CHROMA(i)		_MMIO(0x68200 + (i) * 4) /* 60 registers */
Line 4145... Line 4204...
4145
#define TV_V_LUMA(i)		(0x68300 + (i) * 4) /* 43 registers */
4204
#define TV_V_LUMA(i)		_MMIO(0x68300 + (i) * 4) /* 43 registers */
4146
#define TV_V_CHROMA(i)		(0x68400 + (i) * 4) /* 43 registers */
4205
#define TV_V_CHROMA(i)		_MMIO(0x68400 + (i) * 4) /* 43 registers */
4147
 
4206
 
4148
/* Display Port */
4207
/* Display Port */
4149
#define DP_A				0x64000 /* eDP */
4208
#define DP_A			_MMIO(0x64000) /* eDP */
4150
#define DP_B				0x64100
4209
#define DP_B			_MMIO(0x64100)
4151
#define DP_C				0x64200
4210
#define DP_C			_MMIO(0x64200)
4152
#define DP_D				0x64300
4211
#define DP_D			_MMIO(0x64300)
4153
 
4212
 
Line 4154... Line 4213...
4154
#define VLV_DP_B			(VLV_DISPLAY_BASE + DP_B)
4213
#define VLV_DP_B		_MMIO(VLV_DISPLAY_BASE + 0x64100)
4155
#define VLV_DP_C			(VLV_DISPLAY_BASE + DP_C)
4214
#define VLV_DP_C		_MMIO(VLV_DISPLAY_BASE + 0x64200)
4156
#define CHV_DP_D			(VLV_DISPLAY_BASE + DP_D)
4215
#define CHV_DP_D		_MMIO(VLV_DISPLAY_BASE + 0x64300)
4157
 
4216
 
Line 4205... Line 4264...
4205
/* Mystic DPCD version 1.1 special mode */
4264
/* Mystic DPCD version 1.1 special mode */
4206
#define   DP_ENHANCED_FRAMING		(1 << 18)
4265
#define   DP_ENHANCED_FRAMING		(1 << 18)
Line 4207... Line 4266...
4207
 
4266
 
4208
/* eDP */
4267
/* eDP */
4209
#define   DP_PLL_FREQ_270MHZ		(0 << 16)
4268
#define   DP_PLL_FREQ_270MHZ		(0 << 16)
4210
#define   DP_PLL_FREQ_160MHZ		(1 << 16)
4269
#define   DP_PLL_FREQ_162MHZ		(1 << 16)
Line 4211... Line 4270...
4211
#define   DP_PLL_FREQ_MASK		(3 << 16)
4270
#define   DP_PLL_FREQ_MASK		(3 << 16)
4212
 
4271
 
Line 4238... Line 4297...
4238
/* The aux channel provides a way to talk to the
4297
/* The aux channel provides a way to talk to the
4239
 * signal sink for DDC etc. Max packet size supported
4298
 * signal sink for DDC etc. Max packet size supported
4240
 * is 20 bytes in each direction, hence the 5 fixed
4299
 * is 20 bytes in each direction, hence the 5 fixed
4241
 * data registers
4300
 * data registers
4242
 */
4301
 */
4243
#define DPA_AUX_CH_CTL			0x64010
4302
#define _DPA_AUX_CH_CTL		(dev_priv->info.display_mmio_offset + 0x64010)
4244
#define DPA_AUX_CH_DATA1		0x64014
4303
#define _DPA_AUX_CH_DATA1	(dev_priv->info.display_mmio_offset + 0x64014)
4245
#define DPA_AUX_CH_DATA2		0x64018
4304
#define _DPA_AUX_CH_DATA2	(dev_priv->info.display_mmio_offset + 0x64018)
4246
#define DPA_AUX_CH_DATA3		0x6401c
4305
#define _DPA_AUX_CH_DATA3	(dev_priv->info.display_mmio_offset + 0x6401c)
4247
#define DPA_AUX_CH_DATA4		0x64020
4306
#define _DPA_AUX_CH_DATA4	(dev_priv->info.display_mmio_offset + 0x64020)
4248
#define DPA_AUX_CH_DATA5		0x64024
4307
#define _DPA_AUX_CH_DATA5	(dev_priv->info.display_mmio_offset + 0x64024)
4249
 
4308
 
4250
#define DPB_AUX_CH_CTL			0x64110
4309
#define _DPB_AUX_CH_CTL		(dev_priv->info.display_mmio_offset + 0x64110)
4251
#define DPB_AUX_CH_DATA1		0x64114
4310
#define _DPB_AUX_CH_DATA1	(dev_priv->info.display_mmio_offset + 0x64114)
4252
#define DPB_AUX_CH_DATA2		0x64118
4311
#define _DPB_AUX_CH_DATA2	(dev_priv->info.display_mmio_offset + 0x64118)
4253
#define DPB_AUX_CH_DATA3		0x6411c
4312
#define _DPB_AUX_CH_DATA3	(dev_priv->info.display_mmio_offset + 0x6411c)
4254
#define DPB_AUX_CH_DATA4		0x64120
4313
#define _DPB_AUX_CH_DATA4	(dev_priv->info.display_mmio_offset + 0x64120)
4255
#define DPB_AUX_CH_DATA5		0x64124
4314
#define _DPB_AUX_CH_DATA5	(dev_priv->info.display_mmio_offset + 0x64124)
4256
 
4315
 
4257
#define DPC_AUX_CH_CTL			0x64210
4316
#define _DPC_AUX_CH_CTL		(dev_priv->info.display_mmio_offset + 0x64210)
4258
#define DPC_AUX_CH_DATA1		0x64214
4317
#define _DPC_AUX_CH_DATA1	(dev_priv->info.display_mmio_offset + 0x64214)
4259
#define DPC_AUX_CH_DATA2		0x64218
4318
#define _DPC_AUX_CH_DATA2	(dev_priv->info.display_mmio_offset + 0x64218)
4260
#define DPC_AUX_CH_DATA3		0x6421c
4319
#define _DPC_AUX_CH_DATA3	(dev_priv->info.display_mmio_offset + 0x6421c)
4261
#define DPC_AUX_CH_DATA4		0x64220
4320
#define _DPC_AUX_CH_DATA4	(dev_priv->info.display_mmio_offset + 0x64220)
4262
#define DPC_AUX_CH_DATA5		0x64224
4321
#define _DPC_AUX_CH_DATA5	(dev_priv->info.display_mmio_offset + 0x64224)
4263
 
4322
 
4264
#define DPD_AUX_CH_CTL			0x64310
4323
#define _DPD_AUX_CH_CTL		(dev_priv->info.display_mmio_offset + 0x64310)
4265
#define DPD_AUX_CH_DATA1		0x64314
4324
#define _DPD_AUX_CH_DATA1	(dev_priv->info.display_mmio_offset + 0x64314)
4266
#define DPD_AUX_CH_DATA2		0x64318
4325
#define _DPD_AUX_CH_DATA2	(dev_priv->info.display_mmio_offset + 0x64318)
4267
#define DPD_AUX_CH_DATA3		0x6431c
4326
#define _DPD_AUX_CH_DATA3	(dev_priv->info.display_mmio_offset + 0x6431c)
4268
#define DPD_AUX_CH_DATA4		0x64320
4327
#define _DPD_AUX_CH_DATA4	(dev_priv->info.display_mmio_offset + 0x64320)
4269
#define DPD_AUX_CH_DATA5		0x64324
4328
#define _DPD_AUX_CH_DATA5	(dev_priv->info.display_mmio_offset + 0x64324)
-
 
4329
 
-
 
4330
#define DP_AUX_CH_CTL(port)	_MMIO_PORT(port, _DPA_AUX_CH_CTL, _DPB_AUX_CH_CTL)
-
 
4331
#define DP_AUX_CH_DATA(port, i)	_MMIO(_PORT(port, _DPA_AUX_CH_DATA1, _DPB_AUX_CH_DATA1) + (i) * 4) /* 5 registers */
Line 4270... Line 4332...
4270
 
4332
 
4271
#define   DP_AUX_CH_CTL_SEND_BUSY	    (1 << 31)
4333
#define   DP_AUX_CH_CTL_SEND_BUSY	    (1 << 31)
4272
#define   DP_AUX_CH_CTL_DONE		    (1 << 30)
4334
#define   DP_AUX_CH_CTL_DONE		    (1 << 30)
4273
#define   DP_AUX_CH_CTL_INTERRUPT	    (1 << 29)
4335
#define   DP_AUX_CH_CTL_INTERRUPT	    (1 << 29)
Line 4341... Line 4403...
4341
 
4403
 
4342
#define _PIPEA_LINK_N_G4X	0x70064
4404
#define _PIPEA_LINK_N_G4X	0x70064
4343
#define _PIPEB_LINK_N_G4X	0x71064
4405
#define _PIPEB_LINK_N_G4X	0x71064
Line 4344... Line 4406...
4344
#define   PIPEA_DP_LINK_N_MASK			(0xffffff)
4406
#define   PIPEA_DP_LINK_N_MASK			(0xffffff)
4345
 
4407
 
4346
#define PIPE_DATA_M_G4X(pipe) _PIPE(pipe, _PIPEA_DATA_M_G4X, _PIPEB_DATA_M_G4X)
4408
#define PIPE_DATA_M_G4X(pipe) _MMIO_PIPE(pipe, _PIPEA_DATA_M_G4X, _PIPEB_DATA_M_G4X)
4347
#define PIPE_DATA_N_G4X(pipe) _PIPE(pipe, _PIPEA_DATA_N_G4X, _PIPEB_DATA_N_G4X)
4409
#define PIPE_DATA_N_G4X(pipe) _MMIO_PIPE(pipe, _PIPEA_DATA_N_G4X, _PIPEB_DATA_N_G4X)
Line 4348... Line 4410...
4348
#define PIPE_LINK_M_G4X(pipe) _PIPE(pipe, _PIPEA_LINK_M_G4X, _PIPEB_LINK_M_G4X)
4410
#define PIPE_LINK_M_G4X(pipe) _MMIO_PIPE(pipe, _PIPEA_LINK_M_G4X, _PIPEB_LINK_M_G4X)
Line 4349... Line 4411...
4349
#define PIPE_LINK_N_G4X(pipe) _PIPE(pipe, _PIPEA_LINK_N_G4X, _PIPEB_LINK_N_G4X)
4411
#define PIPE_LINK_N_G4X(pipe) _MMIO_PIPE(pipe, _PIPEA_LINK_N_G4X, _PIPEB_LINK_N_G4X)
4350
 
4412
 
Line 4460... Line 4522...
4460
 * keeping their original offset. Thus we need PIPE_EDP_OFFSET
4522
 * keeping their original offset. Thus we need PIPE_EDP_OFFSET
4461
 * to access such registers in transcoder EDP.
4523
 * to access such registers in transcoder EDP.
4462
 */
4524
 */
4463
#define PIPE_EDP_OFFSET	0x7f000
4525
#define PIPE_EDP_OFFSET	0x7f000
Line 4464... Line 4526...
4464
 
4526
 
4465
#define _PIPE2(pipe, reg) (dev_priv->info.pipe_offsets[pipe] - \
4527
#define _MMIO_PIPE2(pipe, reg) _MMIO(dev_priv->info.pipe_offsets[pipe] - \
4466
	dev_priv->info.pipe_offsets[PIPE_A] + (reg) + \
4528
	dev_priv->info.pipe_offsets[PIPE_A] + (reg) + \
Line 4467... Line 4529...
4467
	dev_priv->info.display_mmio_offset)
4529
	dev_priv->info.display_mmio_offset)
4468
 
4530
 
4469
#define PIPECONF(pipe) _PIPE2(pipe, _PIPEACONF)
4531
#define PIPECONF(pipe)		_MMIO_PIPE2(pipe, _PIPEACONF)
4470
#define PIPEDSL(pipe)  _PIPE2(pipe, _PIPEADSL)
4532
#define PIPEDSL(pipe)		_MMIO_PIPE2(pipe, _PIPEADSL)
4471
#define PIPEFRAME(pipe) _PIPE2(pipe, _PIPEAFRAMEHIGH)
4533
#define PIPEFRAME(pipe)		_MMIO_PIPE2(pipe, _PIPEAFRAMEHIGH)
Line 4472... Line 4534...
4472
#define PIPEFRAMEPIXEL(pipe)  _PIPE2(pipe, _PIPEAFRAMEPIXEL)
4534
#define PIPEFRAMEPIXEL(pipe)	_MMIO_PIPE2(pipe, _PIPEAFRAMEPIXEL)
4473
#define PIPESTAT(pipe) _PIPE2(pipe, _PIPEASTAT)
4535
#define PIPESTAT(pipe)		_MMIO_PIPE2(pipe, _PIPEASTAT)
4474
 
4536
 
4475
#define _PIPE_MISC_A			0x70030
4537
#define _PIPE_MISC_A			0x70030
Line 4480... Line 4542...
4480
#define   PIPEMISC_DITHER_6_BPC		(2<<5)
4542
#define   PIPEMISC_DITHER_6_BPC		(2<<5)
4481
#define   PIPEMISC_DITHER_12_BPC	(3<<5)
4543
#define   PIPEMISC_DITHER_12_BPC	(3<<5)
4482
#define   PIPEMISC_DITHER_ENABLE	(1<<4)
4544
#define   PIPEMISC_DITHER_ENABLE	(1<<4)
4483
#define   PIPEMISC_DITHER_TYPE_MASK	(3<<2)
4545
#define   PIPEMISC_DITHER_TYPE_MASK	(3<<2)
4484
#define   PIPEMISC_DITHER_TYPE_SP	(0<<2)
4546
#define   PIPEMISC_DITHER_TYPE_SP	(0<<2)
4485
#define PIPEMISC(pipe) _PIPE2(pipe, _PIPE_MISC_A)
4547
#define PIPEMISC(pipe)			_MMIO_PIPE2(pipe, _PIPE_MISC_A)
Line 4486... Line 4548...
4486
 
4548
 
4487
#define VLV_DPFLIPSTAT				(VLV_DISPLAY_BASE + 0x70028)
4549
#define VLV_DPFLIPSTAT				_MMIO(VLV_DISPLAY_BASE + 0x70028)
4488
#define   PIPEB_LINE_COMPARE_INT_EN		(1<<29)
4550
#define   PIPEB_LINE_COMPARE_INT_EN		(1<<29)
4489
#define   PIPEB_HLINE_INT_EN			(1<<28)
4551
#define   PIPEB_HLINE_INT_EN			(1<<28)
4490
#define   PIPEB_VBLANK_INT_EN			(1<<27)
4552
#define   PIPEB_VBLANK_INT_EN			(1<<27)
4491
#define   SPRITED_FLIP_DONE_INT_EN		(1<<26)
4553
#define   SPRITED_FLIP_DONE_INT_EN		(1<<26)
Line 4503... Line 4565...
4503
#define   PIPEC_VBLANK_INT_EN			(1<<11)
4565
#define   PIPEC_VBLANK_INT_EN			(1<<11)
4504
#define   SPRITEF_FLIPDONE_INT_EN		(1<<10)
4566
#define   SPRITEF_FLIPDONE_INT_EN		(1<<10)
4505
#define   SPRITEE_FLIPDONE_INT_EN		(1<<9)
4567
#define   SPRITEE_FLIPDONE_INT_EN		(1<<9)
4506
#define   PLANEC_FLIPDONE_INT_EN		(1<<8)
4568
#define   PLANEC_FLIPDONE_INT_EN		(1<<8)
Line 4507... Line 4569...
4507
 
4569
 
4508
#define DPINVGTT				(VLV_DISPLAY_BASE + 0x7002c) /* VLV/CHV only */
4570
#define DPINVGTT				_MMIO(VLV_DISPLAY_BASE + 0x7002c) /* VLV/CHV only */
4509
#define   SPRITEF_INVALID_GTT_INT_EN		(1<<27)
4571
#define   SPRITEF_INVALID_GTT_INT_EN		(1<<27)
4510
#define   SPRITEE_INVALID_GTT_INT_EN		(1<<26)
4572
#define   SPRITEE_INVALID_GTT_INT_EN		(1<<26)
4511
#define   PLANEC_INVALID_GTT_INT_EN		(1<<25)
4573
#define   PLANEC_INVALID_GTT_INT_EN		(1<<25)
4512
#define   CURSORC_INVALID_GTT_INT_EN		(1<<24)
4574
#define   CURSORC_INVALID_GTT_INT_EN		(1<<24)
Line 4533... Line 4595...
4533
#define   SPRITEA_INVALID_GTT_STATUS		(1<<1)
4595
#define   SPRITEA_INVALID_GTT_STATUS		(1<<1)
4534
#define   PLANEA_INVALID_GTT_STATUS		(1<<0)
4596
#define   PLANEA_INVALID_GTT_STATUS		(1<<0)
4535
#define   DPINVGTT_STATUS_MASK			0xff
4597
#define   DPINVGTT_STATUS_MASK			0xff
4536
#define   DPINVGTT_STATUS_MASK_CHV		0xfff
4598
#define   DPINVGTT_STATUS_MASK_CHV		0xfff
Line 4537... Line 4599...
4537
 
4599
 
4538
#define DSPARB			(dev_priv->info.display_mmio_offset + 0x70030)
4600
#define DSPARB			_MMIO(dev_priv->info.display_mmio_offset + 0x70030)
4539
#define   DSPARB_CSTART_MASK	(0x7f << 7)
4601
#define   DSPARB_CSTART_MASK	(0x7f << 7)
4540
#define   DSPARB_CSTART_SHIFT	7
4602
#define   DSPARB_CSTART_SHIFT	7
4541
#define   DSPARB_BSTART_MASK	(0x7f)
4603
#define   DSPARB_BSTART_MASK	(0x7f)
4542
#define   DSPARB_BSTART_SHIFT	0
4604
#define   DSPARB_BSTART_SHIFT	0
Line 4548... Line 4610...
4548
#define   DSPARB_SPRITEB_MASK_VLV	(0xff << 8)
4610
#define   DSPARB_SPRITEB_MASK_VLV	(0xff << 8)
4549
#define   DSPARB_SPRITEC_SHIFT_VLV	16
4611
#define   DSPARB_SPRITEC_SHIFT_VLV	16
4550
#define   DSPARB_SPRITEC_MASK_VLV	(0xff << 16)
4612
#define   DSPARB_SPRITEC_MASK_VLV	(0xff << 16)
4551
#define   DSPARB_SPRITED_SHIFT_VLV	24
4613
#define   DSPARB_SPRITED_SHIFT_VLV	24
4552
#define   DSPARB_SPRITED_MASK_VLV	(0xff << 24)
4614
#define   DSPARB_SPRITED_MASK_VLV	(0xff << 24)
4553
#define DSPARB2			(VLV_DISPLAY_BASE + 0x70060) /* vlv/chv */
4615
#define DSPARB2				_MMIO(VLV_DISPLAY_BASE + 0x70060) /* vlv/chv */
4554
#define   DSPARB_SPRITEA_HI_SHIFT_VLV	0
4616
#define   DSPARB_SPRITEA_HI_SHIFT_VLV	0
4555
#define   DSPARB_SPRITEA_HI_MASK_VLV	(0x1 << 0)
4617
#define   DSPARB_SPRITEA_HI_MASK_VLV	(0x1 << 0)
4556
#define   DSPARB_SPRITEB_HI_SHIFT_VLV	4
4618
#define   DSPARB_SPRITEB_HI_SHIFT_VLV	4
4557
#define   DSPARB_SPRITEB_HI_MASK_VLV	(0x1 << 4)
4619
#define   DSPARB_SPRITEB_HI_MASK_VLV	(0x1 << 4)
4558
#define   DSPARB_SPRITEC_HI_SHIFT_VLV	8
4620
#define   DSPARB_SPRITEC_HI_SHIFT_VLV	8
Line 4561... Line 4623...
4561
#define   DSPARB_SPRITED_HI_MASK_VLV	(0x1 << 12)
4623
#define   DSPARB_SPRITED_HI_MASK_VLV	(0x1 << 12)
4562
#define   DSPARB_SPRITEE_HI_SHIFT_VLV	16
4624
#define   DSPARB_SPRITEE_HI_SHIFT_VLV	16
4563
#define   DSPARB_SPRITEE_HI_MASK_VLV	(0x1 << 16)
4625
#define   DSPARB_SPRITEE_HI_MASK_VLV	(0x1 << 16)
4564
#define   DSPARB_SPRITEF_HI_SHIFT_VLV	20
4626
#define   DSPARB_SPRITEF_HI_SHIFT_VLV	20
4565
#define   DSPARB_SPRITEF_HI_MASK_VLV	(0x1 << 20)
4627
#define   DSPARB_SPRITEF_HI_MASK_VLV	(0x1 << 20)
4566
#define DSPARB3			(VLV_DISPLAY_BASE + 0x7006c) /* chv */
4628
#define DSPARB3				_MMIO(VLV_DISPLAY_BASE + 0x7006c) /* chv */
4567
#define   DSPARB_SPRITEE_SHIFT_VLV	0
4629
#define   DSPARB_SPRITEE_SHIFT_VLV	0
4568
#define   DSPARB_SPRITEE_MASK_VLV	(0xff << 0)
4630
#define   DSPARB_SPRITEE_MASK_VLV	(0xff << 0)
4569
#define   DSPARB_SPRITEF_SHIFT_VLV	8
4631
#define   DSPARB_SPRITEF_SHIFT_VLV	8
4570
#define   DSPARB_SPRITEF_MASK_VLV	(0xff << 8)
4632
#define   DSPARB_SPRITEF_MASK_VLV	(0xff << 8)
Line 4571... Line 4633...
4571
 
4633
 
4572
/* pnv/gen4/g4x/vlv/chv */
4634
/* pnv/gen4/g4x/vlv/chv */
4573
#define DSPFW1			(dev_priv->info.display_mmio_offset + 0x70034)
4635
#define DSPFW1		_MMIO(dev_priv->info.display_mmio_offset + 0x70034)
4574
#define   DSPFW_SR_SHIFT		23
4636
#define   DSPFW_SR_SHIFT		23
4575
#define   DSPFW_SR_MASK			(0x1ff<<23)
4637
#define   DSPFW_SR_MASK			(0x1ff<<23)
4576
#define   DSPFW_CURSORB_SHIFT		16
4638
#define   DSPFW_CURSORB_SHIFT		16
4577
#define   DSPFW_CURSORB_MASK		(0x3f<<16)
4639
#define   DSPFW_CURSORB_MASK		(0x3f<<16)
4578
#define   DSPFW_PLANEB_SHIFT		8
4640
#define   DSPFW_PLANEB_SHIFT		8
4579
#define   DSPFW_PLANEB_MASK		(0x7f<<8)
4641
#define   DSPFW_PLANEB_MASK		(0x7f<<8)
4580
#define   DSPFW_PLANEB_MASK_VLV		(0xff<<8) /* vlv/chv */
4642
#define   DSPFW_PLANEB_MASK_VLV		(0xff<<8) /* vlv/chv */
4581
#define   DSPFW_PLANEA_SHIFT		0
4643
#define   DSPFW_PLANEA_SHIFT		0
4582
#define   DSPFW_PLANEA_MASK		(0x7f<<0)
4644
#define   DSPFW_PLANEA_MASK		(0x7f<<0)
4583
#define   DSPFW_PLANEA_MASK_VLV		(0xff<<0) /* vlv/chv */
4645
#define   DSPFW_PLANEA_MASK_VLV		(0xff<<0) /* vlv/chv */
4584
#define DSPFW2			(dev_priv->info.display_mmio_offset + 0x70038)
4646
#define DSPFW2		_MMIO(dev_priv->info.display_mmio_offset + 0x70038)
4585
#define   DSPFW_FBC_SR_EN		(1<<31)	  /* g4x */
4647
#define   DSPFW_FBC_SR_EN		(1<<31)	  /* g4x */
4586
#define   DSPFW_FBC_SR_SHIFT		28
4648
#define   DSPFW_FBC_SR_SHIFT		28
4587
#define   DSPFW_FBC_SR_MASK		(0x7<<28) /* g4x */
4649
#define   DSPFW_FBC_SR_MASK		(0x7<<28) /* g4x */
4588
#define   DSPFW_FBC_HPLL_SR_SHIFT	24
4650
#define   DSPFW_FBC_HPLL_SR_SHIFT	24
Line 4595... Line 4657...
4595
#define   DSPFW_PLANEC_OLD_SHIFT	0
4657
#define   DSPFW_PLANEC_OLD_SHIFT	0
4596
#define   DSPFW_PLANEC_OLD_MASK		(0x7f<<0) /* pre-gen4 sprite C */
4658
#define   DSPFW_PLANEC_OLD_MASK		(0x7f<<0) /* pre-gen4 sprite C */
4597
#define   DSPFW_SPRITEA_SHIFT		0
4659
#define   DSPFW_SPRITEA_SHIFT		0
4598
#define   DSPFW_SPRITEA_MASK		(0x7f<<0) /* g4x */
4660
#define   DSPFW_SPRITEA_MASK		(0x7f<<0) /* g4x */
4599
#define   DSPFW_SPRITEA_MASK_VLV	(0xff<<0) /* vlv/chv */
4661
#define   DSPFW_SPRITEA_MASK_VLV	(0xff<<0) /* vlv/chv */
4600
#define DSPFW3			(dev_priv->info.display_mmio_offset + 0x7003c)
4662
#define DSPFW3		_MMIO(dev_priv->info.display_mmio_offset + 0x7003c)
4601
#define   DSPFW_HPLL_SR_EN		(1<<31)
4663
#define   DSPFW_HPLL_SR_EN		(1<<31)
4602
#define   PINEVIEW_SELF_REFRESH_EN	(1<<30)
4664
#define   PINEVIEW_SELF_REFRESH_EN	(1<<30)
4603
#define   DSPFW_CURSOR_SR_SHIFT		24
4665
#define   DSPFW_CURSOR_SR_SHIFT		24
4604
#define   DSPFW_CURSOR_SR_MASK		(0x3f<<24)
4666
#define   DSPFW_CURSOR_SR_MASK		(0x3f<<24)
4605
#define   DSPFW_HPLL_CURSOR_SHIFT	16
4667
#define   DSPFW_HPLL_CURSOR_SHIFT	16
4606
#define   DSPFW_HPLL_CURSOR_MASK	(0x3f<<16)
4668
#define   DSPFW_HPLL_CURSOR_MASK	(0x3f<<16)
4607
#define   DSPFW_HPLL_SR_SHIFT		0
4669
#define   DSPFW_HPLL_SR_SHIFT		0
4608
#define   DSPFW_HPLL_SR_MASK		(0x1ff<<0)
4670
#define   DSPFW_HPLL_SR_MASK		(0x1ff<<0)
Line 4609... Line 4671...
4609
 
4671
 
4610
/* vlv/chv */
4672
/* vlv/chv */
4611
#define DSPFW4			(VLV_DISPLAY_BASE + 0x70070)
4673
#define DSPFW4		_MMIO(VLV_DISPLAY_BASE + 0x70070)
4612
#define   DSPFW_SPRITEB_WM1_SHIFT	16
4674
#define   DSPFW_SPRITEB_WM1_SHIFT	16
4613
#define   DSPFW_SPRITEB_WM1_MASK	(0xff<<16)
4675
#define   DSPFW_SPRITEB_WM1_MASK	(0xff<<16)
4614
#define   DSPFW_CURSORA_WM1_SHIFT	8
4676
#define   DSPFW_CURSORA_WM1_SHIFT	8
4615
#define   DSPFW_CURSORA_WM1_MASK	(0x3f<<8)
4677
#define   DSPFW_CURSORA_WM1_MASK	(0x3f<<8)
4616
#define   DSPFW_SPRITEA_WM1_SHIFT	0
4678
#define   DSPFW_SPRITEA_WM1_SHIFT	0
4617
#define   DSPFW_SPRITEA_WM1_MASK	(0xff<<0)
4679
#define   DSPFW_SPRITEA_WM1_MASK	(0xff<<0)
4618
#define DSPFW5			(VLV_DISPLAY_BASE + 0x70074)
4680
#define DSPFW5		_MMIO(VLV_DISPLAY_BASE + 0x70074)
4619
#define   DSPFW_PLANEB_WM1_SHIFT	24
4681
#define   DSPFW_PLANEB_WM1_SHIFT	24
4620
#define   DSPFW_PLANEB_WM1_MASK		(0xff<<24)
4682
#define   DSPFW_PLANEB_WM1_MASK		(0xff<<24)
4621
#define   DSPFW_PLANEA_WM1_SHIFT	16
4683
#define   DSPFW_PLANEA_WM1_SHIFT	16
4622
#define   DSPFW_PLANEA_WM1_MASK		(0xff<<16)
4684
#define   DSPFW_PLANEA_WM1_MASK		(0xff<<16)
4623
#define   DSPFW_CURSORB_WM1_SHIFT	8
4685
#define   DSPFW_CURSORB_WM1_SHIFT	8
4624
#define   DSPFW_CURSORB_WM1_MASK	(0x3f<<8)
4686
#define   DSPFW_CURSORB_WM1_MASK	(0x3f<<8)
4625
#define   DSPFW_CURSOR_SR_WM1_SHIFT	0
4687
#define   DSPFW_CURSOR_SR_WM1_SHIFT	0
4626
#define   DSPFW_CURSOR_SR_WM1_MASK	(0x3f<<0)
4688
#define   DSPFW_CURSOR_SR_WM1_MASK	(0x3f<<0)
4627
#define DSPFW6			(VLV_DISPLAY_BASE + 0x70078)
4689
#define DSPFW6		_MMIO(VLV_DISPLAY_BASE + 0x70078)
4628
#define   DSPFW_SR_WM1_SHIFT		0
4690
#define   DSPFW_SR_WM1_SHIFT		0
4629
#define   DSPFW_SR_WM1_MASK		(0x1ff<<0)
4691
#define   DSPFW_SR_WM1_MASK		(0x1ff<<0)
4630
#define DSPFW7			(VLV_DISPLAY_BASE + 0x7007c)
4692
#define DSPFW7		_MMIO(VLV_DISPLAY_BASE + 0x7007c)
4631
#define DSPFW7_CHV		(VLV_DISPLAY_BASE + 0x700b4) /* wtf #1? */
4693
#define DSPFW7_CHV	_MMIO(VLV_DISPLAY_BASE + 0x700b4) /* wtf #1? */
4632
#define   DSPFW_SPRITED_WM1_SHIFT	24
4694
#define   DSPFW_SPRITED_WM1_SHIFT	24
4633
#define   DSPFW_SPRITED_WM1_MASK	(0xff<<24)
4695
#define   DSPFW_SPRITED_WM1_MASK	(0xff<<24)
4634
#define   DSPFW_SPRITED_SHIFT		16
4696
#define   DSPFW_SPRITED_SHIFT		16
4635
#define   DSPFW_SPRITED_MASK_VLV	(0xff<<16)
4697
#define   DSPFW_SPRITED_MASK_VLV	(0xff<<16)
4636
#define   DSPFW_SPRITEC_WM1_SHIFT	8
4698
#define   DSPFW_SPRITEC_WM1_SHIFT	8
4637
#define   DSPFW_SPRITEC_WM1_MASK	(0xff<<8)
4699
#define   DSPFW_SPRITEC_WM1_MASK	(0xff<<8)
4638
#define   DSPFW_SPRITEC_SHIFT		0
4700
#define   DSPFW_SPRITEC_SHIFT		0
4639
#define   DSPFW_SPRITEC_MASK_VLV	(0xff<<0)
4701
#define   DSPFW_SPRITEC_MASK_VLV	(0xff<<0)
4640
#define DSPFW8_CHV		(VLV_DISPLAY_BASE + 0x700b8)
4702
#define DSPFW8_CHV	_MMIO(VLV_DISPLAY_BASE + 0x700b8)
4641
#define   DSPFW_SPRITEF_WM1_SHIFT	24
4703
#define   DSPFW_SPRITEF_WM1_SHIFT	24
4642
#define   DSPFW_SPRITEF_WM1_MASK	(0xff<<24)
4704
#define   DSPFW_SPRITEF_WM1_MASK	(0xff<<24)
4643
#define   DSPFW_SPRITEF_SHIFT		16
4705
#define   DSPFW_SPRITEF_SHIFT		16
4644
#define   DSPFW_SPRITEF_MASK_VLV	(0xff<<16)
4706
#define   DSPFW_SPRITEF_MASK_VLV	(0xff<<16)
4645
#define   DSPFW_SPRITEE_WM1_SHIFT	8
4707
#define   DSPFW_SPRITEE_WM1_SHIFT	8
4646
#define   DSPFW_SPRITEE_WM1_MASK	(0xff<<8)
4708
#define   DSPFW_SPRITEE_WM1_MASK	(0xff<<8)
4647
#define   DSPFW_SPRITEE_SHIFT		0
4709
#define   DSPFW_SPRITEE_SHIFT		0
4648
#define   DSPFW_SPRITEE_MASK_VLV	(0xff<<0)
4710
#define   DSPFW_SPRITEE_MASK_VLV	(0xff<<0)
4649
#define DSPFW9_CHV		(VLV_DISPLAY_BASE + 0x7007c) /* wtf #2? */
4711
#define DSPFW9_CHV	_MMIO(VLV_DISPLAY_BASE + 0x7007c) /* wtf #2? */
4650
#define   DSPFW_PLANEC_WM1_SHIFT	24
4712
#define   DSPFW_PLANEC_WM1_SHIFT	24
4651
#define   DSPFW_PLANEC_WM1_MASK		(0xff<<24)
4713
#define   DSPFW_PLANEC_WM1_MASK		(0xff<<24)
4652
#define   DSPFW_PLANEC_SHIFT		16
4714
#define   DSPFW_PLANEC_SHIFT		16
4653
#define   DSPFW_PLANEC_MASK_VLV		(0xff<<16)
4715
#define   DSPFW_PLANEC_MASK_VLV		(0xff<<16)
4654
#define   DSPFW_CURSORC_WM1_SHIFT	8
4716
#define   DSPFW_CURSORC_WM1_SHIFT	8
4655
#define   DSPFW_CURSORC_WM1_MASK	(0x3f<<16)
4717
#define   DSPFW_CURSORC_WM1_MASK	(0x3f<<16)
4656
#define   DSPFW_CURSORC_SHIFT		0
4718
#define   DSPFW_CURSORC_SHIFT		0
Line 4657... Line 4719...
4657
#define   DSPFW_CURSORC_MASK		(0x3f<<0)
4719
#define   DSPFW_CURSORC_MASK		(0x3f<<0)
4658
 
4720
 
4659
/* vlv/chv high order bits */
4721
/* vlv/chv high order bits */
4660
#define DSPHOWM			(VLV_DISPLAY_BASE + 0x70064)
4722
#define DSPHOWM		_MMIO(VLV_DISPLAY_BASE + 0x70064)
4661
#define   DSPFW_SR_HI_SHIFT		24
4723
#define   DSPFW_SR_HI_SHIFT		24
4662
#define   DSPFW_SR_HI_MASK		(3<<24) /* 2 bits for chv, 1 for vlv */
4724
#define   DSPFW_SR_HI_MASK		(3<<24) /* 2 bits for chv, 1 for vlv */
4663
#define   DSPFW_SPRITEF_HI_SHIFT	23
4725
#define   DSPFW_SPRITEF_HI_SHIFT	23
Line 4676... Line 4738...
4676
#define   DSPFW_SPRITEB_HI_MASK		(1<<8)
4738
#define   DSPFW_SPRITEB_HI_MASK		(1<<8)
4677
#define   DSPFW_SPRITEA_HI_SHIFT	4
4739
#define   DSPFW_SPRITEA_HI_SHIFT	4
4678
#define   DSPFW_SPRITEA_HI_MASK		(1<<4)
4740
#define   DSPFW_SPRITEA_HI_MASK		(1<<4)
4679
#define   DSPFW_PLANEA_HI_SHIFT		0
4741
#define   DSPFW_PLANEA_HI_SHIFT		0
4680
#define   DSPFW_PLANEA_HI_MASK		(1<<0)
4742
#define   DSPFW_PLANEA_HI_MASK		(1<<0)
4681
#define DSPHOWM1		(VLV_DISPLAY_BASE + 0x70068)
4743
#define DSPHOWM1	_MMIO(VLV_DISPLAY_BASE + 0x70068)
4682
#define   DSPFW_SR_WM1_HI_SHIFT		24
4744
#define   DSPFW_SR_WM1_HI_SHIFT		24
4683
#define   DSPFW_SR_WM1_HI_MASK		(3<<24) /* 2 bits for chv, 1 for vlv */
4745
#define   DSPFW_SR_WM1_HI_MASK		(3<<24) /* 2 bits for chv, 1 for vlv */
4684
#define   DSPFW_SPRITEF_WM1_HI_SHIFT	23
4746
#define   DSPFW_SPRITEF_WM1_HI_SHIFT	23
4685
#define   DSPFW_SPRITEF_WM1_HI_MASK	(1<<23)
4747
#define   DSPFW_SPRITEF_WM1_HI_MASK	(1<<23)
4686
#define   DSPFW_SPRITEE_WM1_HI_SHIFT	22
4748
#define   DSPFW_SPRITEE_WM1_HI_SHIFT	22
Line 4699... Line 4761...
4699
#define   DSPFW_SPRITEA_WM1_HI_MASK	(1<<4)
4761
#define   DSPFW_SPRITEA_WM1_HI_MASK	(1<<4)
4700
#define   DSPFW_PLANEA_WM1_HI_SHIFT	0
4762
#define   DSPFW_PLANEA_WM1_HI_SHIFT	0
4701
#define   DSPFW_PLANEA_WM1_HI_MASK	(1<<0)
4763
#define   DSPFW_PLANEA_WM1_HI_MASK	(1<<0)
Line 4702... Line 4764...
4702
 
4764
 
4703
/* drain latency register values*/
4765
/* drain latency register values*/
4704
#define VLV_DDL(pipe)			(VLV_DISPLAY_BASE + 0x70050 + 4 * (pipe))
4766
#define VLV_DDL(pipe)			_MMIO(VLV_DISPLAY_BASE + 0x70050 + 4 * (pipe))
4705
#define DDL_CURSOR_SHIFT		24
4767
#define DDL_CURSOR_SHIFT		24
4706
#define DDL_SPRITE_SHIFT(sprite)	(8+8*(sprite))
4768
#define DDL_SPRITE_SHIFT(sprite)	(8+8*(sprite))
4707
#define DDL_PLANE_SHIFT			0
4769
#define DDL_PLANE_SHIFT			0
4708
#define DDL_PRECISION_HIGH		(1<<7)
4770
#define DDL_PRECISION_HIGH		(1<<7)
4709
#define DDL_PRECISION_LOW		(0<<7)
4771
#define DDL_PRECISION_LOW		(0<<7)
Line 4710... Line 4772...
4710
#define DRAIN_LATENCY_MASK		0x7f
4772
#define DRAIN_LATENCY_MASK		0x7f
4711
 
4773
 
4712
#define CBR1_VLV			(VLV_DISPLAY_BASE + 0x70400)
4774
#define CBR1_VLV			_MMIO(VLV_DISPLAY_BASE + 0x70400)
Line 4713... Line 4775...
4713
#define  CBR_PND_DEADLINE_DISABLE	(1<<31)
4775
#define  CBR_PND_DEADLINE_DISABLE	(1<<31)
4714
#define  CBR_PWM_CLOCK_MUX_SELECT	(1<<30)
4776
#define  CBR_PWM_CLOCK_MUX_SELECT	(1<<30)
Line 4745... Line 4807...
4745
#define I965_CURSOR_FIFO	64
4807
#define I965_CURSOR_FIFO	64
4746
#define I965_CURSOR_MAX_WM	32
4808
#define I965_CURSOR_MAX_WM	32
4747
#define I965_CURSOR_DFT_WM	8
4809
#define I965_CURSOR_DFT_WM	8
Line 4748... Line 4810...
4748
 
4810
 
4749
/* Watermark register definitions for SKL */
4811
/* Watermark register definitions for SKL */
4750
#define CUR_WM_A_0		0x70140
4812
#define _CUR_WM_A_0		0x70140
4751
#define CUR_WM_B_0		0x71140
4813
#define _CUR_WM_B_0		0x71140
4752
#define PLANE_WM_1_A_0		0x70240
4814
#define _PLANE_WM_1_A_0		0x70240
4753
#define PLANE_WM_1_B_0		0x71240
4815
#define _PLANE_WM_1_B_0		0x71240
4754
#define PLANE_WM_2_A_0		0x70340
4816
#define _PLANE_WM_2_A_0		0x70340
4755
#define PLANE_WM_2_B_0		0x71340
4817
#define _PLANE_WM_2_B_0		0x71340
4756
#define PLANE_WM_TRANS_1_A_0	0x70268
4818
#define _PLANE_WM_TRANS_1_A_0	0x70268
4757
#define PLANE_WM_TRANS_1_B_0	0x71268
4819
#define _PLANE_WM_TRANS_1_B_0	0x71268
4758
#define PLANE_WM_TRANS_2_A_0	0x70368
4820
#define _PLANE_WM_TRANS_2_A_0	0x70368
4759
#define PLANE_WM_TRANS_2_B_0	0x71368
4821
#define _PLANE_WM_TRANS_2_B_0	0x71368
4760
#define CUR_WM_TRANS_A_0	0x70168
4822
#define _CUR_WM_TRANS_A_0	0x70168
4761
#define CUR_WM_TRANS_B_0	0x71168
4823
#define _CUR_WM_TRANS_B_0	0x71168
4762
#define   PLANE_WM_EN		(1 << 31)
4824
#define   PLANE_WM_EN		(1 << 31)
4763
#define   PLANE_WM_LINES_SHIFT	14
4825
#define   PLANE_WM_LINES_SHIFT	14
4764
#define   PLANE_WM_LINES_MASK	0x1f
4826
#define   PLANE_WM_LINES_MASK	0x1f
Line 4765... Line 4827...
4765
#define   PLANE_WM_BLOCKS_MASK	0x3ff
4827
#define   PLANE_WM_BLOCKS_MASK	0x3ff
4766
 
4828
 
4767
#define CUR_WM_0(pipe) _PIPE(pipe, CUR_WM_A_0, CUR_WM_B_0)
4829
#define _CUR_WM_0(pipe) _PIPE(pipe, _CUR_WM_A_0, _CUR_WM_B_0)
Line 4768... Line 4830...
4768
#define CUR_WM(pipe, level) (CUR_WM_0(pipe) + ((4) * (level)))
4830
#define CUR_WM(pipe, level) _MMIO(_CUR_WM_0(pipe) + ((4) * (level)))
4769
#define CUR_WM_TRANS(pipe) _PIPE(pipe, CUR_WM_TRANS_A_0, CUR_WM_TRANS_B_0)
4831
#define CUR_WM_TRANS(pipe) _MMIO_PIPE(pipe, _CUR_WM_TRANS_A_0, _CUR_WM_TRANS_B_0)
4770
 
4832
 
4771
#define _PLANE_WM_1(pipe) _PIPE(pipe, PLANE_WM_1_A_0, PLANE_WM_1_B_0)
4833
#define _PLANE_WM_1(pipe) _PIPE(pipe, _PLANE_WM_1_A_0, _PLANE_WM_1_B_0)
4772
#define _PLANE_WM_2(pipe) _PIPE(pipe, PLANE_WM_2_A_0, PLANE_WM_2_B_0)
4834
#define _PLANE_WM_2(pipe) _PIPE(pipe, _PLANE_WM_2_A_0, _PLANE_WM_2_B_0)
4773
#define _PLANE_WM_BASE(pipe, plane)	\
4835
#define _PLANE_WM_BASE(pipe, plane)	\
4774
			_PLANE(plane, _PLANE_WM_1(pipe), _PLANE_WM_2(pipe))
4836
			_PLANE(plane, _PLANE_WM_1(pipe), _PLANE_WM_2(pipe))
4775
#define PLANE_WM(pipe, plane, level)	\
4837
#define PLANE_WM(pipe, plane, level)	\
4776
			(_PLANE_WM_BASE(pipe, plane) + ((4) * (level)))
4838
			_MMIO(_PLANE_WM_BASE(pipe, plane) + ((4) * (level)))
4777
#define _PLANE_WM_TRANS_1(pipe)	\
4839
#define _PLANE_WM_TRANS_1(pipe)	\
4778
			_PIPE(pipe, PLANE_WM_TRANS_1_A_0, PLANE_WM_TRANS_1_B_0)
4840
			_PIPE(pipe, _PLANE_WM_TRANS_1_A_0, _PLANE_WM_TRANS_1_B_0)
4779
#define _PLANE_WM_TRANS_2(pipe)	\
4841
#define _PLANE_WM_TRANS_2(pipe)	\
Line 4780... Line 4842...
4780
			_PIPE(pipe, PLANE_WM_TRANS_2_A_0, PLANE_WM_TRANS_2_B_0)
4842
			_PIPE(pipe, _PLANE_WM_TRANS_2_A_0, _PLANE_WM_TRANS_2_B_0)
4781
#define PLANE_WM_TRANS(pipe, plane)	\
4843
#define PLANE_WM_TRANS(pipe, plane)	\
4782
		_PLANE(plane, _PLANE_WM_TRANS_1(pipe), _PLANE_WM_TRANS_2(pipe))
4844
	_MMIO(_PLANE(plane, _PLANE_WM_TRANS_1(pipe), _PLANE_WM_TRANS_2(pipe)))
4783
 
4845
 
4784
/* define the Watermark register on Ironlake */
4846
/* define the Watermark register on Ironlake */
4785
#define WM0_PIPEA_ILK		0x45100
4847
#define WM0_PIPEA_ILK		_MMIO(0x45100)
4786
#define  WM0_PIPE_PLANE_MASK	(0xffff<<16)
4848
#define  WM0_PIPE_PLANE_MASK	(0xffff<<16)
Line 4787... Line 4849...
4787
#define  WM0_PIPE_PLANE_SHIFT	16
4849
#define  WM0_PIPE_PLANE_SHIFT	16
4788
#define  WM0_PIPE_SPRITE_MASK	(0xff<<8)
4850
#define  WM0_PIPE_SPRITE_MASK	(0xff<<8)
4789
#define  WM0_PIPE_SPRITE_SHIFT	8
4851
#define  WM0_PIPE_SPRITE_SHIFT	8
4790
#define  WM0_PIPE_CURSOR_MASK	(0xff)
4852
#define  WM0_PIPE_CURSOR_MASK	(0xff)
4791
 
4853
 
4792
#define WM0_PIPEB_ILK		0x45104
4854
#define WM0_PIPEB_ILK		_MMIO(0x45104)
4793
#define WM0_PIPEC_IVB		0x45200
4855
#define WM0_PIPEC_IVB		_MMIO(0x45200)
4794
#define WM1_LP_ILK		0x45108
4856
#define WM1_LP_ILK		_MMIO(0x45108)
4795
#define  WM1_LP_SR_EN		(1<<31)
4857
#define  WM1_LP_SR_EN		(1<<31)
4796
#define  WM1_LP_LATENCY_SHIFT	24
4858
#define  WM1_LP_LATENCY_SHIFT	24
4797
#define  WM1_LP_LATENCY_MASK	(0x7f<<24)
4859
#define  WM1_LP_LATENCY_MASK	(0x7f<<24)
4798
#define  WM1_LP_FBC_MASK	(0xf<<20)
4860
#define  WM1_LP_FBC_MASK	(0xf<<20)
4799
#define  WM1_LP_FBC_SHIFT	20
4861
#define  WM1_LP_FBC_SHIFT	20
4800
#define  WM1_LP_FBC_SHIFT_BDW	19
4862
#define  WM1_LP_FBC_SHIFT_BDW	19
4801
#define  WM1_LP_SR_MASK		(0x7ff<<8)
4863
#define  WM1_LP_SR_MASK		(0x7ff<<8)
4802
#define  WM1_LP_SR_SHIFT	8
4864
#define  WM1_LP_SR_SHIFT	8
4803
#define  WM1_LP_CURSOR_MASK	(0xff)
4865
#define  WM1_LP_CURSOR_MASK	(0xff)
4804
#define WM2_LP_ILK		0x4510c
4866
#define WM2_LP_ILK		_MMIO(0x4510c)
4805
#define  WM2_LP_EN		(1<<31)
4867
#define  WM2_LP_EN		(1<<31)
4806
#define WM3_LP_ILK		0x45110
4868
#define WM3_LP_ILK		_MMIO(0x45110)
Line 4807... Line 4869...
4807
#define  WM3_LP_EN		(1<<31)
4869
#define  WM3_LP_EN		(1<<31)
4808
#define WM1S_LP_ILK		0x45120
4870
#define WM1S_LP_ILK		_MMIO(0x45120)
4809
#define WM2S_LP_IVB		0x45124
4871
#define WM2S_LP_IVB		_MMIO(0x45124)
Line 4810... Line 4872...
4810
#define WM3S_LP_IVB		0x45128
4872
#define WM3S_LP_IVB		_MMIO(0x45128)
4811
#define  WM1S_LP_EN		(1<<31)
4873
#define  WM1S_LP_EN		(1<<31)
4812
 
4874
 
4813
#define HSW_WM_LP_VAL(lat, fbc, pri, cur) \
4875
#define HSW_WM_LP_VAL(lat, fbc, pri, cur) \
4814
	(WM3_LP_EN | ((lat) << WM1_LP_LATENCY_SHIFT) | \
4876
	(WM3_LP_EN | ((lat) << WM1_LP_LATENCY_SHIFT) | \
4815
	 ((fbc) << WM1_LP_FBC_SHIFT) | ((pri) << WM1_LP_SR_SHIFT) | (cur))
4877
	 ((fbc) << WM1_LP_FBC_SHIFT) | ((pri) << WM1_LP_SR_SHIFT) | (cur))
Line 4816... Line 4878...
4816
 
4878
 
4817
/* Memory latency timer register */
4879
/* Memory latency timer register */
4818
#define MLTR_ILK		0x11222
4880
#define MLTR_ILK		_MMIO(0x11222)
4819
#define  MLTR_WM1_SHIFT		0
4881
#define  MLTR_WM1_SHIFT		0
4820
#define  MLTR_WM2_SHIFT		8
4882
#define  MLTR_WM2_SHIFT		8
4821
/* the unit of memory self-refresh latency time is 0.5us */
4883
/* the unit of memory self-refresh latency time is 0.5us */
4822
#define  ILK_SRLT_MASK		0x3f
4884
#define  ILK_SRLT_MASK		0x3f
Line 4854... Line 4916...
4854
#define   PIPE_PIXEL_MASK         0x00ffffff
4916
#define   PIPE_PIXEL_MASK         0x00ffffff
4855
#define   PIPE_PIXEL_SHIFT        0
4917
#define   PIPE_PIXEL_SHIFT        0
4856
/* GM45+ just has to be different */
4918
/* GM45+ just has to be different */
4857
#define _PIPEA_FRMCOUNT_G4X	0x70040
4919
#define _PIPEA_FRMCOUNT_G4X	0x70040
4858
#define _PIPEA_FLIPCOUNT_G4X	0x70044
4920
#define _PIPEA_FLIPCOUNT_G4X	0x70044
4859
#define PIPE_FRMCOUNT_G4X(pipe) _PIPE2(pipe, _PIPEA_FRMCOUNT_G4X)
4921
#define PIPE_FRMCOUNT_G4X(pipe) _MMIO_PIPE2(pipe, _PIPEA_FRMCOUNT_G4X)
4860
#define PIPE_FLIPCOUNT_G4X(pipe) _PIPE2(pipe, _PIPEA_FLIPCOUNT_G4X)
4922
#define PIPE_FLIPCOUNT_G4X(pipe) _MMIO_PIPE2(pipe, _PIPEA_FLIPCOUNT_G4X)
Line 4861... Line 4923...
4861
 
4923
 
4862
/* Cursor A & B regs */
4924
/* Cursor A & B regs */
4863
#define _CURACNTR		0x70080
4925
#define _CURACNTR		0x70080
4864
/* Old style CUR*CNTR flags (desktop 8xx) */
4926
/* Old style CUR*CNTR flags (desktop 8xx) */
Line 4893... Line 4955...
4893
#define _CURAPOS		0x70088
4955
#define _CURAPOS		0x70088
4894
#define   CURSOR_POS_MASK       0x007FF
4956
#define   CURSOR_POS_MASK       0x007FF
4895
#define   CURSOR_POS_SIGN       0x8000
4957
#define   CURSOR_POS_SIGN       0x8000
4896
#define   CURSOR_X_SHIFT        0
4958
#define   CURSOR_X_SHIFT        0
4897
#define   CURSOR_Y_SHIFT        16
4959
#define   CURSOR_Y_SHIFT        16
4898
#define CURSIZE			0x700a0
4960
#define CURSIZE			_MMIO(0x700a0)
4899
#define _CURBCNTR		0x700c0
4961
#define _CURBCNTR		0x700c0
4900
#define _CURBBASE		0x700c4
4962
#define _CURBBASE		0x700c4
4901
#define _CURBPOS		0x700c8
4963
#define _CURBPOS		0x700c8
Line 4902... Line 4964...
4902
 
4964
 
4903
#define _CURBCNTR_IVB		0x71080
4965
#define _CURBCNTR_IVB		0x71080
4904
#define _CURBBASE_IVB		0x71084
4966
#define _CURBBASE_IVB		0x71084
Line 4905... Line 4967...
4905
#define _CURBPOS_IVB		0x71088
4967
#define _CURBPOS_IVB		0x71088
4906
 
4968
 
4907
#define _CURSOR2(pipe, reg) (dev_priv->info.cursor_offsets[(pipe)] - \
4969
#define _CURSOR2(pipe, reg) _MMIO(dev_priv->info.cursor_offsets[(pipe)] - \
Line 4908... Line 4970...
4908
	dev_priv->info.cursor_offsets[PIPE_A] + (reg) + \
4970
	dev_priv->info.cursor_offsets[PIPE_A] + (reg) + \
4909
	dev_priv->info.display_mmio_offset)
4971
	dev_priv->info.display_mmio_offset)
Line 4963... Line 5025...
4963
#define _DSPASURF				0x7019C /* 965+ only */
5025
#define _DSPASURF				0x7019C /* 965+ only */
4964
#define _DSPATILEOFF				0x701A4 /* 965+ only */
5026
#define _DSPATILEOFF				0x701A4 /* 965+ only */
4965
#define _DSPAOFFSET				0x701A4 /* HSW */
5027
#define _DSPAOFFSET				0x701A4 /* HSW */
4966
#define _DSPASURFLIVE				0x701AC
5028
#define _DSPASURFLIVE				0x701AC
Line 4967... Line 5029...
4967
 
5029
 
4968
#define DSPCNTR(plane) _PIPE2(plane, _DSPACNTR)
5030
#define DSPCNTR(plane)		_MMIO_PIPE2(plane, _DSPACNTR)
4969
#define DSPADDR(plane) _PIPE2(plane, _DSPAADDR)
5031
#define DSPADDR(plane)		_MMIO_PIPE2(plane, _DSPAADDR)
4970
#define DSPSTRIDE(plane) _PIPE2(plane, _DSPASTRIDE)
5032
#define DSPSTRIDE(plane)	_MMIO_PIPE2(plane, _DSPASTRIDE)
4971
#define DSPPOS(plane) _PIPE2(plane, _DSPAPOS)
5033
#define DSPPOS(plane)		_MMIO_PIPE2(plane, _DSPAPOS)
4972
#define DSPSIZE(plane) _PIPE2(plane, _DSPASIZE)
5034
#define DSPSIZE(plane)		_MMIO_PIPE2(plane, _DSPASIZE)
4973
#define DSPSURF(plane) _PIPE2(plane, _DSPASURF)
5035
#define DSPSURF(plane)		_MMIO_PIPE2(plane, _DSPASURF)
4974
#define DSPTILEOFF(plane) _PIPE2(plane, _DSPATILEOFF)
5036
#define DSPTILEOFF(plane)	_MMIO_PIPE2(plane, _DSPATILEOFF)
4975
#define DSPLINOFF(plane) DSPADDR(plane)
5037
#define DSPLINOFF(plane) DSPADDR(plane)
4976
#define DSPOFFSET(plane) _PIPE2(plane, _DSPAOFFSET)
5038
#define DSPOFFSET(plane)	_MMIO_PIPE2(plane, _DSPAOFFSET)
Line 4977... Line 5039...
4977
#define DSPSURFLIVE(plane) _PIPE2(plane, _DSPASURFLIVE)
5039
#define DSPSURFLIVE(plane)	_MMIO_PIPE2(plane, _DSPASURFLIVE)
4978
 
5040
 
4979
/* CHV pipe B blender and primary plane */
5041
/* CHV pipe B blender and primary plane */
4980
#define _CHV_BLEND_A		0x60a00
5042
#define _CHV_BLEND_A		0x60a00
Line 4986... Line 5048...
4986
#define _PRIMPOS_A		0x60a08
5048
#define _PRIMPOS_A		0x60a08
4987
#define _PRIMSIZE_A		0x60a0c
5049
#define _PRIMSIZE_A		0x60a0c
4988
#define _PRIMCNSTALPHA_A	0x60a10
5050
#define _PRIMCNSTALPHA_A	0x60a10
4989
#define   PRIM_CONST_ALPHA_ENABLE	(1<<31)
5051
#define   PRIM_CONST_ALPHA_ENABLE	(1<<31)
Line 4990... Line 5052...
4990
 
5052
 
4991
#define CHV_BLEND(pipe) _TRANSCODER2(pipe, _CHV_BLEND_A)
5053
#define CHV_BLEND(pipe)		_MMIO_TRANS2(pipe, _CHV_BLEND_A)
4992
#define CHV_CANVAS(pipe) _TRANSCODER2(pipe, _CHV_CANVAS_A)
5054
#define CHV_CANVAS(pipe)	_MMIO_TRANS2(pipe, _CHV_CANVAS_A)
4993
#define PRIMPOS(plane) _TRANSCODER2(plane, _PRIMPOS_A)
5055
#define PRIMPOS(plane)		_MMIO_TRANS2(plane, _PRIMPOS_A)
4994
#define PRIMSIZE(plane) _TRANSCODER2(plane, _PRIMSIZE_A)
5056
#define PRIMSIZE(plane)		_MMIO_TRANS2(plane, _PRIMSIZE_A)
Line 4995... Line 5057...
4995
#define PRIMCNSTALPHA(plane) _TRANSCODER2(plane, _PRIMCNSTALPHA_A)
5057
#define PRIMCNSTALPHA(plane)	_MMIO_TRANS2(plane, _PRIMCNSTALPHA_A)
4996
 
5058
 
4997
/* Display/Sprite base address macros */
5059
/* Display/Sprite base address macros */
4998
#define DISP_BASEADDR_MASK	(0xfffff000)
5060
#define DISP_BASEADDR_MASK	(0xfffff000)
Line 5008... Line 5070...
5008
 * gen3+:
5070
 * gen3+:
5009
 * [00:0f] all
5071
 * [00:0f] all
5010
 * [10:1f] all
5072
 * [10:1f] all
5011
 * [30:32] all
5073
 * [30:32] all
5012
 */
5074
 */
5013
#define SWF0(i)	(dev_priv->info.display_mmio_offset + 0x70410 + (i) * 4)
5075
#define SWF0(i)	_MMIO(dev_priv->info.display_mmio_offset + 0x70410 + (i) * 4)
5014
#define SWF1(i)	(dev_priv->info.display_mmio_offset + 0x71410 + (i) * 4)
5076
#define SWF1(i)	_MMIO(dev_priv->info.display_mmio_offset + 0x71410 + (i) * 4)
5015
#define SWF3(i)	(dev_priv->info.display_mmio_offset + 0x72414 + (i) * 4)
5077
#define SWF3(i)	_MMIO(dev_priv->info.display_mmio_offset + 0x72414 + (i) * 4)
-
 
5078
#define SWF_ILK(i)	_MMIO(0x4F000 + (i) * 4)
Line 5016... Line 5079...
5016
 
5079
 
5017
/* Pipe B */
5080
/* Pipe B */
5018
#define _PIPEBDSL		(dev_priv->info.display_mmio_offset + 0x71000)
5081
#define _PIPEBDSL		(dev_priv->info.display_mmio_offset + 0x71000)
5019
#define _PIPEBCONF		(dev_priv->info.display_mmio_offset + 0x71008)
5082
#define _PIPEBCONF		(dev_priv->info.display_mmio_offset + 0x71008)
Line 5092... Line 5155...
5092
#define _DVSBTILEOFF		0x731a4
5155
#define _DVSBTILEOFF		0x731a4
5093
#define _DVSBSURFLIVE		0x731ac
5156
#define _DVSBSURFLIVE		0x731ac
5094
#define _DVSBSCALE		0x73204
5157
#define _DVSBSCALE		0x73204
5095
#define _DVSBGAMC		0x73300
5158
#define _DVSBGAMC		0x73300
Line 5096... Line 5159...
5096
 
5159
 
5097
#define DVSCNTR(pipe) _PIPE(pipe, _DVSACNTR, _DVSBCNTR)
5160
#define DVSCNTR(pipe) _MMIO_PIPE(pipe, _DVSACNTR, _DVSBCNTR)
5098
#define DVSLINOFF(pipe) _PIPE(pipe, _DVSALINOFF, _DVSBLINOFF)
5161
#define DVSLINOFF(pipe) _MMIO_PIPE(pipe, _DVSALINOFF, _DVSBLINOFF)
5099
#define DVSSTRIDE(pipe) _PIPE(pipe, _DVSASTRIDE, _DVSBSTRIDE)
5162
#define DVSSTRIDE(pipe) _MMIO_PIPE(pipe, _DVSASTRIDE, _DVSBSTRIDE)
5100
#define DVSPOS(pipe) _PIPE(pipe, _DVSAPOS, _DVSBPOS)
5163
#define DVSPOS(pipe) _MMIO_PIPE(pipe, _DVSAPOS, _DVSBPOS)
5101
#define DVSSURF(pipe) _PIPE(pipe, _DVSASURF, _DVSBSURF)
5164
#define DVSSURF(pipe) _MMIO_PIPE(pipe, _DVSASURF, _DVSBSURF)
5102
#define DVSKEYMAX(pipe) _PIPE(pipe, _DVSAKEYMAXVAL, _DVSBKEYMAXVAL)
5165
#define DVSKEYMAX(pipe) _MMIO_PIPE(pipe, _DVSAKEYMAXVAL, _DVSBKEYMAXVAL)
5103
#define DVSSIZE(pipe) _PIPE(pipe, _DVSASIZE, _DVSBSIZE)
5166
#define DVSSIZE(pipe) _MMIO_PIPE(pipe, _DVSASIZE, _DVSBSIZE)
5104
#define DVSSCALE(pipe) _PIPE(pipe, _DVSASCALE, _DVSBSCALE)
5167
#define DVSSCALE(pipe) _MMIO_PIPE(pipe, _DVSASCALE, _DVSBSCALE)
5105
#define DVSTILEOFF(pipe) _PIPE(pipe, _DVSATILEOFF, _DVSBTILEOFF)
5168
#define DVSTILEOFF(pipe) _MMIO_PIPE(pipe, _DVSATILEOFF, _DVSBTILEOFF)
5106
#define DVSKEYVAL(pipe) _PIPE(pipe, _DVSAKEYVAL, _DVSBKEYVAL)
5169
#define DVSKEYVAL(pipe) _MMIO_PIPE(pipe, _DVSAKEYVAL, _DVSBKEYVAL)
5107
#define DVSKEYMSK(pipe) _PIPE(pipe, _DVSAKEYMSK, _DVSBKEYMSK)
5170
#define DVSKEYMSK(pipe) _MMIO_PIPE(pipe, _DVSAKEYMSK, _DVSBKEYMSK)
Line 5108... Line 5171...
5108
#define DVSSURFLIVE(pipe) _PIPE(pipe, _DVSASURFLIVE, _DVSBSURFLIVE)
5171
#define DVSSURFLIVE(pipe) _MMIO_PIPE(pipe, _DVSASURFLIVE, _DVSBSURFLIVE)
5109
 
5172
 
5110
#define _SPRA_CTL		0x70280
5173
#define _SPRA_CTL		0x70280
5111
#define   SPRITE_ENABLE			(1<<31)
5174
#define   SPRITE_ENABLE			(1<<31)
Line 5166... Line 5229...
5166
#define _SPRB_OFFSET		0x712a4
5229
#define _SPRB_OFFSET		0x712a4
5167
#define _SPRB_SURFLIVE		0x712ac
5230
#define _SPRB_SURFLIVE		0x712ac
5168
#define _SPRB_SCALE		0x71304
5231
#define _SPRB_SCALE		0x71304
5169
#define _SPRB_GAMC		0x71400
5232
#define _SPRB_GAMC		0x71400
Line 5170... Line 5233...
5170
 
5233
 
5171
#define SPRCTL(pipe) _PIPE(pipe, _SPRA_CTL, _SPRB_CTL)
5234
#define SPRCTL(pipe) _MMIO_PIPE(pipe, _SPRA_CTL, _SPRB_CTL)
5172
#define SPRLINOFF(pipe) _PIPE(pipe, _SPRA_LINOFF, _SPRB_LINOFF)
5235
#define SPRLINOFF(pipe) _MMIO_PIPE(pipe, _SPRA_LINOFF, _SPRB_LINOFF)
5173
#define SPRSTRIDE(pipe) _PIPE(pipe, _SPRA_STRIDE, _SPRB_STRIDE)
5236
#define SPRSTRIDE(pipe) _MMIO_PIPE(pipe, _SPRA_STRIDE, _SPRB_STRIDE)
5174
#define SPRPOS(pipe) _PIPE(pipe, _SPRA_POS, _SPRB_POS)
5237
#define SPRPOS(pipe) _MMIO_PIPE(pipe, _SPRA_POS, _SPRB_POS)
5175
#define SPRSIZE(pipe) _PIPE(pipe, _SPRA_SIZE, _SPRB_SIZE)
5238
#define SPRSIZE(pipe) _MMIO_PIPE(pipe, _SPRA_SIZE, _SPRB_SIZE)
5176
#define SPRKEYVAL(pipe) _PIPE(pipe, _SPRA_KEYVAL, _SPRB_KEYVAL)
5239
#define SPRKEYVAL(pipe) _MMIO_PIPE(pipe, _SPRA_KEYVAL, _SPRB_KEYVAL)
5177
#define SPRKEYMSK(pipe) _PIPE(pipe, _SPRA_KEYMSK, _SPRB_KEYMSK)
5240
#define SPRKEYMSK(pipe) _MMIO_PIPE(pipe, _SPRA_KEYMSK, _SPRB_KEYMSK)
5178
#define SPRSURF(pipe) _PIPE(pipe, _SPRA_SURF, _SPRB_SURF)
5241
#define SPRSURF(pipe) _MMIO_PIPE(pipe, _SPRA_SURF, _SPRB_SURF)
5179
#define SPRKEYMAX(pipe) _PIPE(pipe, _SPRA_KEYMAX, _SPRB_KEYMAX)
5242
#define SPRKEYMAX(pipe) _MMIO_PIPE(pipe, _SPRA_KEYMAX, _SPRB_KEYMAX)
5180
#define SPRTILEOFF(pipe) _PIPE(pipe, _SPRA_TILEOFF, _SPRB_TILEOFF)
5243
#define SPRTILEOFF(pipe) _MMIO_PIPE(pipe, _SPRA_TILEOFF, _SPRB_TILEOFF)
5181
#define SPROFFSET(pipe) _PIPE(pipe, _SPRA_OFFSET, _SPRB_OFFSET)
5244
#define SPROFFSET(pipe) _MMIO_PIPE(pipe, _SPRA_OFFSET, _SPRB_OFFSET)
5182
#define SPRSCALE(pipe) _PIPE(pipe, _SPRA_SCALE, _SPRB_SCALE)
5245
#define SPRSCALE(pipe) _MMIO_PIPE(pipe, _SPRA_SCALE, _SPRB_SCALE)
5183
#define SPRGAMC(pipe) _PIPE(pipe, _SPRA_GAMC, _SPRB_GAMC)
5246
#define SPRGAMC(pipe) _MMIO_PIPE(pipe, _SPRA_GAMC, _SPRB_GAMC)
Line 5184... Line 5247...
5184
#define SPRSURFLIVE(pipe) _PIPE(pipe, _SPRA_SURFLIVE, _SPRB_SURFLIVE)
5247
#define SPRSURFLIVE(pipe) _MMIO_PIPE(pipe, _SPRA_SURFLIVE, _SPRB_SURFLIVE)
5185
 
5248
 
5186
#define _SPACNTR		(VLV_DISPLAY_BASE + 0x72180)
5249
#define _SPACNTR		(VLV_DISPLAY_BASE + 0x72180)
5187
#define   SP_ENABLE			(1<<31)
5250
#define   SP_ENABLE			(1<<31)
Line 5229... Line 5292...
5229
#define _SPBKEYMAXVAL		(VLV_DISPLAY_BASE + 0x722a0)
5292
#define _SPBKEYMAXVAL		(VLV_DISPLAY_BASE + 0x722a0)
5230
#define _SPBTILEOFF		(VLV_DISPLAY_BASE + 0x722a4)
5293
#define _SPBTILEOFF		(VLV_DISPLAY_BASE + 0x722a4)
5231
#define _SPBCONSTALPHA		(VLV_DISPLAY_BASE + 0x722a8)
5294
#define _SPBCONSTALPHA		(VLV_DISPLAY_BASE + 0x722a8)
5232
#define _SPBGAMC		(VLV_DISPLAY_BASE + 0x722f4)
5295
#define _SPBGAMC		(VLV_DISPLAY_BASE + 0x722f4)
Line 5233... Line 5296...
5233
 
5296
 
5234
#define SPCNTR(pipe, plane) _PIPE((pipe) * 2 + (plane), _SPACNTR, _SPBCNTR)
5297
#define SPCNTR(pipe, plane) _MMIO_PIPE((pipe) * 2 + (plane), _SPACNTR, _SPBCNTR)
5235
#define SPLINOFF(pipe, plane) _PIPE((pipe) * 2 + (plane), _SPALINOFF, _SPBLINOFF)
5298
#define SPLINOFF(pipe, plane) _MMIO_PIPE((pipe) * 2 + (plane), _SPALINOFF, _SPBLINOFF)
5236
#define SPSTRIDE(pipe, plane) _PIPE((pipe) * 2 + (plane), _SPASTRIDE, _SPBSTRIDE)
5299
#define SPSTRIDE(pipe, plane) _MMIO_PIPE((pipe) * 2 + (plane), _SPASTRIDE, _SPBSTRIDE)
5237
#define SPPOS(pipe, plane) _PIPE((pipe) * 2 + (plane), _SPAPOS, _SPBPOS)
5300
#define SPPOS(pipe, plane) _MMIO_PIPE((pipe) * 2 + (plane), _SPAPOS, _SPBPOS)
5238
#define SPSIZE(pipe, plane) _PIPE((pipe) * 2 + (plane), _SPASIZE, _SPBSIZE)
5301
#define SPSIZE(pipe, plane) _MMIO_PIPE((pipe) * 2 + (plane), _SPASIZE, _SPBSIZE)
5239
#define SPKEYMINVAL(pipe, plane) _PIPE((pipe) * 2 + (plane), _SPAKEYMINVAL, _SPBKEYMINVAL)
5302
#define SPKEYMINVAL(pipe, plane) _MMIO_PIPE((pipe) * 2 + (plane), _SPAKEYMINVAL, _SPBKEYMINVAL)
5240
#define SPKEYMSK(pipe, plane) _PIPE((pipe) * 2 + (plane), _SPAKEYMSK, _SPBKEYMSK)
5303
#define SPKEYMSK(pipe, plane) _MMIO_PIPE((pipe) * 2 + (plane), _SPAKEYMSK, _SPBKEYMSK)
5241
#define SPSURF(pipe, plane) _PIPE((pipe) * 2 + (plane), _SPASURF, _SPBSURF)
5304
#define SPSURF(pipe, plane) _MMIO_PIPE((pipe) * 2 + (plane), _SPASURF, _SPBSURF)
5242
#define SPKEYMAXVAL(pipe, plane) _PIPE((pipe) * 2 + (plane), _SPAKEYMAXVAL, _SPBKEYMAXVAL)
5305
#define SPKEYMAXVAL(pipe, plane) _MMIO_PIPE((pipe) * 2 + (plane), _SPAKEYMAXVAL, _SPBKEYMAXVAL)
5243
#define SPTILEOFF(pipe, plane) _PIPE((pipe) * 2 + (plane), _SPATILEOFF, _SPBTILEOFF)
5306
#define SPTILEOFF(pipe, plane) _MMIO_PIPE((pipe) * 2 + (plane), _SPATILEOFF, _SPBTILEOFF)
5244
#define SPCONSTALPHA(pipe, plane) _PIPE((pipe) * 2 + (plane), _SPACONSTALPHA, _SPBCONSTALPHA)
5307
#define SPCONSTALPHA(pipe, plane) _MMIO_PIPE((pipe) * 2 + (plane), _SPACONSTALPHA, _SPBCONSTALPHA)
Line 5245... Line 5308...
5245
#define SPGAMC(pipe, plane) _PIPE((pipe) * 2 + (plane), _SPAGAMC, _SPBGAMC)
5308
#define SPGAMC(pipe, plane) _MMIO_PIPE((pipe) * 2 + (plane), _SPAGAMC, _SPBGAMC)
5246
 
5309
 
5247
/*
5310
/*
5248
 * CHV pipe B sprite CSC
5311
 * CHV pipe B sprite CSC
5249
 *
5312
 *
5250
 * |cr|   |c0 c1 c2|   |cr + cr_ioff|   |cr_ooff|
5313
 * |cr|   |c0 c1 c2|   |cr + cr_ioff|   |cr_ooff|
5251
 * |yg| = |c3 c4 c5| x |yg + yg_ioff| + |yg_ooff|
5314
 * |yg| = |c3 c4 c5| x |yg + yg_ioff| + |yg_ooff|
5252
 * |cb|   |c6 c7 c8|   |cb + cr_ioff|   |cb_ooff|
5315
 * |cb|   |c6 c7 c8|   |cb + cr_ioff|   |cb_ooff|
5253
 */
5316
 */
5254
#define SPCSCYGOFF(sprite)	(VLV_DISPLAY_BASE + 0x6d900 + (sprite) * 0x1000)
5317
#define SPCSCYGOFF(sprite)	_MMIO(VLV_DISPLAY_BASE + 0x6d900 + (sprite) * 0x1000)
5255
#define SPCSCCBOFF(sprite)	(VLV_DISPLAY_BASE + 0x6d904 + (sprite) * 0x1000)
5318
#define SPCSCCBOFF(sprite)	_MMIO(VLV_DISPLAY_BASE + 0x6d904 + (sprite) * 0x1000)
5256
#define SPCSCCROFF(sprite)	(VLV_DISPLAY_BASE + 0x6d908 + (sprite) * 0x1000)
5319
#define SPCSCCROFF(sprite)	_MMIO(VLV_DISPLAY_BASE + 0x6d908 + (sprite) * 0x1000)
Line 5257... Line 5320...
5257
#define  SPCSC_OOFF(x)		(((x) & 0x7ff) << 16) /* s11 */
5320
#define  SPCSC_OOFF(x)		(((x) & 0x7ff) << 16) /* s11 */
5258
#define  SPCSC_IOFF(x)		(((x) & 0x7ff) << 0) /* s11 */
5321
#define  SPCSC_IOFF(x)		(((x) & 0x7ff) << 0) /* s11 */
5259
 
5322
 
5260
#define SPCSCC01(sprite)	(VLV_DISPLAY_BASE + 0x6d90c + (sprite) * 0x1000)
5323
#define SPCSCC01(sprite)	_MMIO(VLV_DISPLAY_BASE + 0x6d90c + (sprite) * 0x1000)
5261
#define SPCSCC23(sprite)	(VLV_DISPLAY_BASE + 0x6d910 + (sprite) * 0x1000)
5324
#define SPCSCC23(sprite)	_MMIO(VLV_DISPLAY_BASE + 0x6d910 + (sprite) * 0x1000)
5262
#define SPCSCC45(sprite)	(VLV_DISPLAY_BASE + 0x6d914 + (sprite) * 0x1000)
5325
#define SPCSCC45(sprite)	_MMIO(VLV_DISPLAY_BASE + 0x6d914 + (sprite) * 0x1000)
5263
#define SPCSCC67(sprite)	(VLV_DISPLAY_BASE + 0x6d918 + (sprite) * 0x1000)
5326
#define SPCSCC67(sprite)	_MMIO(VLV_DISPLAY_BASE + 0x6d918 + (sprite) * 0x1000)
Line 5264... Line 5327...
5264
#define SPCSCC8(sprite)		(VLV_DISPLAY_BASE + 0x6d91c + (sprite) * 0x1000)
5327
#define SPCSCC8(sprite)		_MMIO(VLV_DISPLAY_BASE + 0x6d91c + (sprite) * 0x1000)
5265
#define  SPCSC_C1(x)		(((x) & 0x7fff) << 16) /* s3.12 */
5328
#define  SPCSC_C1(x)		(((x) & 0x7fff) << 16) /* s3.12 */
5266
#define  SPCSC_C0(x)		(((x) & 0x7fff) << 0) /* s3.12 */
5329
#define  SPCSC_C0(x)		(((x) & 0x7fff) << 0) /* s3.12 */
5267
 
5330
 
5268
#define SPCSCYGICLAMP(sprite)	(VLV_DISPLAY_BASE + 0x6d920 + (sprite) * 0x1000)
5331
#define SPCSCYGICLAMP(sprite)	_MMIO(VLV_DISPLAY_BASE + 0x6d920 + (sprite) * 0x1000)
Line 5269... Line 5332...
5269
#define SPCSCCBICLAMP(sprite)	(VLV_DISPLAY_BASE + 0x6d924 + (sprite) * 0x1000)
5332
#define SPCSCCBICLAMP(sprite)	_MMIO(VLV_DISPLAY_BASE + 0x6d924 + (sprite) * 0x1000)
5270
#define SPCSCCRICLAMP(sprite)	(VLV_DISPLAY_BASE + 0x6d928 + (sprite) * 0x1000)
5333
#define SPCSCCRICLAMP(sprite)	_MMIO(VLV_DISPLAY_BASE + 0x6d928 + (sprite) * 0x1000)
5271
#define  SPCSC_IMAX(x)		(((x) & 0x7ff) << 16) /* s11 */
5334
#define  SPCSC_IMAX(x)		(((x) & 0x7ff) << 16) /* s11 */
5272
#define  SPCSC_IMIN(x)		(((x) & 0x7ff) << 0) /* s11 */
5335
#define  SPCSC_IMIN(x)		(((x) & 0x7ff) << 0) /* s11 */
5273
 
5336
 
Line 5274... Line 5337...
5274
#define SPCSCYGOCLAMP(sprite)	(VLV_DISPLAY_BASE + 0x6d92c + (sprite) * 0x1000)
5337
#define SPCSCYGOCLAMP(sprite)	_MMIO(VLV_DISPLAY_BASE + 0x6d92c + (sprite) * 0x1000)
Line 5352... Line 5415...
5352
#define _PLANE_CTL_3_B				0x71380
5415
#define _PLANE_CTL_3_B				0x71380
5353
#define _PLANE_CTL_1(pipe)	_PIPE(pipe, _PLANE_CTL_1_A, _PLANE_CTL_1_B)
5416
#define _PLANE_CTL_1(pipe)	_PIPE(pipe, _PLANE_CTL_1_A, _PLANE_CTL_1_B)
5354
#define _PLANE_CTL_2(pipe)	_PIPE(pipe, _PLANE_CTL_2_A, _PLANE_CTL_2_B)
5417
#define _PLANE_CTL_2(pipe)	_PIPE(pipe, _PLANE_CTL_2_A, _PLANE_CTL_2_B)
5355
#define _PLANE_CTL_3(pipe)	_PIPE(pipe, _PLANE_CTL_3_A, _PLANE_CTL_3_B)
5418
#define _PLANE_CTL_3(pipe)	_PIPE(pipe, _PLANE_CTL_3_A, _PLANE_CTL_3_B)
5356
#define PLANE_CTL(pipe, plane)	\
5419
#define PLANE_CTL(pipe, plane)	\
5357
	_PLANE(plane, _PLANE_CTL_1(pipe), _PLANE_CTL_2(pipe))
5420
	_MMIO_PLANE(plane, _PLANE_CTL_1(pipe), _PLANE_CTL_2(pipe))
Line 5358... Line 5421...
5358
 
5421
 
5359
#define _PLANE_STRIDE_1_B			0x71188
5422
#define _PLANE_STRIDE_1_B			0x71188
5360
#define _PLANE_STRIDE_2_B			0x71288
5423
#define _PLANE_STRIDE_2_B			0x71288
5361
#define _PLANE_STRIDE_3_B			0x71388
5424
#define _PLANE_STRIDE_3_B			0x71388
Line 5364... Line 5427...
5364
#define _PLANE_STRIDE_2(pipe)	\
5427
#define _PLANE_STRIDE_2(pipe)	\
5365
	_PIPE(pipe, _PLANE_STRIDE_2_A, _PLANE_STRIDE_2_B)
5428
	_PIPE(pipe, _PLANE_STRIDE_2_A, _PLANE_STRIDE_2_B)
5366
#define _PLANE_STRIDE_3(pipe)	\
5429
#define _PLANE_STRIDE_3(pipe)	\
5367
	_PIPE(pipe, _PLANE_STRIDE_3_A, _PLANE_STRIDE_3_B)
5430
	_PIPE(pipe, _PLANE_STRIDE_3_A, _PLANE_STRIDE_3_B)
5368
#define PLANE_STRIDE(pipe, plane)	\
5431
#define PLANE_STRIDE(pipe, plane)	\
5369
	_PLANE(plane, _PLANE_STRIDE_1(pipe), _PLANE_STRIDE_2(pipe))
5432
	_MMIO_PLANE(plane, _PLANE_STRIDE_1(pipe), _PLANE_STRIDE_2(pipe))
Line 5370... Line 5433...
5370
 
5433
 
5371
#define _PLANE_POS_1_B				0x7118c
5434
#define _PLANE_POS_1_B				0x7118c
5372
#define _PLANE_POS_2_B				0x7128c
5435
#define _PLANE_POS_2_B				0x7128c
5373
#define _PLANE_POS_3_B				0x7138c
5436
#define _PLANE_POS_3_B				0x7138c
5374
#define _PLANE_POS_1(pipe)	_PIPE(pipe, _PLANE_POS_1_A, _PLANE_POS_1_B)
5437
#define _PLANE_POS_1(pipe)	_PIPE(pipe, _PLANE_POS_1_A, _PLANE_POS_1_B)
5375
#define _PLANE_POS_2(pipe)	_PIPE(pipe, _PLANE_POS_2_A, _PLANE_POS_2_B)
5438
#define _PLANE_POS_2(pipe)	_PIPE(pipe, _PLANE_POS_2_A, _PLANE_POS_2_B)
5376
#define _PLANE_POS_3(pipe)	_PIPE(pipe, _PLANE_POS_3_A, _PLANE_POS_3_B)
5439
#define _PLANE_POS_3(pipe)	_PIPE(pipe, _PLANE_POS_3_A, _PLANE_POS_3_B)
5377
#define PLANE_POS(pipe, plane)	\
5440
#define PLANE_POS(pipe, plane)	\
Line 5378... Line 5441...
5378
	_PLANE(plane, _PLANE_POS_1(pipe), _PLANE_POS_2(pipe))
5441
	_MMIO_PLANE(plane, _PLANE_POS_1(pipe), _PLANE_POS_2(pipe))
5379
 
5442
 
5380
#define _PLANE_SIZE_1_B				0x71190
5443
#define _PLANE_SIZE_1_B				0x71190
5381
#define _PLANE_SIZE_2_B				0x71290
5444
#define _PLANE_SIZE_2_B				0x71290
5382
#define _PLANE_SIZE_3_B				0x71390
5445
#define _PLANE_SIZE_3_B				0x71390
5383
#define _PLANE_SIZE_1(pipe)	_PIPE(pipe, _PLANE_SIZE_1_A, _PLANE_SIZE_1_B)
5446
#define _PLANE_SIZE_1(pipe)	_PIPE(pipe, _PLANE_SIZE_1_A, _PLANE_SIZE_1_B)
5384
#define _PLANE_SIZE_2(pipe)	_PIPE(pipe, _PLANE_SIZE_2_A, _PLANE_SIZE_2_B)
5447
#define _PLANE_SIZE_2(pipe)	_PIPE(pipe, _PLANE_SIZE_2_A, _PLANE_SIZE_2_B)
5385
#define _PLANE_SIZE_3(pipe)	_PIPE(pipe, _PLANE_SIZE_3_A, _PLANE_SIZE_3_B)
5448
#define _PLANE_SIZE_3(pipe)	_PIPE(pipe, _PLANE_SIZE_3_A, _PLANE_SIZE_3_B)
Line 5386... Line 5449...
5386
#define PLANE_SIZE(pipe, plane)	\
5449
#define PLANE_SIZE(pipe, plane)	\
5387
	_PLANE(plane, _PLANE_SIZE_1(pipe), _PLANE_SIZE_2(pipe))
5450
	_MMIO_PLANE(plane, _PLANE_SIZE_1(pipe), _PLANE_SIZE_2(pipe))
5388
 
5451
 
5389
#define _PLANE_SURF_1_B				0x7119c
5452
#define _PLANE_SURF_1_B				0x7119c
5390
#define _PLANE_SURF_2_B				0x7129c
5453
#define _PLANE_SURF_2_B				0x7129c
5391
#define _PLANE_SURF_3_B				0x7139c
5454
#define _PLANE_SURF_3_B				0x7139c
5392
#define _PLANE_SURF_1(pipe)	_PIPE(pipe, _PLANE_SURF_1_A, _PLANE_SURF_1_B)
5455
#define _PLANE_SURF_1(pipe)	_PIPE(pipe, _PLANE_SURF_1_A, _PLANE_SURF_1_B)
5393
#define _PLANE_SURF_2(pipe)	_PIPE(pipe, _PLANE_SURF_2_A, _PLANE_SURF_2_B)
5456
#define _PLANE_SURF_2(pipe)	_PIPE(pipe, _PLANE_SURF_2_A, _PLANE_SURF_2_B)
Line 5394... Line 5457...
5394
#define _PLANE_SURF_3(pipe)	_PIPE(pipe, _PLANE_SURF_3_A, _PLANE_SURF_3_B)
5457
#define _PLANE_SURF_3(pipe)	_PIPE(pipe, _PLANE_SURF_3_A, _PLANE_SURF_3_B)
5395
#define PLANE_SURF(pipe, plane)	\
5458
#define PLANE_SURF(pipe, plane)	\
5396
	_PLANE(plane, _PLANE_SURF_1(pipe), _PLANE_SURF_2(pipe))
5459
	_MMIO_PLANE(plane, _PLANE_SURF_1(pipe), _PLANE_SURF_2(pipe))
5397
 
5460
 
5398
#define _PLANE_OFFSET_1_B			0x711a4
5461
#define _PLANE_OFFSET_1_B			0x711a4
5399
#define _PLANE_OFFSET_2_B			0x712a4
5462
#define _PLANE_OFFSET_2_B			0x712a4
Line 5400... Line 5463...
5400
#define _PLANE_OFFSET_1(pipe) _PIPE(pipe, _PLANE_OFFSET_1_A, _PLANE_OFFSET_1_B)
5463
#define _PLANE_OFFSET_1(pipe) _PIPE(pipe, _PLANE_OFFSET_1_A, _PLANE_OFFSET_1_B)
5401
#define _PLANE_OFFSET_2(pipe) _PIPE(pipe, _PLANE_OFFSET_2_A, _PLANE_OFFSET_2_B)
5464
#define _PLANE_OFFSET_2(pipe) _PIPE(pipe, _PLANE_OFFSET_2_A, _PLANE_OFFSET_2_B)
5402
#define PLANE_OFFSET(pipe, plane)	\
5465
#define PLANE_OFFSET(pipe, plane)	\
5403
	_PLANE(plane, _PLANE_OFFSET_1(pipe), _PLANE_OFFSET_2(pipe))
5466
	_MMIO_PLANE(plane, _PLANE_OFFSET_1(pipe), _PLANE_OFFSET_2(pipe))
5404
 
5467
 
5405
#define _PLANE_KEYVAL_1_B			0x71194
5468
#define _PLANE_KEYVAL_1_B			0x71194
Line 5406... Line 5469...
5406
#define _PLANE_KEYVAL_2_B			0x71294
5469
#define _PLANE_KEYVAL_2_B			0x71294
5407
#define _PLANE_KEYVAL_1(pipe) _PIPE(pipe, _PLANE_KEYVAL_1_A, _PLANE_KEYVAL_1_B)
5470
#define _PLANE_KEYVAL_1(pipe) _PIPE(pipe, _PLANE_KEYVAL_1_A, _PLANE_KEYVAL_1_B)
5408
#define _PLANE_KEYVAL_2(pipe) _PIPE(pipe, _PLANE_KEYVAL_2_A, _PLANE_KEYVAL_2_B)
5471
#define _PLANE_KEYVAL_2(pipe) _PIPE(pipe, _PLANE_KEYVAL_2_A, _PLANE_KEYVAL_2_B)
5409
#define PLANE_KEYVAL(pipe, plane)	\
5472
#define PLANE_KEYVAL(pipe, plane)	\
5410
	_PLANE(plane, _PLANE_KEYVAL_1(pipe), _PLANE_KEYVAL_2(pipe))
5473
	_MMIO_PLANE(plane, _PLANE_KEYVAL_1(pipe), _PLANE_KEYVAL_2(pipe))
5411
 
5474
 
Line 5412... Line 5475...
5412
#define _PLANE_KEYMSK_1_B			0x71198
5475
#define _PLANE_KEYMSK_1_B			0x71198
5413
#define _PLANE_KEYMSK_2_B			0x71298
5476
#define _PLANE_KEYMSK_2_B			0x71298
5414
#define _PLANE_KEYMSK_1(pipe) _PIPE(pipe, _PLANE_KEYMSK_1_A, _PLANE_KEYMSK_1_B)
5477
#define _PLANE_KEYMSK_1(pipe) _PIPE(pipe, _PLANE_KEYMSK_1_A, _PLANE_KEYMSK_1_B)
5415
#define _PLANE_KEYMSK_2(pipe) _PIPE(pipe, _PLANE_KEYMSK_2_A, _PLANE_KEYMSK_2_B)
5478
#define _PLANE_KEYMSK_2(pipe) _PIPE(pipe, _PLANE_KEYMSK_2_A, _PLANE_KEYMSK_2_B)
5416
#define PLANE_KEYMSK(pipe, plane)	\
5479
#define PLANE_KEYMSK(pipe, plane)	\
5417
	_PLANE(plane, _PLANE_KEYMSK_1(pipe), _PLANE_KEYMSK_2(pipe))
5480
	_MMIO_PLANE(plane, _PLANE_KEYMSK_1(pipe), _PLANE_KEYMSK_2(pipe))
Line 5418... Line 5481...
5418
 
5481
 
5419
#define _PLANE_KEYMAX_1_B			0x711a0
5482
#define _PLANE_KEYMAX_1_B			0x711a0
5420
#define _PLANE_KEYMAX_2_B			0x712a0
5483
#define _PLANE_KEYMAX_2_B			0x712a0
5421
#define _PLANE_KEYMAX_1(pipe) _PIPE(pipe, _PLANE_KEYMAX_1_A, _PLANE_KEYMAX_1_B)
5484
#define _PLANE_KEYMAX_1(pipe) _PIPE(pipe, _PLANE_KEYMAX_1_A, _PLANE_KEYMAX_1_B)
5422
#define _PLANE_KEYMAX_2(pipe) _PIPE(pipe, _PLANE_KEYMAX_2_A, _PLANE_KEYMAX_2_B)
5485
#define _PLANE_KEYMAX_2(pipe) _PIPE(pipe, _PLANE_KEYMAX_2_A, _PLANE_KEYMAX_2_B)
5423
#define PLANE_KEYMAX(pipe, plane)	\
5486
#define PLANE_KEYMAX(pipe, plane)	\
5424
	_PLANE(plane, _PLANE_KEYMAX_1(pipe), _PLANE_KEYMAX_2(pipe))
5487
	_MMIO_PLANE(plane, _PLANE_KEYMAX_1(pipe), _PLANE_KEYMAX_2(pipe))
5425
 
5488
 
Line 5426... Line 5489...
5426
#define _PLANE_BUF_CFG_1_B			0x7127c
5489
#define _PLANE_BUF_CFG_1_B			0x7127c
5427
#define _PLANE_BUF_CFG_2_B			0x7137c
5490
#define _PLANE_BUF_CFG_2_B			0x7137c
5428
#define _PLANE_BUF_CFG_1(pipe)	\
5491
#define _PLANE_BUF_CFG_1(pipe)	\
5429
	_PIPE(pipe, _PLANE_BUF_CFG_1_A, _PLANE_BUF_CFG_1_B)
5492
	_PIPE(pipe, _PLANE_BUF_CFG_1_A, _PLANE_BUF_CFG_1_B)
5430
#define _PLANE_BUF_CFG_2(pipe)	\
5493
#define _PLANE_BUF_CFG_2(pipe)	\
5431
	_PIPE(pipe, _PLANE_BUF_CFG_2_A, _PLANE_BUF_CFG_2_B)
5494
	_PIPE(pipe, _PLANE_BUF_CFG_2_A, _PLANE_BUF_CFG_2_B)
5432
#define PLANE_BUF_CFG(pipe, plane)	\
5495
#define PLANE_BUF_CFG(pipe, plane)	\
5433
	_PLANE(plane, _PLANE_BUF_CFG_1(pipe), _PLANE_BUF_CFG_2(pipe))
5496
	_MMIO_PLANE(plane, _PLANE_BUF_CFG_1(pipe), _PLANE_BUF_CFG_2(pipe))
Line 5434... Line 5497...
5434
 
5497
 
5435
#define _PLANE_NV12_BUF_CFG_1_B		0x71278
5498
#define _PLANE_NV12_BUF_CFG_1_B		0x71278
5436
#define _PLANE_NV12_BUF_CFG_2_B		0x71378
5499
#define _PLANE_NV12_BUF_CFG_2_B		0x71378
5437
#define _PLANE_NV12_BUF_CFG_1(pipe)	\
5500
#define _PLANE_NV12_BUF_CFG_1(pipe)	\
Line 5438... Line 5501...
5438
	_PIPE(pipe, _PLANE_NV12_BUF_CFG_1_A, _PLANE_NV12_BUF_CFG_1_B)
5501
	_PIPE(pipe, _PLANE_NV12_BUF_CFG_1_A, _PLANE_NV12_BUF_CFG_1_B)
5439
#define _PLANE_NV12_BUF_CFG_2(pipe)	\
5502
#define _PLANE_NV12_BUF_CFG_2(pipe)	\
5440
	_PIPE(pipe, _PLANE_NV12_BUF_CFG_2_A, _PLANE_NV12_BUF_CFG_2_B)
5503
	_PIPE(pipe, _PLANE_NV12_BUF_CFG_2_A, _PLANE_NV12_BUF_CFG_2_B)
5441
#define PLANE_NV12_BUF_CFG(pipe, plane)	\
5504
#define PLANE_NV12_BUF_CFG(pipe, plane)	\
5442
	_PLANE(plane, _PLANE_NV12_BUF_CFG_1(pipe), _PLANE_NV12_BUF_CFG_2(pipe))
5505
	_MMIO_PLANE(plane, _PLANE_NV12_BUF_CFG_1(pipe), _PLANE_NV12_BUF_CFG_2(pipe))
Line 5443... Line 5506...
5443
 
5506
 
Line 5444... Line 5507...
5444
/* SKL new cursor registers */
5507
/* SKL new cursor registers */
Line 5445... Line 5508...
5445
#define _CUR_BUF_CFG_A				0x7017c
5508
#define _CUR_BUF_CFG_A				0x7017c
Line 5446... Line 5509...
5446
#define _CUR_BUF_CFG_B				0x7117c
5509
#define _CUR_BUF_CFG_B				0x7117c
5447
#define CUR_BUF_CFG(pipe)	_PIPE(pipe, _CUR_BUF_CFG_A, _CUR_BUF_CFG_B)
5510
#define CUR_BUF_CFG(pipe)	_MMIO_PIPE(pipe, _CUR_BUF_CFG_A, _CUR_BUF_CFG_B)
5448
 
5511
 
5449
/* VBIOS regs */
5512
/* VBIOS regs */
5450
#define VGACNTRL		0x71400
5513
#define VGACNTRL		_MMIO(0x71400)
5451
# define VGA_DISP_DISABLE			(1 << 31)
5514
# define VGA_DISP_DISABLE			(1 << 31)
Line 5469... Line 5532...
5469
#define  DIGITAL_PORTA_HOTPLUG_NO_DETECT	(0 << 0)
5532
#define  DIGITAL_PORTA_HOTPLUG_NO_DETECT	(0 << 0)
5470
#define  DIGITAL_PORTA_HOTPLUG_SHORT_DETECT	(1 << 0)
5533
#define  DIGITAL_PORTA_HOTPLUG_SHORT_DETECT	(1 << 0)
5471
#define  DIGITAL_PORTA_HOTPLUG_LONG_DETECT	(2 << 0)
5534
#define  DIGITAL_PORTA_HOTPLUG_LONG_DETECT	(2 << 0)
Line 5472... Line 5535...
5472
 
5535
 
5473
/* refresh rate hardware control */
5536
/* refresh rate hardware control */
5474
#define RR_HW_CTL       0x45300
5537
#define RR_HW_CTL       _MMIO(0x45300)
5475
#define  RR_HW_LOW_POWER_FRAMES_MASK    0xff
5538
#define  RR_HW_LOW_POWER_FRAMES_MASK    0xff
Line 5476... Line 5539...
5476
#define  RR_HW_HIGH_POWER_FRAMES_MASK   0xff00
5539
#define  RR_HW_HIGH_POWER_FRAMES_MASK   0xff00
5477
 
5540
 
5478
#define FDI_PLL_BIOS_0  0x46000
5541
#define FDI_PLL_BIOS_0  _MMIO(0x46000)
5479
#define  FDI_PLL_FB_CLOCK_MASK  0xff
5542
#define  FDI_PLL_FB_CLOCK_MASK  0xff
5480
#define FDI_PLL_BIOS_1  0x46004
5543
#define FDI_PLL_BIOS_1  _MMIO(0x46004)
5481
#define FDI_PLL_BIOS_2  0x46008
5544
#define FDI_PLL_BIOS_2  _MMIO(0x46008)
5482
#define DISPLAY_PORT_PLL_BIOS_0         0x4600c
5545
#define DISPLAY_PORT_PLL_BIOS_0         _MMIO(0x4600c)
Line 5483... Line 5546...
5483
#define DISPLAY_PORT_PLL_BIOS_1         0x46010
5546
#define DISPLAY_PORT_PLL_BIOS_1         _MMIO(0x46010)
5484
#define DISPLAY_PORT_PLL_BIOS_2         0x46014
5547
#define DISPLAY_PORT_PLL_BIOS_2         _MMIO(0x46014)
5485
 
5548
 
Line 5486... Line 5549...
5486
#define PCH_3DCGDIS0		0x46020
5549
#define PCH_3DCGDIS0		_MMIO(0x46020)
5487
# define MARIUNIT_CLOCK_GATE_DISABLE		(1 << 18)
5550
# define MARIUNIT_CLOCK_GATE_DISABLE		(1 << 18)
Line 5488... Line 5551...
5488
# define SVSMUNIT_CLOCK_GATE_DISABLE		(1 << 1)
5551
# define SVSMUNIT_CLOCK_GATE_DISABLE		(1 << 1)
5489
 
5552
 
5490
#define PCH_3DCGDIS1		0x46024
5553
#define PCH_3DCGDIS1		_MMIO(0x46024)
5491
# define VFMUNIT_CLOCK_GATE_DISABLE		(1 << 11)
5554
# define VFMUNIT_CLOCK_GATE_DISABLE		(1 << 11)
Line 5525... Line 5588...
5525
#define _PIPEB_LINK_M1		0x61040
5588
#define _PIPEB_LINK_M1		0x61040
5526
#define _PIPEB_LINK_N1		0x61044
5589
#define _PIPEB_LINK_N1		0x61044
5527
#define _PIPEB_LINK_M2		0x61048
5590
#define _PIPEB_LINK_M2		0x61048
5528
#define _PIPEB_LINK_N2		0x6104c
5591
#define _PIPEB_LINK_N2		0x6104c
Line 5529... Line 5592...
5529
 
5592
 
5530
#define PIPE_DATA_M1(tran) _TRANSCODER2(tran, _PIPEA_DATA_M1)
5593
#define PIPE_DATA_M1(tran) _MMIO_TRANS2(tran, _PIPEA_DATA_M1)
5531
#define PIPE_DATA_N1(tran) _TRANSCODER2(tran, _PIPEA_DATA_N1)
5594
#define PIPE_DATA_N1(tran) _MMIO_TRANS2(tran, _PIPEA_DATA_N1)
5532
#define PIPE_DATA_M2(tran) _TRANSCODER2(tran, _PIPEA_DATA_M2)
5595
#define PIPE_DATA_M2(tran) _MMIO_TRANS2(tran, _PIPEA_DATA_M2)
5533
#define PIPE_DATA_N2(tran) _TRANSCODER2(tran, _PIPEA_DATA_N2)
5596
#define PIPE_DATA_N2(tran) _MMIO_TRANS2(tran, _PIPEA_DATA_N2)
5534
#define PIPE_LINK_M1(tran) _TRANSCODER2(tran, _PIPEA_LINK_M1)
5597
#define PIPE_LINK_M1(tran) _MMIO_TRANS2(tran, _PIPEA_LINK_M1)
5535
#define PIPE_LINK_N1(tran) _TRANSCODER2(tran, _PIPEA_LINK_N1)
5598
#define PIPE_LINK_N1(tran) _MMIO_TRANS2(tran, _PIPEA_LINK_N1)
5536
#define PIPE_LINK_M2(tran) _TRANSCODER2(tran, _PIPEA_LINK_M2)
5599
#define PIPE_LINK_M2(tran) _MMIO_TRANS2(tran, _PIPEA_LINK_M2)
Line 5537... Line 5600...
5537
#define PIPE_LINK_N2(tran) _TRANSCODER2(tran, _PIPEA_LINK_N2)
5600
#define PIPE_LINK_N2(tran) _MMIO_TRANS2(tran, _PIPEA_LINK_N2)
5538
 
5601
 
5539
/* CPU panel fitter */
5602
/* CPU panel fitter */
5540
/* IVB+ has 3 fitters, 0 is 7x5 capable, the other two only 3x3 */
5603
/* IVB+ has 3 fitters, 0 is 7x5 capable, the other two only 3x3 */
Line 5555... Line 5618...
5555
#define _PFA_VSCALE		0x68084
5618
#define _PFA_VSCALE		0x68084
5556
#define _PFB_VSCALE		0x68884
5619
#define _PFB_VSCALE		0x68884
5557
#define _PFA_HSCALE		0x68090
5620
#define _PFA_HSCALE		0x68090
5558
#define _PFB_HSCALE		0x68890
5621
#define _PFB_HSCALE		0x68890
Line 5559... Line 5622...
5559
 
5622
 
5560
#define PF_CTL(pipe)		_PIPE(pipe, _PFA_CTL_1, _PFB_CTL_1)
5623
#define PF_CTL(pipe)		_MMIO_PIPE(pipe, _PFA_CTL_1, _PFB_CTL_1)
5561
#define PF_WIN_SZ(pipe)		_PIPE(pipe, _PFA_WIN_SZ, _PFB_WIN_SZ)
5624
#define PF_WIN_SZ(pipe)		_MMIO_PIPE(pipe, _PFA_WIN_SZ, _PFB_WIN_SZ)
5562
#define PF_WIN_POS(pipe)	_PIPE(pipe, _PFA_WIN_POS, _PFB_WIN_POS)
5625
#define PF_WIN_POS(pipe)	_MMIO_PIPE(pipe, _PFA_WIN_POS, _PFB_WIN_POS)
5563
#define PF_VSCALE(pipe)		_PIPE(pipe, _PFA_VSCALE, _PFB_VSCALE)
5626
#define PF_VSCALE(pipe)		_MMIO_PIPE(pipe, _PFA_VSCALE, _PFB_VSCALE)
Line 5564... Line 5627...
5564
#define PF_HSCALE(pipe)		_PIPE(pipe, _PFA_HSCALE, _PFB_HSCALE)
5627
#define PF_HSCALE(pipe)		_MMIO_PIPE(pipe, _PFA_HSCALE, _PFB_HSCALE)
5565
 
5628
 
5566
#define _PSA_CTL		0x68180
5629
#define _PSA_CTL		0x68180
5567
#define _PSB_CTL		0x68980
5630
#define _PSB_CTL		0x68980
5568
#define PS_ENABLE		(1<<31)
5631
#define PS_ENABLE		(1<<31)
5569
#define _PSA_WIN_SZ		0x68174
5632
#define _PSA_WIN_SZ		0x68174
5570
#define _PSB_WIN_SZ		0x68974
5633
#define _PSB_WIN_SZ		0x68974
Line 5571... Line 5634...
5571
#define _PSA_WIN_POS		0x68170
5634
#define _PSA_WIN_POS		0x68170
5572
#define _PSB_WIN_POS		0x68970
5635
#define _PSB_WIN_POS		0x68970
5573
 
5636
 
Line 5574... Line 5637...
5574
#define PS_CTL(pipe)		_PIPE(pipe, _PSA_CTL, _PSB_CTL)
5637
#define PS_CTL(pipe)		_MMIO_PIPE(pipe, _PSA_CTL, _PSB_CTL)
5575
#define PS_WIN_SZ(pipe)		_PIPE(pipe, _PSA_WIN_SZ, _PSB_WIN_SZ)
5638
#define PS_WIN_SZ(pipe)		_MMIO_PIPE(pipe, _PSA_WIN_SZ, _PSB_WIN_SZ)
5576
#define PS_WIN_POS(pipe)	_PIPE(pipe, _PSA_WIN_POS, _PSB_WIN_POS)
5639
#define PS_WIN_POS(pipe)	_MMIO_PIPE(pipe, _PSA_WIN_POS, _PSB_WIN_POS)
5577
 
5640
 
Line 5660... Line 5723...
5660
#define _PS_ECC_STAT_1B     0x689D0
5723
#define _PS_ECC_STAT_1B     0x689D0
5661
#define _PS_ECC_STAT_2B     0x68AD0
5724
#define _PS_ECC_STAT_2B     0x68AD0
5662
#define _PS_ECC_STAT_1C     0x691D0
5725
#define _PS_ECC_STAT_1C     0x691D0
Line 5663... Line 5726...
5663
 
5726
 
5664
#define _ID(id, a, b) ((a) + (id)*((b)-(a)))
5727
#define _ID(id, a, b) ((a) + (id)*((b)-(a)))
5665
#define SKL_PS_CTRL(pipe, id) _PIPE(pipe,        \
5728
#define SKL_PS_CTRL(pipe, id) _MMIO_PIPE(pipe,        \
5666
			_ID(id, _PS_1A_CTRL, _PS_2A_CTRL),       \
5729
			_ID(id, _PS_1A_CTRL, _PS_2A_CTRL),       \
5667
			_ID(id, _PS_1B_CTRL, _PS_2B_CTRL))
5730
			_ID(id, _PS_1B_CTRL, _PS_2B_CTRL))
5668
#define SKL_PS_PWR_GATE(pipe, id) _PIPE(pipe,    \
5731
#define SKL_PS_PWR_GATE(pipe, id) _MMIO_PIPE(pipe,    \
5669
			_ID(id, _PS_PWR_GATE_1A, _PS_PWR_GATE_2A), \
5732
			_ID(id, _PS_PWR_GATE_1A, _PS_PWR_GATE_2A), \
5670
			_ID(id, _PS_PWR_GATE_1B, _PS_PWR_GATE_2B))
5733
			_ID(id, _PS_PWR_GATE_1B, _PS_PWR_GATE_2B))
5671
#define SKL_PS_WIN_POS(pipe, id) _PIPE(pipe,     \
5734
#define SKL_PS_WIN_POS(pipe, id) _MMIO_PIPE(pipe,     \
5672
			_ID(id, _PS_WIN_POS_1A, _PS_WIN_POS_2A), \
5735
			_ID(id, _PS_WIN_POS_1A, _PS_WIN_POS_2A), \
5673
			_ID(id, _PS_WIN_POS_1B, _PS_WIN_POS_2B))
5736
			_ID(id, _PS_WIN_POS_1B, _PS_WIN_POS_2B))
5674
#define SKL_PS_WIN_SZ(pipe, id)  _PIPE(pipe,     \
5737
#define SKL_PS_WIN_SZ(pipe, id)  _MMIO_PIPE(pipe,     \
5675
			_ID(id, _PS_WIN_SZ_1A, _PS_WIN_SZ_2A),   \
5738
			_ID(id, _PS_WIN_SZ_1A, _PS_WIN_SZ_2A),   \
5676
			_ID(id, _PS_WIN_SZ_1B, _PS_WIN_SZ_2B))
5739
			_ID(id, _PS_WIN_SZ_1B, _PS_WIN_SZ_2B))
5677
#define SKL_PS_VSCALE(pipe, id)  _PIPE(pipe,     \
5740
#define SKL_PS_VSCALE(pipe, id)  _MMIO_PIPE(pipe,     \
5678
			_ID(id, _PS_VSCALE_1A, _PS_VSCALE_2A),   \
5741
			_ID(id, _PS_VSCALE_1A, _PS_VSCALE_2A),   \
5679
			_ID(id, _PS_VSCALE_1B, _PS_VSCALE_2B))
5742
			_ID(id, _PS_VSCALE_1B, _PS_VSCALE_2B))
5680
#define SKL_PS_HSCALE(pipe, id)  _PIPE(pipe,     \
5743
#define SKL_PS_HSCALE(pipe, id)  _MMIO_PIPE(pipe,     \
5681
			_ID(id, _PS_HSCALE_1A, _PS_HSCALE_2A),   \
5744
			_ID(id, _PS_HSCALE_1A, _PS_HSCALE_2A),   \
5682
			_ID(id, _PS_HSCALE_1B, _PS_HSCALE_2B))
5745
			_ID(id, _PS_HSCALE_1B, _PS_HSCALE_2B))
5683
#define SKL_PS_VPHASE(pipe, id)  _PIPE(pipe,     \
5746
#define SKL_PS_VPHASE(pipe, id)  _MMIO_PIPE(pipe,     \
5684
			_ID(id, _PS_VPHASE_1A, _PS_VPHASE_2A),   \
5747
			_ID(id, _PS_VPHASE_1A, _PS_VPHASE_2A),   \
5685
			_ID(id, _PS_VPHASE_1B, _PS_VPHASE_2B))
5748
			_ID(id, _PS_VPHASE_1B, _PS_VPHASE_2B))
5686
#define SKL_PS_HPHASE(pipe, id)  _PIPE(pipe,     \
5749
#define SKL_PS_HPHASE(pipe, id)  _MMIO_PIPE(pipe,     \
5687
			_ID(id, _PS_HPHASE_1A, _PS_HPHASE_2A),   \
5750
			_ID(id, _PS_HPHASE_1A, _PS_HPHASE_2A),   \
5688
			_ID(id, _PS_HPHASE_1B, _PS_HPHASE_2B))
5751
			_ID(id, _PS_HPHASE_1B, _PS_HPHASE_2B))
5689
#define SKL_PS_ECC_STAT(pipe, id)  _PIPE(pipe,     \
5752
#define SKL_PS_ECC_STAT(pipe, id)  _MMIO_PIPE(pipe,     \
5690
			_ID(id, _PS_ECC_STAT_1A, _PS_ECC_STAT_2A),   \
5753
			_ID(id, _PS_ECC_STAT_1A, _PS_ECC_STAT_2A),   \
Line 5691... Line 5754...
5691
			_ID(id, _PS_ECC_STAT_1B, _PS_ECC_STAT_2B)
5754
			_ID(id, _PS_ECC_STAT_1B, _PS_ECC_STAT_2B))
5692
 
5755
 
5693
/* legacy palette */
5756
/* legacy palette */
5694
#define _LGC_PALETTE_A           0x4a000
5757
#define _LGC_PALETTE_A           0x4a000
Line 5695... Line 5758...
5695
#define _LGC_PALETTE_B           0x4a800
5758
#define _LGC_PALETTE_B           0x4a800
5696
#define LGC_PALETTE(pipe, i) (_PIPE(pipe, _LGC_PALETTE_A, _LGC_PALETTE_B) + (i) * 4)
5759
#define LGC_PALETTE(pipe, i) _MMIO(_PIPE(pipe, _LGC_PALETTE_A, _LGC_PALETTE_B) + (i) * 4)
5697
 
5760
 
5698
#define _GAMMA_MODE_A		0x4a480
5761
#define _GAMMA_MODE_A		0x4a480
5699
#define _GAMMA_MODE_B		0x4ac80
5762
#define _GAMMA_MODE_B		0x4ac80
5700
#define GAMMA_MODE(pipe) _PIPE(pipe, _GAMMA_MODE_A, _GAMMA_MODE_B)
5763
#define GAMMA_MODE(pipe) _MMIO_PIPE(pipe, _GAMMA_MODE_A, _GAMMA_MODE_B)
5701
#define GAMMA_MODE_MODE_MASK	(3 << 0)
5764
#define GAMMA_MODE_MODE_MASK	(3 << 0)
5702
#define GAMMA_MODE_MODE_8BIT	(0 << 0)
5765
#define GAMMA_MODE_MODE_8BIT	(0 << 0)
Line -... Line 5766...
-
 
5766
#define GAMMA_MODE_MODE_10BIT	(1 << 0)
-
 
5767
#define GAMMA_MODE_MODE_12BIT	(2 << 0)
-
 
5768
#define GAMMA_MODE_MODE_SPLIT	(3 << 0)
-
 
5769
 
-
 
5770
/* DMC/CSR */
-
 
5771
#define CSR_PROGRAM(i)		_MMIO(0x80000 + (i) * 4)
-
 
5772
#define CSR_SSP_BASE_ADDR_GEN9	0x00002FC0
-
 
5773
#define CSR_HTP_ADDR_SKL	0x00500034
-
 
5774
#define CSR_SSP_BASE		_MMIO(0x8F074)
-
 
5775
#define CSR_HTP_SKL		_MMIO(0x8F004)
-
 
5776
#define CSR_LAST_WRITE		_MMIO(0x8F034)
-
 
5777
#define CSR_LAST_WRITE_VALUE	0xc003b400
-
 
5778
/* MMIO address range for CSR program (0x80000 - 0x82FFF) */
-
 
5779
#define CSR_MMIO_START_RANGE	0x80000
-
 
5780
#define CSR_MMIO_END_RANGE	0x8FFFF
5703
#define GAMMA_MODE_MODE_10BIT	(1 << 0)
5781
#define SKL_CSR_DC3_DC5_COUNT	_MMIO(0x80030)
5704
#define GAMMA_MODE_MODE_12BIT	(2 << 0)
5782
#define SKL_CSR_DC5_DC6_COUNT	_MMIO(0x8002C)
5705
#define GAMMA_MODE_MODE_SPLIT	(3 << 0)
5783
#define BXT_CSR_DC3_DC5_COUNT	_MMIO(0x80038)
5706
 
5784
 
5707
/* interrupts */
5785
/* interrupts */
Line 5753... Line 5831...
5753
#define DE_PLANEA_FLIP_DONE_IVB		(1<<3)
5831
#define DE_PLANEA_FLIP_DONE_IVB		(1<<3)
5754
#define DE_PLANE_FLIP_DONE_IVB(plane)	(1<< (3 + 5*(plane)))
5832
#define DE_PLANE_FLIP_DONE_IVB(plane)	(1<< (3 + 5*(plane)))
5755
#define DE_PIPEA_VBLANK_IVB		(1<<0)
5833
#define DE_PIPEA_VBLANK_IVB		(1<<0)
5756
#define DE_PIPE_VBLANK_IVB(pipe)	(1 << ((pipe) * 5))
5834
#define DE_PIPE_VBLANK_IVB(pipe)	(1 << ((pipe) * 5))
Line 5757... Line 5835...
5757
 
5835
 
5758
#define VLV_MASTER_IER			0x4400c /* Gunit master IER */
5836
#define VLV_MASTER_IER			_MMIO(0x4400c) /* Gunit master IER */
Line 5759... Line 5837...
5759
#define   MASTER_INTERRUPT_ENABLE	(1<<31)
5837
#define   MASTER_INTERRUPT_ENABLE	(1<<31)
5760
 
5838
 
5761
#define DEISR   0x44000
5839
#define DEISR   _MMIO(0x44000)
5762
#define DEIMR   0x44004
5840
#define DEIMR   _MMIO(0x44004)
5763
#define DEIIR   0x44008
5841
#define DEIIR   _MMIO(0x44008)
5764
#define DEIER   0x4400c
5842
#define DEIER   _MMIO(0x4400c)
5765
 
5843
 
5766
#define GTISR   0x44010
5844
#define GTISR   _MMIO(0x44010)
5767
#define GTIMR   0x44014
5845
#define GTIMR   _MMIO(0x44014)
Line 5768... Line 5846...
5768
#define GTIIR   0x44018
5846
#define GTIIR   _MMIO(0x44018)
5769
#define GTIER   0x4401c
5847
#define GTIER   _MMIO(0x4401c)
5770
 
5848
 
5771
#define GEN8_MASTER_IRQ			0x44200
5849
#define GEN8_MASTER_IRQ			_MMIO(0x44200)
5772
#define  GEN8_MASTER_IRQ_CONTROL	(1<<31)
5850
#define  GEN8_MASTER_IRQ_CONTROL	(1<<31)
5773
#define  GEN8_PCU_IRQ			(1<<30)
5851
#define  GEN8_PCU_IRQ			(1<<30)
Line 5783... Line 5861...
5783
#define  GEN8_GT_VCS2_IRQ		(1<<3)
5861
#define  GEN8_GT_VCS2_IRQ		(1<<3)
5784
#define  GEN8_GT_VCS1_IRQ		(1<<2)
5862
#define  GEN8_GT_VCS1_IRQ		(1<<2)
5785
#define  GEN8_GT_BCS_IRQ		(1<<1)
5863
#define  GEN8_GT_BCS_IRQ		(1<<1)
5786
#define  GEN8_GT_RCS_IRQ		(1<<0)
5864
#define  GEN8_GT_RCS_IRQ		(1<<0)
Line 5787... Line 5865...
5787
 
5865
 
5788
#define GEN8_GT_ISR(which) (0x44300 + (0x10 * (which)))
5866
#define GEN8_GT_ISR(which) _MMIO(0x44300 + (0x10 * (which)))
5789
#define GEN8_GT_IMR(which) (0x44304 + (0x10 * (which)))
5867
#define GEN8_GT_IMR(which) _MMIO(0x44304 + (0x10 * (which)))
5790
#define GEN8_GT_IIR(which) (0x44308 + (0x10 * (which)))
5868
#define GEN8_GT_IIR(which) _MMIO(0x44308 + (0x10 * (which)))
Line 5791... Line 5869...
5791
#define GEN8_GT_IER(which) (0x4430c + (0x10 * (which)))
5869
#define GEN8_GT_IER(which) _MMIO(0x4430c + (0x10 * (which)))
5792
 
5870
 
5793
#define GEN8_RCS_IRQ_SHIFT 0
5871
#define GEN8_RCS_IRQ_SHIFT 0
5794
#define GEN8_BCS_IRQ_SHIFT 16
5872
#define GEN8_BCS_IRQ_SHIFT 16
5795
#define GEN8_VCS1_IRQ_SHIFT 0
5873
#define GEN8_VCS1_IRQ_SHIFT 0
5796
#define GEN8_VCS2_IRQ_SHIFT 16
5874
#define GEN8_VCS2_IRQ_SHIFT 16
Line 5797... Line 5875...
5797
#define GEN8_VECS_IRQ_SHIFT 0
5875
#define GEN8_VECS_IRQ_SHIFT 0
5798
#define GEN8_WD_IRQ_SHIFT 16
5876
#define GEN8_WD_IRQ_SHIFT 16
5799
 
5877
 
5800
#define GEN8_DE_PIPE_ISR(pipe) (0x44400 + (0x10 * (pipe)))
5878
#define GEN8_DE_PIPE_ISR(pipe) _MMIO(0x44400 + (0x10 * (pipe)))
5801
#define GEN8_DE_PIPE_IMR(pipe) (0x44404 + (0x10 * (pipe)))
5879
#define GEN8_DE_PIPE_IMR(pipe) _MMIO(0x44404 + (0x10 * (pipe)))
5802
#define GEN8_DE_PIPE_IIR(pipe) (0x44408 + (0x10 * (pipe)))
5880
#define GEN8_DE_PIPE_IIR(pipe) _MMIO(0x44408 + (0x10 * (pipe)))
5803
#define GEN8_DE_PIPE_IER(pipe) (0x4440c + (0x10 * (pipe)))
5881
#define GEN8_DE_PIPE_IER(pipe) _MMIO(0x4440c + (0x10 * (pipe)))
5804
#define  GEN8_PIPE_FIFO_UNDERRUN	(1 << 31)
5882
#define  GEN8_PIPE_FIFO_UNDERRUN	(1 << 31)
5805
#define  GEN8_PIPE_CDCLK_CRC_ERROR	(1 << 29)
5883
#define  GEN8_PIPE_CDCLK_CRC_ERROR	(1 << 29)
Line 5831... Line 5909...
5831
	 GEN9_PIPE_PLANE4_FAULT | \
5909
	 GEN9_PIPE_PLANE4_FAULT | \
5832
	 GEN9_PIPE_PLANE3_FAULT | \
5910
	 GEN9_PIPE_PLANE3_FAULT | \
5833
	 GEN9_PIPE_PLANE2_FAULT | \
5911
	 GEN9_PIPE_PLANE2_FAULT | \
5834
	 GEN9_PIPE_PLANE1_FAULT)
5912
	 GEN9_PIPE_PLANE1_FAULT)
Line 5835... Line 5913...
5835
 
5913
 
5836
#define GEN8_DE_PORT_ISR 0x44440
5914
#define GEN8_DE_PORT_ISR _MMIO(0x44440)
5837
#define GEN8_DE_PORT_IMR 0x44444
5915
#define GEN8_DE_PORT_IMR _MMIO(0x44444)
5838
#define GEN8_DE_PORT_IIR 0x44448
5916
#define GEN8_DE_PORT_IIR _MMIO(0x44448)
5839
#define GEN8_DE_PORT_IER 0x4444c
5917
#define GEN8_DE_PORT_IER _MMIO(0x4444c)
5840
#define  GEN9_AUX_CHANNEL_D		(1 << 27)
5918
#define  GEN9_AUX_CHANNEL_D		(1 << 27)
5841
#define  GEN9_AUX_CHANNEL_C		(1 << 26)
5919
#define  GEN9_AUX_CHANNEL_C		(1 << 26)
5842
#define  GEN9_AUX_CHANNEL_B		(1 << 25)
5920
#define  GEN9_AUX_CHANNEL_B		(1 << 25)
5843
#define  BXT_DE_PORT_HP_DDIC		(1 << 5)
5921
#define  BXT_DE_PORT_HP_DDIC		(1 << 5)
Line 5848... Line 5926...
5848
					 BXT_DE_PORT_HP_DDIC)
5926
					 BXT_DE_PORT_HP_DDIC)
5849
#define  GEN8_PORT_DP_A_HOTPLUG		(1 << 3)
5927
#define  GEN8_PORT_DP_A_HOTPLUG		(1 << 3)
5850
#define  BXT_DE_PORT_GMBUS		(1 << 1)
5928
#define  BXT_DE_PORT_GMBUS		(1 << 1)
5851
#define  GEN8_AUX_CHANNEL_A		(1 << 0)
5929
#define  GEN8_AUX_CHANNEL_A		(1 << 0)
Line 5852... Line 5930...
5852
 
5930
 
5853
#define GEN8_DE_MISC_ISR 0x44460
5931
#define GEN8_DE_MISC_ISR _MMIO(0x44460)
5854
#define GEN8_DE_MISC_IMR 0x44464
5932
#define GEN8_DE_MISC_IMR _MMIO(0x44464)
5855
#define GEN8_DE_MISC_IIR 0x44468
5933
#define GEN8_DE_MISC_IIR _MMIO(0x44468)
5856
#define GEN8_DE_MISC_IER 0x4446c
5934
#define GEN8_DE_MISC_IER _MMIO(0x4446c)
Line 5857... Line 5935...
5857
#define  GEN8_DE_MISC_GSE		(1 << 27)
5935
#define  GEN8_DE_MISC_GSE		(1 << 27)
5858
 
5936
 
5859
#define GEN8_PCU_ISR 0x444e0
5937
#define GEN8_PCU_ISR _MMIO(0x444e0)
5860
#define GEN8_PCU_IMR 0x444e4
5938
#define GEN8_PCU_IMR _MMIO(0x444e4)
Line 5861... Line 5939...
5861
#define GEN8_PCU_IIR 0x444e8
5939
#define GEN8_PCU_IIR _MMIO(0x444e8)
5862
#define GEN8_PCU_IER 0x444ec
5940
#define GEN8_PCU_IER _MMIO(0x444ec)
5863
 
5941
 
5864
#define ILK_DISPLAY_CHICKEN2	0x42004
5942
#define ILK_DISPLAY_CHICKEN2	_MMIO(0x42004)
5865
/* Required on all Ironlake and Sandybridge according to the B-Spec. */
5943
/* Required on all Ironlake and Sandybridge according to the B-Spec. */
5866
#define  ILK_ELPIN_409_SELECT	(1 << 25)
5944
#define  ILK_ELPIN_409_SELECT	(1 << 25)
5867
#define  ILK_DPARB_GATE	(1<<22)
5945
#define  ILK_DPARB_GATE	(1<<22)
5868
#define  ILK_VSDPFD_FULL	(1<<21)
5946
#define  ILK_VSDPFD_FULL	(1<<21)
5869
#define FUSE_STRAP			0x42014
5947
#define FUSE_STRAP			_MMIO(0x42014)
5870
#define  ILK_INTERNAL_GRAPHICS_DISABLE	(1 << 31)
5948
#define  ILK_INTERNAL_GRAPHICS_DISABLE	(1 << 31)
5871
#define  ILK_INTERNAL_DISPLAY_DISABLE	(1 << 30)
5949
#define  ILK_INTERNAL_DISPLAY_DISABLE	(1 << 30)
5872
#define  ILK_DISPLAY_DEBUG_DISABLE	(1 << 29)
5950
#define  ILK_DISPLAY_DEBUG_DISABLE	(1 << 29)
5873
#define  ILK_HDCP_DISABLE		(1 << 25)
5951
#define  ILK_HDCP_DISABLE		(1 << 25)
Line 5874... Line 5952...
5874
#define  ILK_eDP_A_DISABLE		(1 << 24)
5952
#define  ILK_eDP_A_DISABLE		(1 << 24)
5875
#define  HSW_CDCLK_LIMIT		(1 << 24)
5953
#define  HSW_CDCLK_LIMIT		(1 << 24)
5876
#define  ILK_DESKTOP			(1 << 23)
5954
#define  ILK_DESKTOP			(1 << 23)
5877
 
5955
 
5878
#define ILK_DSPCLK_GATE_D			0x42020
5956
#define ILK_DSPCLK_GATE_D			_MMIO(0x42020)
5879
#define   ILK_VRHUNIT_CLOCK_GATE_DISABLE	(1 << 28)
5957
#define   ILK_VRHUNIT_CLOCK_GATE_DISABLE	(1 << 28)
Line 5880... Line 5958...
5880
#define   ILK_DPFCUNIT_CLOCK_GATE_DISABLE	(1 << 9)
5958
#define   ILK_DPFCUNIT_CLOCK_GATE_DISABLE	(1 << 9)
5881
#define   ILK_DPFCRUNIT_CLOCK_GATE_DISABLE	(1 << 8)
5959
#define   ILK_DPFCRUNIT_CLOCK_GATE_DISABLE	(1 << 8)
5882
#define   ILK_DPFDUNIT_CLOCK_GATE_ENABLE	(1 << 7)
5960
#define   ILK_DPFDUNIT_CLOCK_GATE_ENABLE	(1 << 7)
Line 5883... Line 5961...
5883
#define   ILK_DPARBUNIT_CLOCK_GATE_ENABLE	(1 << 5)
5961
#define   ILK_DPARBUNIT_CLOCK_GATE_ENABLE	(1 << 5)
5884
 
5962
 
5885
#define IVB_CHICKEN3	0x4200c
5963
#define IVB_CHICKEN3	_MMIO(0x4200c)
Line 5886... Line 5964...
5886
# define CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE	(1 << 5)
5964
# define CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE	(1 << 5)
5887
# define CHICKEN3_DGMG_DONE_FIX_DISABLE		(1 << 2)
5965
# define CHICKEN3_DGMG_DONE_FIX_DISABLE		(1 << 2)
5888
 
5966
 
5889
#define CHICKEN_PAR1_1		0x42080
5967
#define CHICKEN_PAR1_1		_MMIO(0x42080)
5890
#define  DPA_MASK_VBLANK_SRD	(1 << 15)
5968
#define  DPA_MASK_VBLANK_SRD	(1 << 15)
Line 5891... Line 5969...
5891
#define  FORCE_ARB_IDLE_PLANES	(1 << 14)
5969
#define  FORCE_ARB_IDLE_PLANES	(1 << 14)
5892
 
5970
 
5893
#define _CHICKEN_PIPESL_1_A	0x420b0
5971
#define _CHICKEN_PIPESL_1_A	0x420b0
5894
#define _CHICKEN_PIPESL_1_B	0x420b4
5972
#define _CHICKEN_PIPESL_1_B	0x420b4
5895
#define  HSW_FBCQ_DIS			(1 << 22)
5973
#define  HSW_FBCQ_DIS			(1 << 22)
5896
#define  BDW_DPRS_MASK_VBLANK_SRD	(1 << 0)
5974
#define  BDW_DPRS_MASK_VBLANK_SRD	(1 << 0)
5897
#define CHICKEN_PIPESL_1(pipe) _PIPE(pipe, _CHICKEN_PIPESL_1_A, _CHICKEN_PIPESL_1_B)
5975
#define CHICKEN_PIPESL_1(pipe) _MMIO_PIPE(pipe, _CHICKEN_PIPESL_1_A, _CHICKEN_PIPESL_1_B)
5898
 
5976
 
5899
#define DISP_ARB_CTL	0x45000
5977
#define DISP_ARB_CTL	_MMIO(0x45000)
5900
#define  DISP_TILE_SURFACE_SWIZZLING	(1<<13)
5978
#define  DISP_TILE_SURFACE_SWIZZLING	(1<<13)
5901
#define  DISP_FBC_WM_DIS		(1<<15)
5979
#define  DISP_FBC_WM_DIS		(1<<15)
5902
#define DISP_ARB_CTL2	0x45004
5980
#define DISP_ARB_CTL2	_MMIO(0x45004)
5903
#define  DISP_DATA_PARTITION_5_6	(1<<6)
5981
#define  DISP_DATA_PARTITION_5_6	(1<<6)
Line 5904... Line 5982...
5904
#define DBUF_CTL	0x45008
5982
#define DBUF_CTL	_MMIO(0x45008)
5905
#define  DBUF_POWER_REQUEST		(1<<31)
5983
#define  DBUF_POWER_REQUEST		(1<<31)
5906
#define  DBUF_POWER_STATE		(1<<30)
5984
#define  DBUF_POWER_STATE		(1<<30)
5907
#define GEN7_MSG_CTL	0x45010
5985
#define GEN7_MSG_CTL	_MMIO(0x45010)
5908
#define  WAIT_FOR_PCH_RESET_ACK		(1<<1)
5986
#define  WAIT_FOR_PCH_RESET_ACK		(1<<1)
5909
#define  WAIT_FOR_PCH_FLR_ACK		(1<<0)
5987
#define  WAIT_FOR_PCH_FLR_ACK		(1<<0)
Line 5910... Line 5988...
5910
#define HSW_NDE_RSTWRN_OPT	0x46408
5988
#define HSW_NDE_RSTWRN_OPT	_MMIO(0x46408)
5911
#define  RESET_PCH_HANDSHAKE_ENABLE	(1<<4)
5989
#define  RESET_PCH_HANDSHAKE_ENABLE	(1<<4)
Line 5912... Line 5990...
5912
 
5990
 
5913
#define SKL_DFSM			0x51000
5991
#define SKL_DFSM			_MMIO(0x51000)
5914
#define SKL_DFSM_CDCLK_LIMIT_MASK	(3 << 23)
5992
#define SKL_DFSM_CDCLK_LIMIT_MASK	(3 << 23)
5915
#define SKL_DFSM_CDCLK_LIMIT_675	(0 << 23)
5993
#define SKL_DFSM_CDCLK_LIMIT_675	(0 << 23)
5916
#define SKL_DFSM_CDCLK_LIMIT_540	(1 << 23)
5994
#define SKL_DFSM_CDCLK_LIMIT_540	(1 << 23)
5917
#define SKL_DFSM_CDCLK_LIMIT_450	(2 << 23)
5995
#define SKL_DFSM_CDCLK_LIMIT_450	(2 << 23)
Line 5918... Line 5996...
5918
#define SKL_DFSM_CDCLK_LIMIT_337_5	(3 << 23)
5996
#define SKL_DFSM_CDCLK_LIMIT_337_5	(3 << 23)
5919
 
5997
 
5920
#define FF_SLICE_CS_CHICKEN2			0x20e4
5998
#define FF_SLICE_CS_CHICKEN2			_MMIO(0x20e4)
Line 5921... Line 5999...
5921
#define  GEN9_TSG_BARRIER_ACK_DISABLE		(1<<8)
5999
#define  GEN9_TSG_BARRIER_ACK_DISABLE		(1<<8)
5922
 
6000
 
Line 5923... Line 6001...
5923
/* GEN7 chicken */
6001
/* GEN7 chicken */
5924
#define GEN7_COMMON_SLICE_CHICKEN1		0x7010
6002
#define GEN7_COMMON_SLICE_CHICKEN1		_MMIO(0x7010)
Line 5925... Line 6003...
5925
# define GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC	((1<<10) | (1<<26))
6003
# define GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC	((1<<10) | (1<<26))
5926
# define GEN9_RHWO_OPTIMIZATION_DISABLE		(1<<14)
6004
# define GEN9_RHWO_OPTIMIZATION_DISABLE		(1<<14)
Line 5927... Line 6005...
5927
#define COMMON_SLICE_CHICKEN2			0x7014
6005
#define COMMON_SLICE_CHICKEN2			_MMIO(0x7014)
5928
# define GEN8_CSC2_SBE_VUE_CACHE_CONSERVATIVE	(1<<0)
6006
# define GEN8_CSC2_SBE_VUE_CACHE_CONSERVATIVE	(1<<0)
5929
 
6007
 
5930
#define HIZ_CHICKEN					0x7018
6008
#define HIZ_CHICKEN					_MMIO(0x7018)
5931
# define CHV_HZ_8X8_MODE_IN_1X				(1<<15)
6009
# define CHV_HZ_8X8_MODE_IN_1X				(1<<15)
Line 5932... Line 6010...
5932
# define BDW_HIZ_POWER_COMPILER_CLOCK_GATING_DISABLE	(1<<3)
6010
# define BDW_HIZ_POWER_COMPILER_CLOCK_GATING_DISABLE	(1<<3)
5933
 
6011
 
Line 5934... Line 6012...
5934
#define GEN9_SLICE_COMMON_ECO_CHICKEN0		0x7308
6012
#define GEN9_SLICE_COMMON_ECO_CHICKEN0		_MMIO(0x7308)
5935
#define  DISABLE_PIXEL_MASK_CAMMING		(1<<14)
6013
#define  DISABLE_PIXEL_MASK_CAMMING		(1<<14)
Line 5936... Line 6014...
5936
 
6014
 
5937
#define GEN7_L3SQCREG1				0xB010
6015
#define GEN7_L3SQCREG1				_MMIO(0xB010)
5938
#define  VLV_B0_WA_L3SQCREG1_VALUE		0x00D30000
6016
#define  VLV_B0_WA_L3SQCREG1_VALUE		0x00D30000
Line 5939... Line 6017...
5939
 
6017
 
5940
#define GEN8_L3SQCREG1				0xB100
6018
#define GEN8_L3SQCREG1				_MMIO(0xB100)
5941
#define  BDW_WA_L3SQCREG1_DEFAULT		0x784000
6019
#define  BDW_WA_L3SQCREG1_DEFAULT		0x784000
5942
 
6020
 
5943
#define GEN7_L3CNTLREG1				0xB01C
6021
#define GEN7_L3CNTLREG1				_MMIO(0xB01C)
5944
#define  GEN7_WA_FOR_GEN7_L3_CONTROL			0x3C47FF8C
6022
#define  GEN7_WA_FOR_GEN7_L3_CONTROL			0x3C47FF8C
5945
#define  GEN7_L3AGDIS				(1<<19)
6023
#define  GEN7_L3AGDIS				(1<<19)
5946
#define GEN7_L3CNTLREG2				0xB020
6024
#define GEN7_L3CNTLREG2				_MMIO(0xB020)
Line 5947... Line 6025...
5947
#define GEN7_L3CNTLREG3				0xB024
6025
#define GEN7_L3CNTLREG3				_MMIO(0xB024)
5948
 
6026
 
5949
#define GEN7_L3_CHICKEN_MODE_REGISTER		0xB030
6027
#define GEN7_L3_CHICKEN_MODE_REGISTER		_MMIO(0xB030)
Line 5950... Line 6028...
5950
#define  GEN7_WA_L3_CHICKEN_MODE				0x20000000
6028
#define  GEN7_WA_L3_CHICKEN_MODE				0x20000000
5951
 
6029
 
5952
#define GEN7_L3SQCREG4				0xb034
6030
#define GEN7_L3SQCREG4				_MMIO(0xb034)
Line 5953... Line 6031...
5953
#define  L3SQ_URB_READ_CAM_MATCH_DISABLE	(1<<27)
6031
#define  L3SQ_URB_READ_CAM_MATCH_DISABLE	(1<<27)
5954
 
6032
 
Line 5955... Line 6033...
5955
#define GEN8_L3SQCREG4				0xb118
6033
#define GEN8_L3SQCREG4				_MMIO(0xb118)
5956
#define  GEN8_LQSC_RO_PERF_DIS			(1<<27)
6034
#define  GEN8_LQSC_RO_PERF_DIS			(1<<27)
Line 5957... Line 6035...
5957
#define  GEN8_LQSC_FLUSH_COHERENT_LINES		(1<<21)
6035
#define  GEN8_LQSC_FLUSH_COHERENT_LINES		(1<<21)
Line 5958... Line 6036...
5958
 
6036
 
Line 6068... Line 6146...
6068
				 SDE_AUDIO_CP_CHG_A_CPT)
6146
				 SDE_AUDIO_CP_CHG_A_CPT)
6069
#define SDE_FDI_MASK_CPT	(SDE_FDI_RXC_CPT | \
6147
#define SDE_FDI_MASK_CPT	(SDE_FDI_RXC_CPT | \
6070
				 SDE_FDI_RXB_CPT | \
6148
				 SDE_FDI_RXB_CPT | \
6071
				 SDE_FDI_RXA_CPT)
6149
				 SDE_FDI_RXA_CPT)
Line 6072... Line 6150...
6072
 
6150
 
6073
#define SDEISR  0xc4000
6151
#define SDEISR  _MMIO(0xc4000)
6074
#define SDEIMR  0xc4004
6152
#define SDEIMR  _MMIO(0xc4004)
6075
#define SDEIIR  0xc4008
6153
#define SDEIIR  _MMIO(0xc4008)
Line 6076... Line 6154...
6076
#define SDEIER  0xc400c
6154
#define SDEIER  _MMIO(0xc400c)
6077
 
6155
 
6078
#define SERR_INT			0xc4040
6156
#define SERR_INT			_MMIO(0xc4040)
6079
#define  SERR_INT_POISON		(1<<31)
6157
#define  SERR_INT_POISON		(1<<31)
6080
#define  SERR_INT_TRANS_C_FIFO_UNDERRUN	(1<<6)
6158
#define  SERR_INT_TRANS_C_FIFO_UNDERRUN	(1<<6)
6081
#define  SERR_INT_TRANS_B_FIFO_UNDERRUN	(1<<3)
6159
#define  SERR_INT_TRANS_B_FIFO_UNDERRUN	(1<<3)
Line 6082... Line 6160...
6082
#define  SERR_INT_TRANS_A_FIFO_UNDERRUN	(1<<0)
6160
#define  SERR_INT_TRANS_A_FIFO_UNDERRUN	(1<<0)
6083
#define  SERR_INT_TRANS_FIFO_UNDERRUN(pipe)	(1<<((pipe)*3))
6161
#define  SERR_INT_TRANS_FIFO_UNDERRUN(pipe)	(1<<((pipe)*3))
6084
 
6162
 
6085
/* digital port hotplug */
6163
/* digital port hotplug */
6086
#define PCH_PORT_HOTPLUG		0xc4030	/* SHOTPLUG_CTL */
6164
#define PCH_PORT_HOTPLUG		_MMIO(0xc4030)	/* SHOTPLUG_CTL */
6087
#define  PORTA_HOTPLUG_ENABLE		(1 << 28) /* LPT:LP+ & BXT */
6165
#define  PORTA_HOTPLUG_ENABLE		(1 << 28) /* LPT:LP+ & BXT */
6088
#define  PORTA_HOTPLUG_STATUS_MASK	(3 << 24) /* SPT+ & BXT */
6166
#define  PORTA_HOTPLUG_STATUS_MASK	(3 << 24) /* SPT+ & BXT */
Line 6118... Line 6196...
6118
#define  PORTB_HOTPLUG_STATUS_MASK	(3 << 0)
6196
#define  PORTB_HOTPLUG_STATUS_MASK	(3 << 0)
6119
#define  PORTB_HOTPLUG_NO_DETECT	(0 << 0)
6197
#define  PORTB_HOTPLUG_NO_DETECT	(0 << 0)
6120
#define  PORTB_HOTPLUG_SHORT_DETECT	(1 << 0)
6198
#define  PORTB_HOTPLUG_SHORT_DETECT	(1 << 0)
6121
#define  PORTB_HOTPLUG_LONG_DETECT	(2 << 0)
6199
#define  PORTB_HOTPLUG_LONG_DETECT	(2 << 0)
Line 6122... Line 6200...
6122
 
6200
 
6123
#define PCH_PORT_HOTPLUG2		0xc403C	/* SHOTPLUG_CTL2 SPT+ */
6201
#define PCH_PORT_HOTPLUG2		_MMIO(0xc403C)	/* SHOTPLUG_CTL2 SPT+ */
6124
#define  PORTE_HOTPLUG_ENABLE		(1 << 4)
6202
#define  PORTE_HOTPLUG_ENABLE		(1 << 4)
6125
#define  PORTE_HOTPLUG_STATUS_MASK	(3 << 0)
6203
#define  PORTE_HOTPLUG_STATUS_MASK	(3 << 0)
6126
#define  PORTE_HOTPLUG_NO_DETECT	(0 << 0)
6204
#define  PORTE_HOTPLUG_NO_DETECT	(0 << 0)
6127
#define  PORTE_HOTPLUG_SHORT_DETECT	(1 << 0)
6205
#define  PORTE_HOTPLUG_SHORT_DETECT	(1 << 0)
Line 6128... Line 6206...
6128
#define  PORTE_HOTPLUG_LONG_DETECT	(2 << 0)
6206
#define  PORTE_HOTPLUG_LONG_DETECT	(2 << 0)
6129
 
6207
 
6130
#define PCH_GPIOA               0xc5010
6208
#define PCH_GPIOA               _MMIO(0xc5010)
6131
#define PCH_GPIOB               0xc5014
6209
#define PCH_GPIOB               _MMIO(0xc5014)
6132
#define PCH_GPIOC               0xc5018
6210
#define PCH_GPIOC               _MMIO(0xc5018)
6133
#define PCH_GPIOD               0xc501c
6211
#define PCH_GPIOD               _MMIO(0xc501c)
6134
#define PCH_GPIOE               0xc5020
6212
#define PCH_GPIOE               _MMIO(0xc5020)
6135
#define PCH_GPIOF               0xc5024
6213
#define PCH_GPIOF               _MMIO(0xc5024)
6136
 
6214
 
6137
#define PCH_GMBUS0		0xc5100
6215
#define PCH_GMBUS0		_MMIO(0xc5100)
6138
#define PCH_GMBUS1		0xc5104
6216
#define PCH_GMBUS1		_MMIO(0xc5104)
6139
#define PCH_GMBUS2		0xc5108
6217
#define PCH_GMBUS2		_MMIO(0xc5108)
6140
#define PCH_GMBUS3		0xc510c
6218
#define PCH_GMBUS3		_MMIO(0xc510c)
Line 6141... Line 6219...
6141
#define PCH_GMBUS4		0xc5110
6219
#define PCH_GMBUS4		_MMIO(0xc5110)
6142
#define PCH_GMBUS5		0xc5120
6220
#define PCH_GMBUS5		_MMIO(0xc5120)
6143
 
6221
 
Line 6144... Line 6222...
6144
#define _PCH_DPLL_A              0xc6014
6222
#define _PCH_DPLL_A              0xc6014
6145
#define _PCH_DPLL_B              0xc6018
6223
#define _PCH_DPLL_B              0xc6018
6146
#define PCH_DPLL(pll) (pll == 0 ? _PCH_DPLL_A : _PCH_DPLL_B)
6224
#define PCH_DPLL(pll) _MMIO(pll == 0 ? _PCH_DPLL_A : _PCH_DPLL_B)
6147
 
6225
 
6148
#define _PCH_FPA0                0xc6040
6226
#define _PCH_FPA0                0xc6040
6149
#define  FP_CB_TUNE		(0x3<<22)
6227
#define  FP_CB_TUNE		(0x3<<22)
6150
#define _PCH_FPA1                0xc6044
6228
#define _PCH_FPA1                0xc6044
Line 6151... Line 6229...
6151
#define _PCH_FPB0                0xc6048
6229
#define _PCH_FPB0                0xc6048
Line 6152... Line 6230...
6152
#define _PCH_FPB1                0xc604c
6230
#define _PCH_FPB1                0xc604c
6153
#define PCH_FP0(pll) (pll == 0 ? _PCH_FPA0 : _PCH_FPB0)
6231
#define PCH_FP0(pll) _MMIO(pll == 0 ? _PCH_FPA0 : _PCH_FPB0)
6154
#define PCH_FP1(pll) (pll == 0 ? _PCH_FPA1 : _PCH_FPB1)
6232
#define PCH_FP1(pll) _MMIO(pll == 0 ? _PCH_FPA1 : _PCH_FPB1)
6155
 
6233
 
6156
#define PCH_DPLL_TEST           0xc606c
6234
#define PCH_DPLL_TEST           _MMIO(0xc606c)
6157
 
6235
 
Line 6176... Line 6254...
6176
#define  DREF_SSC1_DISABLE                      (0<<1)
6254
#define  DREF_SSC1_DISABLE                      (0<<1)
6177
#define  DREF_SSC1_ENABLE                       (1<<1)
6255
#define  DREF_SSC1_ENABLE                       (1<<1)
6178
#define  DREF_SSC4_DISABLE                      (0)
6256
#define  DREF_SSC4_DISABLE                      (0)
6179
#define  DREF_SSC4_ENABLE                       (1)
6257
#define  DREF_SSC4_ENABLE                       (1)
Line 6180... Line 6258...
6180
 
6258
 
6181
#define PCH_RAWCLK_FREQ         0xc6204
6259
#define PCH_RAWCLK_FREQ         _MMIO(0xc6204)
6182
#define  FDL_TP1_TIMER_SHIFT    12
6260
#define  FDL_TP1_TIMER_SHIFT    12
6183
#define  FDL_TP1_TIMER_MASK     (3<<12)
6261
#define  FDL_TP1_TIMER_MASK     (3<<12)
6184
#define  FDL_TP2_TIMER_SHIFT    10
6262
#define  FDL_TP2_TIMER_SHIFT    10
6185
#define  FDL_TP2_TIMER_MASK     (3<<10)
6263
#define  FDL_TP2_TIMER_MASK     (3<<10)
Line 6186... Line 6264...
6186
#define  RAWCLK_FREQ_MASK       0x3ff
6264
#define  RAWCLK_FREQ_MASK       0x3ff
Line 6187... Line 6265...
6187
 
6265
 
6188
#define PCH_DPLL_TMR_CFG        0xc6208
6266
#define PCH_DPLL_TMR_CFG        _MMIO(0xc6208)
Line 6189... Line 6267...
6189
 
6267
 
6190
#define PCH_SSC4_PARMS          0xc6210
6268
#define PCH_SSC4_PARMS          _MMIO(0xc6210)
6191
#define PCH_SSC4_AUX_PARMS      0xc6214
6269
#define PCH_SSC4_AUX_PARMS      _MMIO(0xc6214)
6192
 
6270
 
Line 6193... Line 6271...
6193
#define PCH_DPLL_SEL		0xc7000
6271
#define PCH_DPLL_SEL		_MMIO(0xc7000)
Line 6236... Line 6314...
6236
 
6314
 
6237
#define _VIDEO_DIP_CTL_B         0xe1200
6315
#define _VIDEO_DIP_CTL_B         0xe1200
6238
#define _VIDEO_DIP_DATA_B        0xe1208
6316
#define _VIDEO_DIP_DATA_B        0xe1208
Line 6239... Line 6317...
6239
#define _VIDEO_DIP_GCP_B         0xe1210
6317
#define _VIDEO_DIP_GCP_B         0xe1210
6240
 
6318
 
6241
#define TVIDEO_DIP_CTL(pipe) _PIPE(pipe, _VIDEO_DIP_CTL_A, _VIDEO_DIP_CTL_B)
6319
#define TVIDEO_DIP_CTL(pipe) _MMIO_PIPE(pipe, _VIDEO_DIP_CTL_A, _VIDEO_DIP_CTL_B)
Line 6242... Line 6320...
6242
#define TVIDEO_DIP_DATA(pipe) _PIPE(pipe, _VIDEO_DIP_DATA_A, _VIDEO_DIP_DATA_B)
6320
#define TVIDEO_DIP_DATA(pipe) _MMIO_PIPE(pipe, _VIDEO_DIP_DATA_A, _VIDEO_DIP_DATA_B)
6243
#define TVIDEO_DIP_GCP(pipe) _PIPE(pipe, _VIDEO_DIP_GCP_A, _VIDEO_DIP_GCP_B)
6321
#define TVIDEO_DIP_GCP(pipe) _MMIO_PIPE(pipe, _VIDEO_DIP_GCP_A, _VIDEO_DIP_GCP_B)
6244
 
6322
 
6245
/* Per-transcoder DIP controls (VLV) */
6323
/* Per-transcoder DIP controls (VLV) */
6246
#define VLV_VIDEO_DIP_CTL_A		(VLV_DISPLAY_BASE + 0x60200)
6324
#define _VLV_VIDEO_DIP_CTL_A		(VLV_DISPLAY_BASE + 0x60200)
6247
#define VLV_VIDEO_DIP_DATA_A		(VLV_DISPLAY_BASE + 0x60208)
6325
#define _VLV_VIDEO_DIP_DATA_A		(VLV_DISPLAY_BASE + 0x60208)
6248
#define VLV_VIDEO_DIP_GDCP_PAYLOAD_A	(VLV_DISPLAY_BASE + 0x60210)
6326
#define _VLV_VIDEO_DIP_GDCP_PAYLOAD_A	(VLV_DISPLAY_BASE + 0x60210)
6249
 
6327
 
6250
#define VLV_VIDEO_DIP_CTL_B		(VLV_DISPLAY_BASE + 0x61170)
6328
#define _VLV_VIDEO_DIP_CTL_B		(VLV_DISPLAY_BASE + 0x61170)
6251
#define VLV_VIDEO_DIP_DATA_B		(VLV_DISPLAY_BASE + 0x61174)
6329
#define _VLV_VIDEO_DIP_DATA_B		(VLV_DISPLAY_BASE + 0x61174)
6252
#define VLV_VIDEO_DIP_GDCP_PAYLOAD_B	(VLV_DISPLAY_BASE + 0x61178)
6330
#define _VLV_VIDEO_DIP_GDCP_PAYLOAD_B	(VLV_DISPLAY_BASE + 0x61178)
6253
 
6331
 
Line 6254... Line 6332...
6254
#define CHV_VIDEO_DIP_CTL_C		(VLV_DISPLAY_BASE + 0x611f0)
6332
#define _CHV_VIDEO_DIP_CTL_C		(VLV_DISPLAY_BASE + 0x611f0)
6255
#define CHV_VIDEO_DIP_DATA_C		(VLV_DISPLAY_BASE + 0x611f4)
6333
#define _CHV_VIDEO_DIP_DATA_C		(VLV_DISPLAY_BASE + 0x611f4)
6256
#define CHV_VIDEO_DIP_GDCP_PAYLOAD_C	(VLV_DISPLAY_BASE + 0x611f8)
6334
#define _CHV_VIDEO_DIP_GDCP_PAYLOAD_C	(VLV_DISPLAY_BASE + 0x611f8)
6257
 
6335
 
6258
#define VLV_TVIDEO_DIP_CTL(pipe) \
6336
#define VLV_TVIDEO_DIP_CTL(pipe) \
6259
	_PIPE3((pipe), VLV_VIDEO_DIP_CTL_A, \
6337
	_MMIO_PIPE3((pipe), _VLV_VIDEO_DIP_CTL_A, \
6260
	       VLV_VIDEO_DIP_CTL_B, CHV_VIDEO_DIP_CTL_C)
6338
	       _VLV_VIDEO_DIP_CTL_B, _CHV_VIDEO_DIP_CTL_C)
6261
#define VLV_TVIDEO_DIP_DATA(pipe) \
6339
#define VLV_TVIDEO_DIP_DATA(pipe) \
6262
	_PIPE3((pipe), VLV_VIDEO_DIP_DATA_A, \
6340
	_MMIO_PIPE3((pipe), _VLV_VIDEO_DIP_DATA_A, \
Line 6263... Line 6341...
6263
	       VLV_VIDEO_DIP_DATA_B, CHV_VIDEO_DIP_DATA_C)
6341
	       _VLV_VIDEO_DIP_DATA_B, _CHV_VIDEO_DIP_DATA_C)
6264
#define VLV_TVIDEO_DIP_GCP(pipe) \
-
 
6265
	_PIPE3((pipe), VLV_VIDEO_DIP_GDCP_PAYLOAD_A, \
-
 
6266
		VLV_VIDEO_DIP_GDCP_PAYLOAD_B, CHV_VIDEO_DIP_GDCP_PAYLOAD_C)
-
 
6267
 
-
 
6268
/* Haswell DIP controls */
-
 
6269
#define HSW_VIDEO_DIP_CTL_A		0x60200
-
 
6270
#define HSW_VIDEO_DIP_AVI_DATA_A	0x60220
-
 
6271
#define HSW_VIDEO_DIP_VS_DATA_A		0x60260
-
 
6272
#define HSW_VIDEO_DIP_SPD_DATA_A	0x602A0
-
 
6273
#define HSW_VIDEO_DIP_GMP_DATA_A	0x602E0
-
 
6274
#define HSW_VIDEO_DIP_VSC_DATA_A	0x60320
-
 
6275
#define HSW_VIDEO_DIP_AVI_ECC_A		0x60240
-
 
6276
#define HSW_VIDEO_DIP_VS_ECC_A		0x60280
-
 
6277
#define HSW_VIDEO_DIP_SPD_ECC_A		0x602C0
-
 
6278
#define HSW_VIDEO_DIP_GMP_ECC_A		0x60300
-
 
6279
#define HSW_VIDEO_DIP_VSC_ECC_A		0x60344
-
 
6280
#define HSW_VIDEO_DIP_GCP_A		0x60210
-
 
6281
 
-
 
6282
#define HSW_VIDEO_DIP_CTL_B		0x61200
-
 
6283
#define HSW_VIDEO_DIP_AVI_DATA_B	0x61220
-
 
6284
#define HSW_VIDEO_DIP_VS_DATA_B		0x61260
-
 
6285
#define HSW_VIDEO_DIP_SPD_DATA_B	0x612A0
-
 
6286
#define HSW_VIDEO_DIP_GMP_DATA_B	0x612E0
-
 
6287
#define HSW_VIDEO_DIP_VSC_DATA_B	0x61320
-
 
6288
#define HSW_VIDEO_DIP_BVI_ECC_B		0x61240
-
 
6289
#define HSW_VIDEO_DIP_VS_ECC_B		0x61280
-
 
6290
#define HSW_VIDEO_DIP_SPD_ECC_B		0x612C0
-
 
6291
#define HSW_VIDEO_DIP_GMP_ECC_B		0x61300
-
 
6292
#define HSW_VIDEO_DIP_VSC_ECC_B		0x61344
-
 
6293
#define HSW_VIDEO_DIP_GCP_B		0x61210
-
 
6294
 
-
 
6295
#define HSW_TVIDEO_DIP_CTL(trans) \
-
 
6296
	 _TRANSCODER2(trans, HSW_VIDEO_DIP_CTL_A)
-
 
6297
#define HSW_TVIDEO_DIP_AVI_DATA(trans, i) \
-
 
6298
	(_TRANSCODER2(trans, HSW_VIDEO_DIP_AVI_DATA_A) + (i) * 4)
-
 
6299
#define HSW_TVIDEO_DIP_VS_DATA(trans, i) \
-
 
6300
	(_TRANSCODER2(trans, HSW_VIDEO_DIP_VS_DATA_A) + (i) * 4)
-
 
6301
#define HSW_TVIDEO_DIP_SPD_DATA(trans, i) \
-
 
Line -... Line 6342...
-
 
6342
#define VLV_TVIDEO_DIP_GCP(pipe) \
-
 
6343
	_MMIO_PIPE3((pipe), _VLV_VIDEO_DIP_GDCP_PAYLOAD_A, \
-
 
6344
		_VLV_VIDEO_DIP_GDCP_PAYLOAD_B, _CHV_VIDEO_DIP_GDCP_PAYLOAD_C)
-
 
6345
 
-
 
6346
/* Haswell DIP controls */
-
 
6347
 
-
 
6348
#define _HSW_VIDEO_DIP_CTL_A		0x60200
-
 
6349
#define _HSW_VIDEO_DIP_AVI_DATA_A	0x60220
-
 
6350
#define _HSW_VIDEO_DIP_VS_DATA_A	0x60260
-
 
6351
#define _HSW_VIDEO_DIP_SPD_DATA_A	0x602A0
-
 
6352
#define _HSW_VIDEO_DIP_GMP_DATA_A	0x602E0
-
 
6353
#define _HSW_VIDEO_DIP_VSC_DATA_A	0x60320
-
 
6354
#define _HSW_VIDEO_DIP_AVI_ECC_A	0x60240
-
 
6355
#define _HSW_VIDEO_DIP_VS_ECC_A		0x60280
-
 
6356
#define _HSW_VIDEO_DIP_SPD_ECC_A	0x602C0
-
 
6357
#define _HSW_VIDEO_DIP_GMP_ECC_A	0x60300
-
 
6358
#define _HSW_VIDEO_DIP_VSC_ECC_A	0x60344
-
 
6359
#define _HSW_VIDEO_DIP_GCP_A		0x60210
-
 
6360
 
-
 
6361
#define _HSW_VIDEO_DIP_CTL_B		0x61200
-
 
6362
#define _HSW_VIDEO_DIP_AVI_DATA_B	0x61220
-
 
6363
#define _HSW_VIDEO_DIP_VS_DATA_B	0x61260
-
 
6364
#define _HSW_VIDEO_DIP_SPD_DATA_B	0x612A0
-
 
6365
#define _HSW_VIDEO_DIP_GMP_DATA_B	0x612E0
-
 
6366
#define _HSW_VIDEO_DIP_VSC_DATA_B	0x61320
-
 
6367
#define _HSW_VIDEO_DIP_BVI_ECC_B	0x61240
-
 
6368
#define _HSW_VIDEO_DIP_VS_ECC_B		0x61280
-
 
6369
#define _HSW_VIDEO_DIP_SPD_ECC_B	0x612C0
-
 
6370
#define _HSW_VIDEO_DIP_GMP_ECC_B	0x61300
-
 
6371
#define _HSW_VIDEO_DIP_VSC_ECC_B	0x61344
-
 
6372
#define _HSW_VIDEO_DIP_GCP_B		0x61210
-
 
6373
 
-
 
6374
#define HSW_TVIDEO_DIP_CTL(trans)		_MMIO_TRANS2(trans, _HSW_VIDEO_DIP_CTL_A)
6302
	(_TRANSCODER2(trans, HSW_VIDEO_DIP_SPD_DATA_A) + (i) * 4)
6375
#define HSW_TVIDEO_DIP_AVI_DATA(trans, i)	_MMIO_TRANS2(trans, _HSW_VIDEO_DIP_AVI_DATA_A + (i) * 4)
6303
#define HSW_TVIDEO_DIP_GCP(trans) \
6376
#define HSW_TVIDEO_DIP_VS_DATA(trans, i)	_MMIO_TRANS2(trans, _HSW_VIDEO_DIP_VS_DATA_A + (i) * 4)
6304
	_TRANSCODER2(trans, HSW_VIDEO_DIP_GCP_A)
6377
#define HSW_TVIDEO_DIP_SPD_DATA(trans, i)	_MMIO_TRANS2(trans, _HSW_VIDEO_DIP_SPD_DATA_A + (i) * 4)
Line 6305... Line -...
6305
#define HSW_TVIDEO_DIP_VSC_DATA(trans, i) \
-
 
6306
	(_TRANSCODER2(trans, HSW_VIDEO_DIP_VSC_DATA_A) + (i) * 4)
6378
#define HSW_TVIDEO_DIP_GCP(trans)		_MMIO_TRANS2(trans, _HSW_VIDEO_DIP_GCP_A)
Line 6307... Line 6379...
6307
 
6379
#define HSW_TVIDEO_DIP_VSC_DATA(trans, i)	_MMIO_TRANS2(trans, _HSW_VIDEO_DIP_VSC_DATA_A + (i) * 4)
6308
#define HSW_STEREO_3D_CTL_A	0x70020
6380
 
6309
#define   S3D_ENABLE		(1<<31)
6381
#define _HSW_STEREO_3D_CTL_A		0x70020
6310
#define HSW_STEREO_3D_CTL_B	0x71020
6382
#define   S3D_ENABLE		(1<<31)
6311
 
6383
#define _HSW_STEREO_3D_CTL_B		0x71020
6312
#define HSW_STEREO_3D_CTL(trans) \
6384
 
6313
	_PIPE2(trans, HSW_STEREO_3D_CTL_A)
6385
#define HSW_STEREO_3D_CTL(trans)	_MMIO_PIPE2(trans, _HSW_STEREO_3D_CTL_A)
Line 6314... Line 6386...
6314
 
6386
 
6315
#define _PCH_TRANS_HTOTAL_B          0xe1000
6387
#define _PCH_TRANS_HTOTAL_B          0xe1000
6316
#define _PCH_TRANS_HBLANK_B          0xe1004
6388
#define _PCH_TRANS_HBLANK_B          0xe1004
6317
#define _PCH_TRANS_HSYNC_B           0xe1008
6389
#define _PCH_TRANS_HSYNC_B           0xe1008
6318
#define _PCH_TRANS_VTOTAL_B          0xe100c
6390
#define _PCH_TRANS_VTOTAL_B          0xe100c
6319
#define _PCH_TRANS_VBLANK_B          0xe1010
6391
#define _PCH_TRANS_VBLANK_B          0xe1010
6320
#define _PCH_TRANS_VSYNC_B           0xe1014
6392
#define _PCH_TRANS_VSYNC_B           0xe1014
6321
#define _PCH_TRANS_VSYNCSHIFT_B	 0xe1028
-
 
Line 6322... Line 6393...
6322
 
6393
#define _PCH_TRANS_VSYNCSHIFT_B	 0xe1028
6323
#define PCH_TRANS_HTOTAL(pipe) _PIPE(pipe, _PCH_TRANS_HTOTAL_A, _PCH_TRANS_HTOTAL_B)
6394
 
6324
#define PCH_TRANS_HBLANK(pipe) _PIPE(pipe, _PCH_TRANS_HBLANK_A, _PCH_TRANS_HBLANK_B)
6395
#define PCH_TRANS_HTOTAL(pipe)		_MMIO_PIPE(pipe, _PCH_TRANS_HTOTAL_A, _PCH_TRANS_HTOTAL_B)
6325
#define PCH_TRANS_HSYNC(pipe) _PIPE(pipe, _PCH_TRANS_HSYNC_A, _PCH_TRANS_HSYNC_B)
6396
#define PCH_TRANS_HBLANK(pipe)		_MMIO_PIPE(pipe, _PCH_TRANS_HBLANK_A, _PCH_TRANS_HBLANK_B)
6326
#define PCH_TRANS_VTOTAL(pipe) _PIPE(pipe, _PCH_TRANS_VTOTAL_A, _PCH_TRANS_VTOTAL_B)
6397
#define PCH_TRANS_HSYNC(pipe)		_MMIO_PIPE(pipe, _PCH_TRANS_HSYNC_A, _PCH_TRANS_HSYNC_B)
6327
#define PCH_TRANS_VBLANK(pipe) _PIPE(pipe, _PCH_TRANS_VBLANK_A, _PCH_TRANS_VBLANK_B)
6398
#define PCH_TRANS_VTOTAL(pipe)		_MMIO_PIPE(pipe, _PCH_TRANS_VTOTAL_A, _PCH_TRANS_VTOTAL_B)
6328
#define PCH_TRANS_VSYNC(pipe) _PIPE(pipe, _PCH_TRANS_VSYNC_A, _PCH_TRANS_VSYNC_B)
6399
#define PCH_TRANS_VBLANK(pipe)		_MMIO_PIPE(pipe, _PCH_TRANS_VBLANK_A, _PCH_TRANS_VBLANK_B)
6329
#define PCH_TRANS_VSYNCSHIFT(pipe) _PIPE(pipe, _PCH_TRANS_VSYNCSHIFT_A, \
6400
#define PCH_TRANS_VSYNC(pipe)		_MMIO_PIPE(pipe, _PCH_TRANS_VSYNC_A, _PCH_TRANS_VSYNC_B)
Line 6330... Line 6401...
6330
					 _PCH_TRANS_VSYNCSHIFT_B)
6401
#define PCH_TRANS_VSYNCSHIFT(pipe)	_MMIO_PIPE(pipe, _PCH_TRANS_VSYNCSHIFT_A, _PCH_TRANS_VSYNCSHIFT_B)
6331
 
6402
 
6332
#define _PCH_TRANSB_DATA_M1	0xe1030
6403
#define _PCH_TRANSB_DATA_M1	0xe1030
6333
#define _PCH_TRANSB_DATA_N1	0xe1034
6404
#define _PCH_TRANSB_DATA_N1	0xe1034
6334
#define _PCH_TRANSB_DATA_M2	0xe1038
6405
#define _PCH_TRANSB_DATA_M2	0xe1038
6335
#define _PCH_TRANSB_DATA_N2	0xe103c
6406
#define _PCH_TRANSB_DATA_N2	0xe103c
6336
#define _PCH_TRANSB_LINK_M1	0xe1040
6407
#define _PCH_TRANSB_LINK_M1	0xe1040
6337
#define _PCH_TRANSB_LINK_N1	0xe1044
6408
#define _PCH_TRANSB_LINK_N1	0xe1044
Line 6338... Line 6409...
6338
#define _PCH_TRANSB_LINK_M2	0xe1048
6409
#define _PCH_TRANSB_LINK_M2	0xe1048
6339
#define _PCH_TRANSB_LINK_N2	0xe104c
6410
#define _PCH_TRANSB_LINK_N2	0xe104c
6340
 
6411
 
6341
#define PCH_TRANS_DATA_M1(pipe) _PIPE(pipe, _PCH_TRANSA_DATA_M1, _PCH_TRANSB_DATA_M1)
6412
#define PCH_TRANS_DATA_M1(pipe)	_MMIO_PIPE(pipe, _PCH_TRANSA_DATA_M1, _PCH_TRANSB_DATA_M1)
6342
#define PCH_TRANS_DATA_N1(pipe) _PIPE(pipe, _PCH_TRANSA_DATA_N1, _PCH_TRANSB_DATA_N1)
6413
#define PCH_TRANS_DATA_N1(pipe)	_MMIO_PIPE(pipe, _PCH_TRANSA_DATA_N1, _PCH_TRANSB_DATA_N1)
6343
#define PCH_TRANS_DATA_M2(pipe) _PIPE(pipe, _PCH_TRANSA_DATA_M2, _PCH_TRANSB_DATA_M2)
6414
#define PCH_TRANS_DATA_M2(pipe)	_MMIO_PIPE(pipe, _PCH_TRANSA_DATA_M2, _PCH_TRANSB_DATA_M2)
6344
#define PCH_TRANS_DATA_N2(pipe) _PIPE(pipe, _PCH_TRANSA_DATA_N2, _PCH_TRANSB_DATA_N2)
6415
#define PCH_TRANS_DATA_N2(pipe)	_MMIO_PIPE(pipe, _PCH_TRANSA_DATA_N2, _PCH_TRANSB_DATA_N2)
6345
#define PCH_TRANS_LINK_M1(pipe) _PIPE(pipe, _PCH_TRANSA_LINK_M1, _PCH_TRANSB_LINK_M1)
6416
#define PCH_TRANS_LINK_M1(pipe)	_MMIO_PIPE(pipe, _PCH_TRANSA_LINK_M1, _PCH_TRANSB_LINK_M1)
6346
#define PCH_TRANS_LINK_N1(pipe) _PIPE(pipe, _PCH_TRANSA_LINK_N1, _PCH_TRANSB_LINK_N1)
6417
#define PCH_TRANS_LINK_N1(pipe)	_MMIO_PIPE(pipe, _PCH_TRANSA_LINK_N1, _PCH_TRANSB_LINK_N1)
Line 6369... Line 6440...
6369
#define  TRANS_6BPC             (2<<5)
6440
#define  TRANS_6BPC             (2<<5)
6370
#define  TRANS_12BPC            (3<<5)
6441
#define  TRANS_12BPC            (3<<5)
Line 6371... Line 6442...
6371
 
6442
 
6372
#define _TRANSA_CHICKEN1	 0xf0060
6443
#define _TRANSA_CHICKEN1	 0xf0060
6373
#define _TRANSB_CHICKEN1	 0xf1060
6444
#define _TRANSB_CHICKEN1	 0xf1060
6374
#define TRANS_CHICKEN1(pipe) _PIPE(pipe, _TRANSA_CHICKEN1, _TRANSB_CHICKEN1)
6445
#define TRANS_CHICKEN1(pipe)	_MMIO_PIPE(pipe, _TRANSA_CHICKEN1, _TRANSB_CHICKEN1)
6375
#define  TRANS_CHICKEN1_HDMIUNIT_GC_DISABLE	(1<<10)
6446
#define  TRANS_CHICKEN1_HDMIUNIT_GC_DISABLE	(1<<10)
6376
#define  TRANS_CHICKEN1_DP0UNIT_GC_DISABLE	(1<<4)
6447
#define  TRANS_CHICKEN1_DP0UNIT_GC_DISABLE	(1<<4)
6377
#define _TRANSA_CHICKEN2	 0xf0064
6448
#define _TRANSA_CHICKEN2	 0xf0064
6378
#define _TRANSB_CHICKEN2	 0xf1064
6449
#define _TRANSB_CHICKEN2	 0xf1064
6379
#define TRANS_CHICKEN2(pipe) _PIPE(pipe, _TRANSA_CHICKEN2, _TRANSB_CHICKEN2)
6450
#define TRANS_CHICKEN2(pipe)	_MMIO_PIPE(pipe, _TRANSA_CHICKEN2, _TRANSB_CHICKEN2)
6380
#define  TRANS_CHICKEN2_TIMING_OVERRIDE			(1<<31)
6451
#define  TRANS_CHICKEN2_TIMING_OVERRIDE			(1<<31)
6381
#define  TRANS_CHICKEN2_FDI_POLARITY_REVERSED		(1<<29)
6452
#define  TRANS_CHICKEN2_FDI_POLARITY_REVERSED		(1<<29)
6382
#define  TRANS_CHICKEN2_FRAME_START_DELAY_MASK		(3<<27)
6453
#define  TRANS_CHICKEN2_FRAME_START_DELAY_MASK		(3<<27)
6383
#define  TRANS_CHICKEN2_DISABLE_DEEP_COLOR_COUNTER	(1<<26)
6454
#define  TRANS_CHICKEN2_DISABLE_DEEP_COLOR_COUNTER	(1<<26)
Line 6384... Line 6455...
6384
#define  TRANS_CHICKEN2_DISABLE_DEEP_COLOR_MODESWITCH	(1<<25)
6455
#define  TRANS_CHICKEN2_DISABLE_DEEP_COLOR_MODESWITCH	(1<<25)
6385
 
6456
 
6386
#define SOUTH_CHICKEN1		0xc2000
6457
#define SOUTH_CHICKEN1		_MMIO(0xc2000)
6387
#define  FDIA_PHASE_SYNC_SHIFT_OVR	19
6458
#define  FDIA_PHASE_SYNC_SHIFT_OVR	19
6388
#define  FDIA_PHASE_SYNC_SHIFT_EN	18
6459
#define  FDIA_PHASE_SYNC_SHIFT_EN	18
6389
#define  FDI_PHASE_SYNC_OVR(pipe) (1<<(FDIA_PHASE_SYNC_SHIFT_OVR - ((pipe) * 2)))
6460
#define  FDI_PHASE_SYNC_OVR(pipe) (1<<(FDIA_PHASE_SYNC_SHIFT_OVR - ((pipe) * 2)))
6390
#define  FDI_PHASE_SYNC_EN(pipe) (1<<(FDIA_PHASE_SYNC_SHIFT_EN - ((pipe) * 2)))
6461
#define  FDI_PHASE_SYNC_EN(pipe) (1<<(FDIA_PHASE_SYNC_SHIFT_EN - ((pipe) * 2)))
6391
#define  FDI_BC_BIFURCATION_SELECT	(1 << 12)
6462
#define  FDI_BC_BIFURCATION_SELECT	(1 << 12)
6392
#define  SPT_PWM_GRANULARITY		(1<<0)
6463
#define  SPT_PWM_GRANULARITY		(1<<0)
6393
#define SOUTH_CHICKEN2		0xc2004
6464
#define SOUTH_CHICKEN2		_MMIO(0xc2004)
6394
#define  FDI_MPHY_IOSFSB_RESET_STATUS	(1<<13)
6465
#define  FDI_MPHY_IOSFSB_RESET_STATUS	(1<<13)
6395
#define  FDI_MPHY_IOSFSB_RESET_CTL	(1<<12)
6466
#define  FDI_MPHY_IOSFSB_RESET_CTL	(1<<12)
Line 6396... Line 6467...
6396
#define  LPT_PWM_GRANULARITY		(1<<5)
6467
#define  LPT_PWM_GRANULARITY		(1<<5)
6397
#define  DPLS_EDP_PPS_FIX_DIS		(1<<0)
6468
#define  DPLS_EDP_PPS_FIX_DIS		(1<<0)
6398
 
6469
 
6399
#define _FDI_RXA_CHICKEN         0xc200c
6470
#define _FDI_RXA_CHICKEN         0xc200c
6400
#define _FDI_RXB_CHICKEN         0xc2010
6471
#define _FDI_RXB_CHICKEN         0xc2010
Line 6401... Line 6472...
6401
#define  FDI_RX_PHASE_SYNC_POINTER_OVR	(1<<1)
6472
#define  FDI_RX_PHASE_SYNC_POINTER_OVR	(1<<1)
6402
#define  FDI_RX_PHASE_SYNC_POINTER_EN	(1<<0)
6473
#define  FDI_RX_PHASE_SYNC_POINTER_EN	(1<<0)
6403
#define FDI_RX_CHICKEN(pipe) _PIPE(pipe, _FDI_RXA_CHICKEN, _FDI_RXB_CHICKEN)
6474
#define FDI_RX_CHICKEN(pipe)	_MMIO_PIPE(pipe, _FDI_RXA_CHICKEN, _FDI_RXB_CHICKEN)
6404
 
6475
 
6405
#define SOUTH_DSPCLK_GATE_D	0xc2020
6476
#define SOUTH_DSPCLK_GATE_D	_MMIO(0xc2020)
Line 6406... Line 6477...
6406
#define  PCH_DPLUNIT_CLOCK_GATE_DISABLE (1<<30)
6477
#define  PCH_DPLUNIT_CLOCK_GATE_DISABLE (1<<30)
6407
#define  PCH_DPLSUNIT_CLOCK_GATE_DISABLE (1<<29)
6478
#define  PCH_DPLSUNIT_CLOCK_GATE_DISABLE (1<<29)
6408
#define  PCH_CPUNIT_CLOCK_GATE_DISABLE (1<<14)
6479
#define  PCH_CPUNIT_CLOCK_GATE_DISABLE (1<<14)
6409
#define  PCH_LP_PARTITION_LEVEL_DISABLE  (1<<12)
6480
#define  PCH_LP_PARTITION_LEVEL_DISABLE  (1<<12)
6410
 
6481
 
6411
/* CPU: FDI_TX */
6482
/* CPU: FDI_TX */
6412
#define _FDI_TXA_CTL             0x60100
6483
#define _FDI_TXA_CTL             0x60100
6413
#define _FDI_TXB_CTL             0x61100
6484
#define _FDI_TXB_CTL             0x61100
6414
#define FDI_TX_CTL(pipe) _PIPE(pipe, _FDI_TXA_CTL, _FDI_TXB_CTL)
6485
#define FDI_TX_CTL(pipe)	_MMIO_PIPE(pipe, _FDI_TXA_CTL, _FDI_TXB_CTL)
Line 6459... Line 6530...
6459
#define  FDI_SCRAMBLING_DISABLE         (1<<7)
6530
#define  FDI_SCRAMBLING_DISABLE         (1<<7)
Line 6460... Line 6531...
6460
 
6531
 
6461
/* FDI_RX, FDI_X is hard-wired to Transcoder_X */
6532
/* FDI_RX, FDI_X is hard-wired to Transcoder_X */
6462
#define _FDI_RXA_CTL             0xf000c
6533
#define _FDI_RXA_CTL             0xf000c
6463
#define _FDI_RXB_CTL             0xf100c
6534
#define _FDI_RXB_CTL             0xf100c
6464
#define FDI_RX_CTL(pipe) _PIPE(pipe, _FDI_RXA_CTL, _FDI_RXB_CTL)
6535
#define FDI_RX_CTL(pipe)	_MMIO_PIPE(pipe, _FDI_RXA_CTL, _FDI_RXB_CTL)
6465
#define  FDI_RX_ENABLE          (1<<31)
6536
#define  FDI_RX_ENABLE          (1<<31)
6466
/* train, dp width same as FDI_TX */
6537
/* train, dp width same as FDI_TX */
6467
#define  FDI_FS_ERRC_ENABLE		(1<<27)
6538
#define  FDI_FS_ERRC_ENABLE		(1<<27)
6468
#define  FDI_FE_ERRC_ENABLE		(1<<26)
6539
#define  FDI_FE_ERRC_ENABLE		(1<<26)
Line 6495... Line 6566...
6495
#define  FDI_RX_PWRDN_LANE0_MASK	(3<<24)
6566
#define  FDI_RX_PWRDN_LANE0_MASK	(3<<24)
6496
#define  FDI_RX_PWRDN_LANE0_VAL(x)	((x)<<24)
6567
#define  FDI_RX_PWRDN_LANE0_VAL(x)	((x)<<24)
6497
#define  FDI_RX_TP1_TO_TP2_48		(2<<20)
6568
#define  FDI_RX_TP1_TO_TP2_48		(2<<20)
6498
#define  FDI_RX_TP1_TO_TP2_64		(3<<20)
6569
#define  FDI_RX_TP1_TO_TP2_64		(3<<20)
6499
#define  FDI_RX_FDI_DELAY_90		(0x90<<0)
6570
#define  FDI_RX_FDI_DELAY_90		(0x90<<0)
6500
#define FDI_RX_MISC(pipe) _PIPE(pipe, _FDI_RXA_MISC, _FDI_RXB_MISC)
6571
#define FDI_RX_MISC(pipe)	_MMIO_PIPE(pipe, _FDI_RXA_MISC, _FDI_RXB_MISC)
Line 6501... Line 6572...
6501
 
6572
 
6502
#define _FDI_RXA_TUSIZE1         0xf0030
6573
#define _FDI_RXA_TUSIZE1         0xf0030
6503
#define _FDI_RXA_TUSIZE2         0xf0038
6574
#define _FDI_RXA_TUSIZE2         0xf0038
6504
#define _FDI_RXB_TUSIZE1         0xf1030
6575
#define _FDI_RXB_TUSIZE1         0xf1030
6505
#define _FDI_RXB_TUSIZE2         0xf1038
6576
#define _FDI_RXB_TUSIZE2         0xf1038
6506
#define FDI_RX_TUSIZE1(pipe) _PIPE(pipe, _FDI_RXA_TUSIZE1, _FDI_RXB_TUSIZE1)
6577
#define FDI_RX_TUSIZE1(pipe)	_MMIO_PIPE(pipe, _FDI_RXA_TUSIZE1, _FDI_RXB_TUSIZE1)
Line 6507... Line 6578...
6507
#define FDI_RX_TUSIZE2(pipe) _PIPE(pipe, _FDI_RXA_TUSIZE2, _FDI_RXB_TUSIZE2)
6578
#define FDI_RX_TUSIZE2(pipe)	_MMIO_PIPE(pipe, _FDI_RXA_TUSIZE2, _FDI_RXB_TUSIZE2)
6508
 
6579
 
6509
/* FDI_RX interrupt register format */
6580
/* FDI_RX interrupt register format */
6510
#define FDI_RX_INTER_LANE_ALIGN         (1<<10)
6581
#define FDI_RX_INTER_LANE_ALIGN         (1<<10)
Line 6521... Line 6592...
6521
 
6592
 
6522
#define _FDI_RXA_IIR             0xf0014
6593
#define _FDI_RXA_IIR             0xf0014
6523
#define _FDI_RXA_IMR             0xf0018
6594
#define _FDI_RXA_IMR             0xf0018
6524
#define _FDI_RXB_IIR             0xf1014
6595
#define _FDI_RXB_IIR             0xf1014
6525
#define _FDI_RXB_IMR             0xf1018
6596
#define _FDI_RXB_IMR             0xf1018
6526
#define FDI_RX_IIR(pipe) _PIPE(pipe, _FDI_RXA_IIR, _FDI_RXB_IIR)
6597
#define FDI_RX_IIR(pipe)	_MMIO_PIPE(pipe, _FDI_RXA_IIR, _FDI_RXB_IIR)
Line 6527... Line 6598...
6527
#define FDI_RX_IMR(pipe) _PIPE(pipe, _FDI_RXA_IMR, _FDI_RXB_IMR)
6598
#define FDI_RX_IMR(pipe)	_MMIO_PIPE(pipe, _FDI_RXA_IMR, _FDI_RXB_IMR)
6528
 
6599
 
Line 6529... Line 6600...
6529
#define FDI_PLL_CTL_1           0xfe000
6600
#define FDI_PLL_CTL_1           _MMIO(0xfe000)
6530
#define FDI_PLL_CTL_2           0xfe004
6601
#define FDI_PLL_CTL_2           _MMIO(0xfe004)
Line 6531... Line 6602...
6531
 
6602
 
6532
#define PCH_LVDS	0xe1180
6603
#define PCH_LVDS	_MMIO(0xe1180)
6533
#define  LVDS_DETECTED	(1 << 1)
6604
#define  LVDS_DETECTED	(1 << 1)
6534
 
6605
 
6535
/* vlv has 2 sets of panel control regs. */
6606
/* vlv has 2 sets of panel control regs. */
6536
#define PIPEA_PP_STATUS         (VLV_DISPLAY_BASE + 0x61200)
6607
#define _PIPEA_PP_STATUS         (VLV_DISPLAY_BASE + 0x61200)
6537
#define PIPEA_PP_CONTROL        (VLV_DISPLAY_BASE + 0x61204)
6608
#define _PIPEA_PP_CONTROL        (VLV_DISPLAY_BASE + 0x61204)
Line 6538... Line 6609...
6538
#define PIPEA_PP_ON_DELAYS      (VLV_DISPLAY_BASE + 0x61208)
6609
#define _PIPEA_PP_ON_DELAYS      (VLV_DISPLAY_BASE + 0x61208)
6539
#define  PANEL_PORT_SELECT_VLV(port)	((port) << 30)
6610
#define  PANEL_PORT_SELECT_VLV(port)	((port) << 30)
6540
#define PIPEA_PP_OFF_DELAYS     (VLV_DISPLAY_BASE + 0x6120c)
6611
#define _PIPEA_PP_OFF_DELAYS     (VLV_DISPLAY_BASE + 0x6120c)
6541
#define PIPEA_PP_DIVISOR        (VLV_DISPLAY_BASE + 0x61210)
6612
#define _PIPEA_PP_DIVISOR        (VLV_DISPLAY_BASE + 0x61210)
6542
 
6613
 
6543
#define PIPEB_PP_STATUS         (VLV_DISPLAY_BASE + 0x61300)
6614
#define _PIPEB_PP_STATUS         (VLV_DISPLAY_BASE + 0x61300)
6544
#define PIPEB_PP_CONTROL        (VLV_DISPLAY_BASE + 0x61304)
6615
#define _PIPEB_PP_CONTROL        (VLV_DISPLAY_BASE + 0x61304)
6545
#define PIPEB_PP_ON_DELAYS      (VLV_DISPLAY_BASE + 0x61308)
6616
#define _PIPEB_PP_ON_DELAYS      (VLV_DISPLAY_BASE + 0x61308)
6546
#define PIPEB_PP_OFF_DELAYS     (VLV_DISPLAY_BASE + 0x6130c)
-
 
6547
#define PIPEB_PP_DIVISOR        (VLV_DISPLAY_BASE + 0x61310)
6617
#define _PIPEB_PP_OFF_DELAYS     (VLV_DISPLAY_BASE + 0x6130c)
6548
 
-
 
6549
#define VLV_PIPE_PP_STATUS(pipe) _PIPE(pipe, PIPEA_PP_STATUS, PIPEB_PP_STATUS)
6618
#define _PIPEB_PP_DIVISOR        (VLV_DISPLAY_BASE + 0x61310)
6550
#define VLV_PIPE_PP_CONTROL(pipe) _PIPE(pipe, PIPEA_PP_CONTROL, PIPEB_PP_CONTROL)
-
 
6551
#define VLV_PIPE_PP_ON_DELAYS(pipe) \
6619
 
Line 6552... Line 6620...
6552
		_PIPE(pipe, PIPEA_PP_ON_DELAYS, PIPEB_PP_ON_DELAYS)
6620
#define VLV_PIPE_PP_STATUS(pipe)	_MMIO_PIPE(pipe, _PIPEA_PP_STATUS, _PIPEB_PP_STATUS)
6553
#define VLV_PIPE_PP_OFF_DELAYS(pipe) \
6621
#define VLV_PIPE_PP_CONTROL(pipe)	_MMIO_PIPE(pipe, _PIPEA_PP_CONTROL, _PIPEB_PP_CONTROL)
6554
		_PIPE(pipe, PIPEA_PP_OFF_DELAYS, PIPEB_PP_OFF_DELAYS)
6622
#define VLV_PIPE_PP_ON_DELAYS(pipe)	_MMIO_PIPE(pipe, _PIPEA_PP_ON_DELAYS, _PIPEB_PP_ON_DELAYS)
6555
#define VLV_PIPE_PP_DIVISOR(pipe) \
6623
#define VLV_PIPE_PP_OFF_DELAYS(pipe)	_MMIO_PIPE(pipe, _PIPEA_PP_OFF_DELAYS, _PIPEB_PP_OFF_DELAYS)
6556
		_PIPE(pipe, PIPEA_PP_DIVISOR, PIPEB_PP_DIVISOR)
6624
#define VLV_PIPE_PP_DIVISOR(pipe)	_MMIO_PIPE(pipe, _PIPEA_PP_DIVISOR, _PIPEB_PP_DIVISOR)
6557
 
6625
 
6558
#define PCH_PP_STATUS		0xc7200
6626
#define _PCH_PP_STATUS		0xc7200
6559
#define PCH_PP_CONTROL		0xc7204
6627
#define _PCH_PP_CONTROL		0xc7204
6560
#define  PANEL_UNLOCK_REGS	(0xabcd << 16)
6628
#define  PANEL_UNLOCK_REGS	(0xabcd << 16)
6561
#define  PANEL_UNLOCK_MASK	(0xffff << 16)
6629
#define  PANEL_UNLOCK_MASK	(0xffff << 16)
6562
#define  BXT_POWER_CYCLE_DELAY_MASK	(0x1f0)
6630
#define  BXT_POWER_CYCLE_DELAY_MASK	(0x1f0)
6563
#define  BXT_POWER_CYCLE_DELAY_SHIFT	4
6631
#define  BXT_POWER_CYCLE_DELAY_SHIFT	4
6564
#define  EDP_FORCE_VDD		(1 << 3)
6632
#define  EDP_FORCE_VDD		(1 << 3)
6565
#define  EDP_BLC_ENABLE		(1 << 2)
6633
#define  EDP_BLC_ENABLE		(1 << 2)
6566
#define  PANEL_POWER_RESET	(1 << 1)
6634
#define  PANEL_POWER_RESET	(1 << 1)
6567
#define  PANEL_POWER_OFF	(0 << 0)
6635
#define  PANEL_POWER_OFF	(0 << 0)
6568
#define  PANEL_POWER_ON		(1 << 0)
6636
#define  PANEL_POWER_ON		(1 << 0)
6569
#define PCH_PP_ON_DELAYS	0xc7208
6637
#define _PCH_PP_ON_DELAYS	0xc7208
6570
#define  PANEL_PORT_SELECT_MASK	(3 << 30)
6638
#define  PANEL_PORT_SELECT_MASK	(3 << 30)
6571
#define  PANEL_PORT_SELECT_LVDS	(0 << 30)
6639
#define  PANEL_PORT_SELECT_LVDS	(0 << 30)
6572
#define  PANEL_PORT_SELECT_DPA	(1 << 30)
6640
#define  PANEL_PORT_SELECT_DPA	(1 << 30)
Line 6573... Line 6641...
6573
#define  PANEL_PORT_SELECT_DPC	(2 << 30)
6641
#define  PANEL_PORT_SELECT_DPC	(2 << 30)
6574
#define  PANEL_PORT_SELECT_DPD	(3 << 30)
6642
#define  PANEL_PORT_SELECT_DPD	(3 << 30)
6575
#define  PANEL_POWER_UP_DELAY_MASK	(0x1fff0000)
6643
#define  PANEL_POWER_UP_DELAY_MASK	(0x1fff0000)
6576
#define  PANEL_POWER_UP_DELAY_SHIFT	16
6644
#define  PANEL_POWER_UP_DELAY_SHIFT	16
6577
#define  PANEL_LIGHT_ON_DELAY_MASK	(0x1fff)
6645
#define  PANEL_LIGHT_ON_DELAY_MASK	(0x1fff)
Line 6578... Line 6646...
6578
#define  PANEL_LIGHT_ON_DELAY_SHIFT	0
6646
#define  PANEL_LIGHT_ON_DELAY_SHIFT	0
6579
 
6647
 
6580
#define PCH_PP_OFF_DELAYS	0xc720c
6648
#define _PCH_PP_OFF_DELAYS		0xc720c
6581
#define  PANEL_POWER_DOWN_DELAY_MASK	(0x1fff0000)
6649
#define  PANEL_POWER_DOWN_DELAY_MASK	(0x1fff0000)
6582
#define  PANEL_POWER_DOWN_DELAY_SHIFT	16
6650
#define  PANEL_POWER_DOWN_DELAY_SHIFT	16
Line -... Line 6651...
-
 
6651
#define  PANEL_LIGHT_OFF_DELAY_MASK	(0x1fff)
-
 
6652
#define  PANEL_LIGHT_OFF_DELAY_SHIFT	0
-
 
6653
 
-
 
6654
#define _PCH_PP_DIVISOR			0xc7210
-
 
6655
#define  PP_REFERENCE_DIVIDER_MASK	(0xffffff00)
-
 
6656
#define  PP_REFERENCE_DIVIDER_SHIFT	8
6583
#define  PANEL_LIGHT_OFF_DELAY_MASK	(0x1fff)
6657
#define  PANEL_POWER_CYCLE_DELAY_MASK	(0x1f)
6584
#define  PANEL_LIGHT_OFF_DELAY_SHIFT	0
6658
#define  PANEL_POWER_CYCLE_DELAY_SHIFT	0
6585
 
6659
 
6586
#define PCH_PP_DIVISOR		0xc7210
6660
#define PCH_PP_STATUS			_MMIO(_PCH_PP_STATUS)
6587
#define  PP_REFERENCE_DIVIDER_MASK	(0xffffff00)
6661
#define PCH_PP_CONTROL			_MMIO(_PCH_PP_CONTROL)
Line 6588... Line 6662...
6588
#define  PP_REFERENCE_DIVIDER_SHIFT	8
6662
#define PCH_PP_ON_DELAYS		_MMIO(_PCH_PP_ON_DELAYS)
6589
#define  PANEL_POWER_CYCLE_DELAY_MASK	(0x1f)
6663
#define PCH_PP_OFF_DELAYS		_MMIO(_PCH_PP_OFF_DELAYS)
6590
#define  PANEL_POWER_CYCLE_DELAY_SHIFT	0
6664
#define PCH_PP_DIVISOR			_MMIO(_PCH_PP_DIVISOR)
6591
 
6665
 
6592
/* BXT PPS changes - 2nd set of PPS registers */
6666
/* BXT PPS changes - 2nd set of PPS registers */
6593
#define _BXT_PP_STATUS2 	0xc7300
6667
#define _BXT_PP_STATUS2 	0xc7300
-
 
6668
#define _BXT_PP_CONTROL2 	0xc7304
6594
#define _BXT_PP_CONTROL2 	0xc7304
6669
#define _BXT_PP_ON_DELAYS2	0xc7308
6595
#define _BXT_PP_ON_DELAYS2	0xc7308
6670
#define _BXT_PP_OFF_DELAYS2	0xc730c
6596
#define _BXT_PP_OFF_DELAYS2	0xc730c
6671
 
6597
 
6672
#define BXT_PP_STATUS(n)	_MMIO_PIPE(n, _PCH_PP_STATUS, _BXT_PP_STATUS2)
6598
#define BXT_PP_STATUS(n)	_PIPE(n, PCH_PP_STATUS, _BXT_PP_STATUS2)
6673
#define BXT_PP_CONTROL(n)	_MMIO_PIPE(n, _PCH_PP_CONTROL, _BXT_PP_CONTROL2)
6599
#define BXT_PP_CONTROL(n)	_PIPE(n, PCH_PP_CONTROL, _BXT_PP_CONTROL2)
6674
#define BXT_PP_ON_DELAYS(n)	_MMIO_PIPE(n, _PCH_PP_ON_DELAYS, _BXT_PP_ON_DELAYS2)
6600
#define BXT_PP_ON_DELAYS(n)	_PIPE(n, PCH_PP_ON_DELAYS, _BXT_PP_ON_DELAYS2)
6675
#define BXT_PP_OFF_DELAYS(n)	_MMIO_PIPE(n, _PCH_PP_OFF_DELAYS, _BXT_PP_OFF_DELAYS2)
6601
#define BXT_PP_OFF_DELAYS(n)	_PIPE(n, PCH_PP_OFF_DELAYS, _BXT_PP_OFF_DELAYS2)
6676
 
-
 
6677
#define _PCH_DP_B		0xe4100
6602
 
6678
#define PCH_DP_B		_MMIO(_PCH_DP_B)
6603
#define PCH_DP_B		0xe4100
6679
#define _PCH_DPB_AUX_CH_CTL	0xe4110
6604
#define PCH_DPB_AUX_CH_CTL	0xe4110
6680
#define _PCH_DPB_AUX_CH_DATA1	0xe4114
6605
#define PCH_DPB_AUX_CH_DATA1	0xe4114
6681
#define _PCH_DPB_AUX_CH_DATA2	0xe4118
6606
#define PCH_DPB_AUX_CH_DATA2	0xe4118
6682
#define _PCH_DPB_AUX_CH_DATA3	0xe411c
6607
#define PCH_DPB_AUX_CH_DATA3	0xe411c
6683
#define _PCH_DPB_AUX_CH_DATA4	0xe4120
6608
#define PCH_DPB_AUX_CH_DATA4	0xe4120
6684
#define _PCH_DPB_AUX_CH_DATA5	0xe4124
6609
#define PCH_DPB_AUX_CH_DATA5	0xe4124
6685
 
-
 
6686
#define _PCH_DP_C		0xe4200
6610
 
6687
#define PCH_DP_C		_MMIO(_PCH_DP_C)
6611
#define PCH_DP_C		0xe4200
6688
#define _PCH_DPC_AUX_CH_CTL	0xe4210
6612
#define PCH_DPC_AUX_CH_CTL	0xe4210
6689
#define _PCH_DPC_AUX_CH_DATA1	0xe4214
6613
#define PCH_DPC_AUX_CH_DATA1	0xe4214
6690
#define _PCH_DPC_AUX_CH_DATA2	0xe4218
6614
#define PCH_DPC_AUX_CH_DATA2	0xe4218
6691
#define _PCH_DPC_AUX_CH_DATA3	0xe421c
6615
#define PCH_DPC_AUX_CH_DATA3	0xe421c
6692
#define _PCH_DPC_AUX_CH_DATA4	0xe4220
-
 
6693
#define _PCH_DPC_AUX_CH_DATA5	0xe4224
-
 
6694
 
-
 
6695
#define _PCH_DP_D		0xe4300
Line 6616... Line 6696...
6616
#define PCH_DPC_AUX_CH_DATA4	0xe4220
6696
#define PCH_DP_D		_MMIO(_PCH_DP_D)
6617
#define PCH_DPC_AUX_CH_DATA5	0xe4224
6697
#define _PCH_DPD_AUX_CH_CTL	0xe4310
6618
 
6698
#define _PCH_DPD_AUX_CH_DATA1	0xe4314
6619
#define PCH_DP_D		0xe4300
6699
#define _PCH_DPD_AUX_CH_DATA2	0xe4318
Line 6633... Line 6713...
6633
#define  PORT_TO_PIPE(val)	(((val) & (1<<30)) >> 30)
6713
#define  PORT_TO_PIPE(val)	(((val) & (1<<30)) >> 30)
6634
#define  PORT_TO_PIPE_CPT(val)	(((val) & PORT_TRANS_SEL_MASK) >> 29)
6714
#define  PORT_TO_PIPE_CPT(val)	(((val) & PORT_TRANS_SEL_MASK) >> 29)
6635
#define  SDVO_PORT_TO_PIPE_CHV(val)	(((val) & (3<<24)) >> 24)
6715
#define  SDVO_PORT_TO_PIPE_CHV(val)	(((val) & (3<<24)) >> 24)
6636
#define  DP_PORT_TO_PIPE_CHV(val)	(((val) & (3<<16)) >> 16)
6716
#define  DP_PORT_TO_PIPE_CHV(val)	(((val) & (3<<16)) >> 16)
Line 6637... Line 6717...
6637
 
6717
 
6638
#define TRANS_DP_CTL_A		0xe0300
6718
#define _TRANS_DP_CTL_A		0xe0300
6639
#define TRANS_DP_CTL_B		0xe1300
6719
#define _TRANS_DP_CTL_B		0xe1300
6640
#define TRANS_DP_CTL_C		0xe2300
6720
#define _TRANS_DP_CTL_C		0xe2300
6641
#define TRANS_DP_CTL(pipe)	_PIPE(pipe, TRANS_DP_CTL_A, TRANS_DP_CTL_B)
6721
#define TRANS_DP_CTL(pipe)	_MMIO_PIPE(pipe, _TRANS_DP_CTL_A, _TRANS_DP_CTL_B)
6642
#define  TRANS_DP_OUTPUT_ENABLE	(1<<31)
6722
#define  TRANS_DP_OUTPUT_ENABLE	(1<<31)
6643
#define  TRANS_DP_PORT_SEL_B	(0<<29)
6723
#define  TRANS_DP_PORT_SEL_B	(0<<29)
6644
#define  TRANS_DP_PORT_SEL_C	(1<<29)
6724
#define  TRANS_DP_PORT_SEL_C	(1<<29)
6645
#define  TRANS_DP_PORT_SEL_D	(2<<29)
6725
#define  TRANS_DP_PORT_SEL_D	(2<<29)
Line 6689... Line 6769...
6689
#define EDP_LINK_TRAIN_1000MV_3_5DB_IVB		(0x22 <<22)
6769
#define EDP_LINK_TRAIN_1000MV_3_5DB_IVB		(0x22 <<22)
6690
#define EDP_LINK_TRAIN_1000MV_6DB_IVB		(0x23 <<22)
6770
#define EDP_LINK_TRAIN_1000MV_6DB_IVB		(0x23 <<22)
Line 6691... Line 6771...
6691
 
6771
 
Line 6692... Line 6772...
6692
#define  EDP_LINK_TRAIN_VOL_EMP_MASK_IVB	(0x3f<<22)
6772
#define  EDP_LINK_TRAIN_VOL_EMP_MASK_IVB	(0x3f<<22)
Line 6693... Line 6773...
6693
 
6773
 
6694
#define  VLV_PMWGICZ				0x1300a4
6774
#define  VLV_PMWGICZ				_MMIO(0x1300a4)
6695
 
6775
 
6696
#define  FORCEWAKE				0xA18C
6776
#define  FORCEWAKE				_MMIO(0xA18C)
6697
#define  FORCEWAKE_VLV				0x1300b0
6777
#define  FORCEWAKE_VLV				_MMIO(0x1300b0)
6698
#define  FORCEWAKE_ACK_VLV			0x1300b4
6778
#define  FORCEWAKE_ACK_VLV			_MMIO(0x1300b4)
6699
#define  FORCEWAKE_MEDIA_VLV			0x1300b8
6779
#define  FORCEWAKE_MEDIA_VLV			_MMIO(0x1300b8)
6700
#define  FORCEWAKE_ACK_MEDIA_VLV		0x1300bc
6780
#define  FORCEWAKE_ACK_MEDIA_VLV		_MMIO(0x1300bc)
6701
#define  FORCEWAKE_ACK_HSW			0x130044
6781
#define  FORCEWAKE_ACK_HSW			_MMIO(0x130044)
6702
#define  FORCEWAKE_ACK				0x130090
6782
#define  FORCEWAKE_ACK				_MMIO(0x130090)
6703
#define  VLV_GTLC_WAKE_CTRL			0x130090
6783
#define  VLV_GTLC_WAKE_CTRL			_MMIO(0x130090)
Line 6704... Line 6784...
6704
#define   VLV_GTLC_RENDER_CTX_EXISTS		(1 << 25)
6784
#define   VLV_GTLC_RENDER_CTX_EXISTS		(1 << 25)
6705
#define   VLV_GTLC_MEDIA_CTX_EXISTS		(1 << 24)
6785
#define   VLV_GTLC_MEDIA_CTX_EXISTS		(1 << 24)
6706
#define   VLV_GTLC_ALLOWWAKEREQ			(1 << 0)
6786
#define   VLV_GTLC_ALLOWWAKEREQ			(1 << 0)
6707
 
6787
 
6708
#define  VLV_GTLC_PW_STATUS			0x130094
6788
#define  VLV_GTLC_PW_STATUS			_MMIO(0x130094)
6709
#define   VLV_GTLC_ALLOWWAKEACK			(1 << 0)
6789
#define   VLV_GTLC_ALLOWWAKEACK			(1 << 0)
6710
#define   VLV_GTLC_ALLOWWAKEERR			(1 << 1)
6790
#define   VLV_GTLC_ALLOWWAKEERR			(1 << 1)
6711
#define   VLV_GTLC_PW_MEDIA_STATUS_MASK		(1 << 5)
6791
#define   VLV_GTLC_PW_MEDIA_STATUS_MASK		(1 << 5)
6712
#define   VLV_GTLC_PW_RENDER_STATUS_MASK	(1 << 7)
6792
#define   VLV_GTLC_PW_RENDER_STATUS_MASK	(1 << 7)
6713
#define  FORCEWAKE_MT				0xa188 /* multi-threaded */
6793
#define  FORCEWAKE_MT				_MMIO(0xa188) /* multi-threaded */
6714
#define  FORCEWAKE_MEDIA_GEN9			0xa270
6794
#define  FORCEWAKE_MEDIA_GEN9			_MMIO(0xa270)
6715
#define  FORCEWAKE_RENDER_GEN9			0xa278
6795
#define  FORCEWAKE_RENDER_GEN9			_MMIO(0xa278)
6716
#define  FORCEWAKE_BLITTER_GEN9			0xa188
6796
#define  FORCEWAKE_BLITTER_GEN9			_MMIO(0xa188)
6717
#define  FORCEWAKE_ACK_MEDIA_GEN9		0x0D88
6797
#define  FORCEWAKE_ACK_MEDIA_GEN9		_MMIO(0x0D88)
6718
#define  FORCEWAKE_ACK_RENDER_GEN9		0x0D84
6798
#define  FORCEWAKE_ACK_RENDER_GEN9		_MMIO(0x0D84)
6719
#define  FORCEWAKE_ACK_BLITTER_GEN9		0x130044
6799
#define  FORCEWAKE_ACK_BLITTER_GEN9		_MMIO(0x130044)
6720
#define   FORCEWAKE_KERNEL			0x1
6800
#define   FORCEWAKE_KERNEL			0x1
6721
#define   FORCEWAKE_USER			0x2
6801
#define   FORCEWAKE_USER			0x2
Line 6722... Line 6802...
6722
#define  FORCEWAKE_MT_ACK			0x130040
6802
#define  FORCEWAKE_MT_ACK			_MMIO(0x130040)
6723
#define  ECOBUS					0xa180
6803
#define  ECOBUS					_MMIO(0xa180)
6724
#define    FORCEWAKE_MT_ENABLE			(1<<5)
6804
#define    FORCEWAKE_MT_ENABLE			(1<<5)
6725
#define  VLV_SPAREG2H				0xA194
6805
#define  VLV_SPAREG2H				_MMIO(0xA194)
6726
 
6806
 
6727
#define  GTFIFODBG				0x120000
6807
#define  GTFIFODBG				_MMIO(0x120000)
6728
#define    GT_FIFO_SBDROPERR			(1<<6)
6808
#define    GT_FIFO_SBDROPERR			(1<<6)
6729
#define    GT_FIFO_BLOBDROPERR			(1<<5)
6809
#define    GT_FIFO_BLOBDROPERR			(1<<5)
Line 6730... Line 6810...
6730
#define    GT_FIFO_SB_READ_ABORTERR		(1<<4)
6810
#define    GT_FIFO_SB_READ_ABORTERR		(1<<4)
6731
#define    GT_FIFO_DROPERR			(1<<3)
6811
#define    GT_FIFO_DROPERR			(1<<3)
6732
#define    GT_FIFO_OVFERR			(1<<2)
6812
#define    GT_FIFO_OVFERR			(1<<2)
6733
#define    GT_FIFO_IAWRERR			(1<<1)
6813
#define    GT_FIFO_IAWRERR			(1<<1)
6734
#define    GT_FIFO_IARDERR			(1<<0)
6814
#define    GT_FIFO_IARDERR			(1<<0)
Line 6735... Line 6815...
6735
 
6815
 
6736
#define  GTFIFOCTL				0x120008
6816
#define  GTFIFOCTL				_MMIO(0x120008)
6737
#define    GT_FIFO_FREE_ENTRIES_MASK		0x7f
6817
#define    GT_FIFO_FREE_ENTRIES_MASK		0x7f
6738
#define    GT_FIFO_NUM_RESERVED_ENTRIES		20
6818
#define    GT_FIFO_NUM_RESERVED_ENTRIES		20
Line 6739... Line 6819...
6739
#define    GT_FIFO_CTL_BLOCK_ALL_POLICY_STALL	(1 << 12)
6819
#define    GT_FIFO_CTL_BLOCK_ALL_POLICY_STALL	(1 << 12)
6740
#define    GT_FIFO_CTL_RC6_POLICY_STALL		(1 << 11)
6820
#define    GT_FIFO_CTL_RC6_POLICY_STALL		(1 << 11)
6741
 
6821
 
6742
#define  HSW_IDICR				0x9008
6822
#define  HSW_IDICR				_MMIO(0x9008)
Line 6743... Line 6823...
6743
#define    IDIHASHMSK(x)			(((x) & 0x3f) << 16)
6823
#define    IDIHASHMSK(x)			(((x) & 0x3f) << 16)
6744
#define  HSW_EDRAM_PRESENT			0x120010
6824
#define  HSW_EDRAM_PRESENT			_MMIO(0x120010)
6745
#define    EDRAM_ENABLED			0x1
6825
#define    EDRAM_ENABLED			0x1
6746
 
6826
 
6747
#define GEN6_UCGCTL1				0x9400
6827
#define GEN6_UCGCTL1				_MMIO(0x9400)
6748
# define GEN6_EU_TCUNIT_CLOCK_GATE_DISABLE		(1 << 16)
6828
# define GEN6_EU_TCUNIT_CLOCK_GATE_DISABLE		(1 << 16)
6749
# define GEN6_BLBUNIT_CLOCK_GATE_DISABLE		(1 << 5)
6829
# define GEN6_BLBUNIT_CLOCK_GATE_DISABLE		(1 << 5)
Line 6750... Line 6830...
6750
# define GEN6_CSUNIT_CLOCK_GATE_DISABLE			(1 << 7)
6830
# define GEN6_CSUNIT_CLOCK_GATE_DISABLE			(1 << 7)
Line 6751... Line 6831...
6751
 
6831
 
6752
#define GEN6_UCGCTL2				0x9404
6832
#define GEN6_UCGCTL2				_MMIO(0x9404)
Line 6753... Line 6833...
6753
# define GEN6_VFUNIT_CLOCK_GATE_DISABLE			(1 << 31)
6833
# define GEN6_VFUNIT_CLOCK_GATE_DISABLE			(1 << 31)
6754
# define GEN7_VDSUNIT_CLOCK_GATE_DISABLE		(1 << 30)
6834
# define GEN7_VDSUNIT_CLOCK_GATE_DISABLE		(1 << 30)
6755
# define GEN7_TDLUNIT_CLOCK_GATE_DISABLE		(1 << 22)
6835
# define GEN7_TDLUNIT_CLOCK_GATE_DISABLE		(1 << 22)
Line 6756... Line 6836...
6756
# define GEN6_RCZUNIT_CLOCK_GATE_DISABLE		(1 << 13)
6836
# define GEN6_RCZUNIT_CLOCK_GATE_DISABLE		(1 << 13)
6757
# define GEN6_RCPBUNIT_CLOCK_GATE_DISABLE		(1 << 12)
6837
# define GEN6_RCPBUNIT_CLOCK_GATE_DISABLE		(1 << 12)
6758
# define GEN6_RCCUNIT_CLOCK_GATE_DISABLE		(1 << 11)
6838
# define GEN6_RCCUNIT_CLOCK_GATE_DISABLE		(1 << 11)
6759
 
6839
 
Line 6760... Line 6840...
6760
#define GEN6_UCGCTL3				0x9408
6840
#define GEN6_UCGCTL3				_MMIO(0x9408)
6761
 
6841
 
6762
#define GEN7_UCGCTL4				0x940c
6842
#define GEN7_UCGCTL4				_MMIO(0x940c)
6763
#define  GEN7_L3BANK2X_CLOCK_GATE_DISABLE	(1<<25)
6843
#define  GEN7_L3BANK2X_CLOCK_GATE_DISABLE	(1<<25)
6764
 
6844
 
6765
#define GEN6_RCGCTL1				0x9410
6845
#define GEN6_RCGCTL1				_MMIO(0x9410)
6766
#define GEN6_RCGCTL2				0x9414
6846
#define GEN6_RCGCTL2				_MMIO(0x9414)
6767
#define GEN6_RSTCTL				0x9420
6847
#define GEN6_RSTCTL				_MMIO(0x9420)
6768
 
6848
 
6769
#define GEN8_UCGCTL6				0x9430
6849
#define GEN8_UCGCTL6				_MMIO(0x9430)
6770
#define   GEN8_GAPSUNIT_CLOCK_GATE_DISABLE	(1<<24)
6850
#define   GEN8_GAPSUNIT_CLOCK_GATE_DISABLE	(1<<24)
6771
#define   GEN8_SDEUNIT_CLOCK_GATE_DISABLE	(1<<14)
6851
#define   GEN8_SDEUNIT_CLOCK_GATE_DISABLE	(1<<14)
6772
#define   GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ (1<<28)
6852
#define   GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ (1<<28)
6773
 
6853
 
6774
#define GEN6_GFXPAUSE				0xA000
6854
#define GEN6_GFXPAUSE				_MMIO(0xA000)
6775
#define GEN6_RPNSWREQ				0xA008
6855
#define GEN6_RPNSWREQ				_MMIO(0xA008)
6776
#define   GEN6_TURBO_DISABLE			(1<<31)
6856
#define   GEN6_TURBO_DISABLE			(1<<31)
6777
#define   GEN6_FREQUENCY(x)			((x)<<25)
6857
#define   GEN6_FREQUENCY(x)			((x)<<25)
6778
#define   HSW_FREQUENCY(x)			((x)<<24)
6858
#define   HSW_FREQUENCY(x)			((x)<<24)
6779
#define   GEN9_FREQUENCY(x)			((x)<<23)
6859
#define   GEN9_FREQUENCY(x)			((x)<<23)
6780
#define   GEN6_OFFSET(x)			((x)<<19)
6860
#define   GEN6_OFFSET(x)			((x)<<19)
6781
#define   GEN6_AGGRESSIVE_TURBO			(0<<15)
6861
#define   GEN6_AGGRESSIVE_TURBO			(0<<15)
6782
#define GEN6_RC_VIDEO_FREQ			0xA00C
6862
#define GEN6_RC_VIDEO_FREQ			_MMIO(0xA00C)
6783
#define GEN6_RC_CONTROL				0xA090
6863
#define GEN6_RC_CONTROL				_MMIO(0xA090)
6784
#define   GEN6_RC_CTL_RC6pp_ENABLE		(1<<16)
6864
#define   GEN6_RC_CTL_RC6pp_ENABLE		(1<<16)
6785
#define   GEN6_RC_CTL_RC6p_ENABLE		(1<<17)
6865
#define   GEN6_RC_CTL_RC6p_ENABLE		(1<<17)
6786
#define   GEN6_RC_CTL_RC6_ENABLE		(1<<18)
6866
#define   GEN6_RC_CTL_RC6_ENABLE		(1<<18)
6787
#define   GEN6_RC_CTL_RC1e_ENABLE		(1<<20)
6867
#define   GEN6_RC_CTL_RC1e_ENABLE		(1<<20)
6788
#define   GEN6_RC_CTL_RC7_ENABLE		(1<<22)
6868
#define   GEN6_RC_CTL_RC7_ENABLE		(1<<22)
6789
#define   VLV_RC_CTL_CTX_RST_PARALLEL		(1<<24)
6869
#define   VLV_RC_CTL_CTX_RST_PARALLEL		(1<<24)
6790
#define   GEN7_RC_CTL_TO_MODE			(1<<28)
6870
#define   GEN7_RC_CTL_TO_MODE			(1<<28)
6791
#define   GEN6_RC_CTL_EI_MODE(x)		((x)<<27)
6871
#define   GEN6_RC_CTL_EI_MODE(x)		((x)<<27)
6792
#define   GEN6_RC_CTL_HW_ENABLE			(1<<31)
6872
#define   GEN6_RC_CTL_HW_ENABLE			(1<<31)
6793
#define GEN6_RP_DOWN_TIMEOUT			0xA010
6873
#define GEN6_RP_DOWN_TIMEOUT			_MMIO(0xA010)
Line 6811... Line 6891...
6811
#define   GEN6_RP_UP_IDLE_MIN			(0x1<<3)
6891
#define   GEN6_RP_UP_IDLE_MIN			(0x1<<3)
6812
#define   GEN6_RP_UP_BUSY_AVG			(0x2<<3)
6892
#define   GEN6_RP_UP_BUSY_AVG			(0x2<<3)
6813
#define   GEN6_RP_UP_BUSY_CONT			(0x4<<3)
6893
#define   GEN6_RP_UP_BUSY_CONT			(0x4<<3)
6814
#define   GEN6_RP_DOWN_IDLE_AVG			(0x2<<0)
6894
#define   GEN6_RP_DOWN_IDLE_AVG			(0x2<<0)
6815
#define   GEN6_RP_DOWN_IDLE_CONT		(0x1<<0)
6895
#define   GEN6_RP_DOWN_IDLE_CONT		(0x1<<0)
6816
#define GEN6_RP_UP_THRESHOLD			0xA02C
6896
#define GEN6_RP_UP_THRESHOLD			_MMIO(0xA02C)
6817
#define GEN6_RP_DOWN_THRESHOLD			0xA030
6897
#define GEN6_RP_DOWN_THRESHOLD			_MMIO(0xA030)
6818
#define GEN6_RP_CUR_UP_EI			0xA050
6898
#define GEN6_RP_CUR_UP_EI			_MMIO(0xA050)
6819
#define   GEN6_CURICONT_MASK			0xffffff
6899
#define   GEN6_CURICONT_MASK			0xffffff
6820
#define GEN6_RP_CUR_UP				0xA054
6900
#define GEN6_RP_CUR_UP				_MMIO(0xA054)
6821
#define   GEN6_CURBSYTAVG_MASK			0xffffff
6901
#define   GEN6_CURBSYTAVG_MASK			0xffffff
6822
#define GEN6_RP_PREV_UP				0xA058
6902
#define GEN6_RP_PREV_UP				_MMIO(0xA058)
6823
#define GEN6_RP_CUR_DOWN_EI			0xA05C
6903
#define GEN6_RP_CUR_DOWN_EI			_MMIO(0xA05C)
6824
#define   GEN6_CURIAVG_MASK			0xffffff
6904
#define   GEN6_CURIAVG_MASK			0xffffff
6825
#define GEN6_RP_CUR_DOWN			0xA060
6905
#define GEN6_RP_CUR_DOWN			_MMIO(0xA060)
6826
#define GEN6_RP_PREV_DOWN			0xA064
6906
#define GEN6_RP_PREV_DOWN			_MMIO(0xA064)
6827
#define GEN6_RP_UP_EI				0xA068
6907
#define GEN6_RP_UP_EI				_MMIO(0xA068)
6828
#define GEN6_RP_DOWN_EI				0xA06C
6908
#define GEN6_RP_DOWN_EI				_MMIO(0xA06C)
6829
#define GEN6_RP_IDLE_HYSTERSIS			0xA070
6909
#define GEN6_RP_IDLE_HYSTERSIS			_MMIO(0xA070)
6830
#define GEN6_RPDEUHWTC				0xA080
6910
#define GEN6_RPDEUHWTC				_MMIO(0xA080)
6831
#define GEN6_RPDEUC				0xA084
6911
#define GEN6_RPDEUC				_MMIO(0xA084)
6832
#define GEN6_RPDEUCSW				0xA088
6912
#define GEN6_RPDEUCSW				_MMIO(0xA088)
6833
#define GEN6_RC_STATE				0xA094
6913
#define GEN6_RC_STATE				_MMIO(0xA094)
6834
#define GEN6_RC1_WAKE_RATE_LIMIT		0xA098
6914
#define GEN6_RC1_WAKE_RATE_LIMIT		_MMIO(0xA098)
6835
#define GEN6_RC6_WAKE_RATE_LIMIT		0xA09C
6915
#define GEN6_RC6_WAKE_RATE_LIMIT		_MMIO(0xA09C)
6836
#define GEN6_RC6pp_WAKE_RATE_LIMIT		0xA0A0
6916
#define GEN6_RC6pp_WAKE_RATE_LIMIT		_MMIO(0xA0A0)
6837
#define GEN6_RC_EVALUATION_INTERVAL		0xA0A8
6917
#define GEN6_RC_EVALUATION_INTERVAL		_MMIO(0xA0A8)
6838
#define GEN6_RC_IDLE_HYSTERSIS			0xA0AC
6918
#define GEN6_RC_IDLE_HYSTERSIS			_MMIO(0xA0AC)
6839
#define GEN6_RC_SLEEP				0xA0B0
6919
#define GEN6_RC_SLEEP				_MMIO(0xA0B0)
6840
#define GEN6_RCUBMABDTMR			0xA0B0
6920
#define GEN6_RCUBMABDTMR			_MMIO(0xA0B0)
6841
#define GEN6_RC1e_THRESHOLD			0xA0B4
6921
#define GEN6_RC1e_THRESHOLD			_MMIO(0xA0B4)
6842
#define GEN6_RC6_THRESHOLD			0xA0B8
6922
#define GEN6_RC6_THRESHOLD			_MMIO(0xA0B8)
6843
#define GEN6_RC6p_THRESHOLD			0xA0BC
6923
#define GEN6_RC6p_THRESHOLD			_MMIO(0xA0BC)
6844
#define VLV_RCEDATA				0xA0BC
6924
#define VLV_RCEDATA				_MMIO(0xA0BC)
6845
#define GEN6_RC6pp_THRESHOLD			0xA0C0
6925
#define GEN6_RC6pp_THRESHOLD			_MMIO(0xA0C0)
6846
#define GEN6_PMINTRMSK				0xA168
6926
#define GEN6_PMINTRMSK				_MMIO(0xA168)
6847
#define GEN8_PMINTR_REDIRECT_TO_NON_DISP	(1<<31)
6927
#define GEN8_PMINTR_REDIRECT_TO_NON_DISP	(1<<31)
6848
#define VLV_PWRDWNUPCTL				0xA294
6928
#define VLV_PWRDWNUPCTL				_MMIO(0xA294)
6849
#define GEN9_MEDIA_PG_IDLE_HYSTERESIS		0xA0C4
6929
#define GEN9_MEDIA_PG_IDLE_HYSTERESIS		_MMIO(0xA0C4)
6850
#define GEN9_RENDER_PG_IDLE_HYSTERESIS		0xA0C8
6930
#define GEN9_RENDER_PG_IDLE_HYSTERESIS		_MMIO(0xA0C8)
6851
#define GEN9_PG_ENABLE				0xA210
6931
#define GEN9_PG_ENABLE				_MMIO(0xA210)
6852
#define GEN9_RENDER_PG_ENABLE			(1<<0)
6932
#define GEN9_RENDER_PG_ENABLE			(1<<0)
6853
#define GEN9_MEDIA_PG_ENABLE			(1<<1)
6933
#define GEN9_MEDIA_PG_ENABLE			(1<<1)
Line 6854... Line 6934...
6854
 
6934
 
6855
#define VLV_CHICKEN_3				(VLV_DISPLAY_BASE + 0x7040C)
6935
#define VLV_CHICKEN_3				_MMIO(VLV_DISPLAY_BASE + 0x7040C)
6856
#define  PIXEL_OVERLAP_CNT_MASK			(3 << 30)
6936
#define  PIXEL_OVERLAP_CNT_MASK			(3 << 30)
Line 6857... Line 6937...
6857
#define  PIXEL_OVERLAP_CNT_SHIFT		30
6937
#define  PIXEL_OVERLAP_CNT_SHIFT		30
6858
 
6938
 
6859
#define GEN6_PMISR				0x44020
6939
#define GEN6_PMISR				_MMIO(0x44020)
6860
#define GEN6_PMIMR				0x44024 /* rps_lock */
6940
#define GEN6_PMIMR				_MMIO(0x44024) /* rps_lock */
6861
#define GEN6_PMIIR				0x44028
6941
#define GEN6_PMIIR				_MMIO(0x44028)
6862
#define GEN6_PMIER				0x4402C
6942
#define GEN6_PMIER				_MMIO(0x4402C)
6863
#define  GEN6_PM_MBOX_EVENT			(1<<25)
6943
#define  GEN6_PM_MBOX_EVENT			(1<<25)
6864
#define  GEN6_PM_THERMAL_EVENT			(1<<24)
6944
#define  GEN6_PM_THERMAL_EVENT			(1<<24)
6865
#define  GEN6_PM_RP_DOWN_TIMEOUT		(1<<6)
6945
#define  GEN6_PM_RP_DOWN_TIMEOUT		(1<<6)
Line 6869... Line 6949...
6869
#define  GEN6_PM_RP_DOWN_EI_EXPIRED		(1<<1)
6949
#define  GEN6_PM_RP_DOWN_EI_EXPIRED		(1<<1)
6870
#define  GEN6_PM_RPS_EVENTS			(GEN6_PM_RP_UP_THRESHOLD | \
6950
#define  GEN6_PM_RPS_EVENTS			(GEN6_PM_RP_UP_THRESHOLD | \
6871
						 GEN6_PM_RP_DOWN_THRESHOLD | \
6951
						 GEN6_PM_RP_DOWN_THRESHOLD | \
6872
						 GEN6_PM_RP_DOWN_TIMEOUT)
6952
						 GEN6_PM_RP_DOWN_TIMEOUT)
Line 6873... Line 6953...
6873
 
6953
 
6874
#define GEN7_GT_SCRATCH(i)			(0x4F100 + (i) * 4)
6954
#define GEN7_GT_SCRATCH(i)			_MMIO(0x4F100 + (i) * 4)
Line 6875... Line 6955...
6875
#define GEN7_GT_SCRATCH_REG_NUM			8
6955
#define GEN7_GT_SCRATCH_REG_NUM			8
6876
 
6956
 
6877
#define VLV_GTLC_SURVIVABILITY_REG              0x130098
6957
#define VLV_GTLC_SURVIVABILITY_REG              _MMIO(0x130098)
Line 6878... Line 6958...
6878
#define VLV_GFX_CLK_STATUS_BIT			(1<<3)
6958
#define VLV_GFX_CLK_STATUS_BIT			(1<<3)
6879
#define VLV_GFX_CLK_FORCE_ON_BIT		(1<<2)
6959
#define VLV_GFX_CLK_FORCE_ON_BIT		(1<<2)
6880
 
6960
 
6881
#define GEN6_GT_GFX_RC6_LOCKED			0x138104
6961
#define GEN6_GT_GFX_RC6_LOCKED			_MMIO(0x138104)
6882
#define VLV_COUNTER_CONTROL			0x138104
6962
#define VLV_COUNTER_CONTROL			_MMIO(0x138104)
6883
#define   VLV_COUNT_RANGE_HIGH			(1<<15)
6963
#define   VLV_COUNT_RANGE_HIGH			(1<<15)
6884
#define   VLV_MEDIA_RC0_COUNT_EN		(1<<5)
6964
#define   VLV_MEDIA_RC0_COUNT_EN		(1<<5)
6885
#define   VLV_RENDER_RC0_COUNT_EN		(1<<4)
6965
#define   VLV_RENDER_RC0_COUNT_EN		(1<<4)
6886
#define   VLV_MEDIA_RC6_COUNT_EN		(1<<1)
6966
#define   VLV_MEDIA_RC6_COUNT_EN		(1<<1)
6887
#define   VLV_RENDER_RC6_COUNT_EN		(1<<0)
6967
#define   VLV_RENDER_RC6_COUNT_EN		(1<<0)
6888
#define GEN6_GT_GFX_RC6				0x138108
6968
#define GEN6_GT_GFX_RC6				_MMIO(0x138108)
6889
#define VLV_GT_RENDER_RC6			0x138108
6969
#define VLV_GT_RENDER_RC6			_MMIO(0x138108)
6890
#define VLV_GT_MEDIA_RC6			0x13810C
6970
#define VLV_GT_MEDIA_RC6			_MMIO(0x13810C)
6891
 
6971
 
6892
#define GEN6_GT_GFX_RC6p			0x13810C
6972
#define GEN6_GT_GFX_RC6p			_MMIO(0x13810C)
Line 6893... Line 6973...
6893
#define GEN6_GT_GFX_RC6pp			0x138110
6973
#define GEN6_GT_GFX_RC6pp			_MMIO(0x138110)
6894
#define VLV_RENDER_C0_COUNT			0x138118
6974
#define VLV_RENDER_C0_COUNT			_MMIO(0x138118)
6895
#define VLV_MEDIA_C0_COUNT			0x13811C
6975
#define VLV_MEDIA_C0_COUNT			_MMIO(0x13811C)
6896
 
6976
 
6897
#define GEN6_PCODE_MAILBOX			0x138124
6977
#define GEN6_PCODE_MAILBOX			_MMIO(0x138124)
6898
#define   GEN6_PCODE_READY			(1<<31)
6978
#define   GEN6_PCODE_READY			(1<<31)
Line 6915... Line 6995...
6915
#define   GEN6_PCODE_READ_D_COMP		0x10
6995
#define   GEN6_PCODE_READ_D_COMP		0x10
6916
#define   GEN6_PCODE_WRITE_D_COMP		0x11
6996
#define   GEN6_PCODE_WRITE_D_COMP		0x11
6917
#define   HSW_PCODE_DE_WRITE_FREQ_REQ		0x17
6997
#define   HSW_PCODE_DE_WRITE_FREQ_REQ		0x17
6918
#define   DISPLAY_IPS_CONTROL			0x19
6998
#define   DISPLAY_IPS_CONTROL			0x19
6919
#define	  HSW_PCODE_DYNAMIC_DUTY_CYCLE_CONTROL	0x1A
6999
#define	  HSW_PCODE_DYNAMIC_DUTY_CYCLE_CONTROL	0x1A
6920
#define GEN6_PCODE_DATA				0x138128
7000
#define GEN6_PCODE_DATA				_MMIO(0x138128)
6921
#define   GEN6_PCODE_FREQ_IA_RATIO_SHIFT	8
7001
#define   GEN6_PCODE_FREQ_IA_RATIO_SHIFT	8
6922
#define   GEN6_PCODE_FREQ_RING_RATIO_SHIFT	16
7002
#define   GEN6_PCODE_FREQ_RING_RATIO_SHIFT	16
6923
#define GEN6_PCODE_DATA1			0x13812C
7003
#define GEN6_PCODE_DATA1			_MMIO(0x13812C)
Line 6924... Line 7004...
6924
 
7004
 
6925
#define GEN6_GT_CORE_STATUS		0x138060
7005
#define GEN6_GT_CORE_STATUS		_MMIO(0x138060)
6926
#define   GEN6_CORE_CPD_STATE_MASK	(7<<4)
7006
#define   GEN6_CORE_CPD_STATE_MASK	(7<<4)
6927
#define   GEN6_RCn_MASK			7
7007
#define   GEN6_RCn_MASK			7
6928
#define   GEN6_RC0			0
7008
#define   GEN6_RC0			0
6929
#define   GEN6_RC3			2
7009
#define   GEN6_RC3			2
6930
#define   GEN6_RC6			3
7010
#define   GEN6_RC6			3
Line 6931... Line 7011...
6931
#define   GEN6_RC7			4
7011
#define   GEN6_RC7			4
6932
 
7012
 
Line 6933... Line 7013...
6933
#define GEN8_GT_SLICE_INFO		0x138064
7013
#define GEN8_GT_SLICE_INFO		_MMIO(0x138064)
6934
#define   GEN8_LSLICESTAT_MASK		0x7
7014
#define   GEN8_LSLICESTAT_MASK		0x7
6935
 
7015
 
6936
#define CHV_POWER_SS0_SIG1		0xa720
7016
#define CHV_POWER_SS0_SIG1		_MMIO(0xa720)
6937
#define CHV_POWER_SS1_SIG1		0xa728
7017
#define CHV_POWER_SS1_SIG1		_MMIO(0xa728)
6938
#define   CHV_SS_PG_ENABLE		(1<<1)
7018
#define   CHV_SS_PG_ENABLE		(1<<1)
Line 6939... Line 7019...
6939
#define   CHV_EU08_PG_ENABLE		(1<<9)
7019
#define   CHV_EU08_PG_ENABLE		(1<<9)
6940
#define   CHV_EU19_PG_ENABLE		(1<<17)
7020
#define   CHV_EU19_PG_ENABLE		(1<<17)
6941
#define   CHV_EU210_PG_ENABLE		(1<<25)
7021
#define   CHV_EU210_PG_ENABLE		(1<<25)
Line 6942... Line 7022...
6942
 
7022
 
6943
#define CHV_POWER_SS0_SIG2		0xa724
7023
#define CHV_POWER_SS0_SIG2		_MMIO(0xa724)
6944
#define CHV_POWER_SS1_SIG2		0xa72c
7024
#define CHV_POWER_SS1_SIG2		_MMIO(0xa72c)
Line 6945... Line 7025...
6945
#define   CHV_EU311_PG_ENABLE		(1<<1)
7025
#define   CHV_EU311_PG_ENABLE		(1<<1)
6946
 
7026
 
6947
#define GEN9_SLICE_PGCTL_ACK(slice)	(0x804c + (slice)*0x4)
7027
#define GEN9_SLICE_PGCTL_ACK(slice)	_MMIO(0x804c + (slice)*0x4)
6948
#define   GEN9_PGCTL_SLICE_ACK		(1 << 0)
7028
#define   GEN9_PGCTL_SLICE_ACK		(1 << 0)
6949
#define   GEN9_PGCTL_SS_ACK(subslice)	(1 << (2 + (subslice)*2))
7029
#define   GEN9_PGCTL_SS_ACK(subslice)	(1 << (2 + (subslice)*2))
6950
 
7030
 
6951
#define GEN9_SS01_EU_PGCTL_ACK(slice)	(0x805c + (slice)*0x8)
7031
#define GEN9_SS01_EU_PGCTL_ACK(slice)	_MMIO(0x805c + (slice)*0x8)
6952
#define GEN9_SS23_EU_PGCTL_ACK(slice)	(0x8060 + (slice)*0x8)
7032
#define GEN9_SS23_EU_PGCTL_ACK(slice)	_MMIO(0x8060 + (slice)*0x8)
6953
#define   GEN9_PGCTL_SSA_EU08_ACK	(1 << 0)
7033
#define   GEN9_PGCTL_SSA_EU08_ACK	(1 << 0)
6954
#define   GEN9_PGCTL_SSA_EU19_ACK	(1 << 2)
7034
#define   GEN9_PGCTL_SSA_EU19_ACK	(1 << 2)
Line 6955... Line 7035...
6955
#define   GEN9_PGCTL_SSA_EU210_ACK	(1 << 4)
7035
#define   GEN9_PGCTL_SSA_EU210_ACK	(1 << 4)
6956
#define   GEN9_PGCTL_SSA_EU311_ACK	(1 << 6)
7036
#define   GEN9_PGCTL_SSA_EU311_ACK	(1 << 6)
6957
#define   GEN9_PGCTL_SSB_EU08_ACK	(1 << 8)
7037
#define   GEN9_PGCTL_SSB_EU08_ACK	(1 << 8)
6958
#define   GEN9_PGCTL_SSB_EU19_ACK	(1 << 10)
7038
#define   GEN9_PGCTL_SSB_EU19_ACK	(1 << 10)
6959
#define   GEN9_PGCTL_SSB_EU210_ACK	(1 << 12)
7039
#define   GEN9_PGCTL_SSB_EU210_ACK	(1 << 12)
Line 6960... Line 7040...
6960
#define   GEN9_PGCTL_SSB_EU311_ACK	(1 << 14)
7040
#define   GEN9_PGCTL_SSB_EU311_ACK	(1 << 14)
6961
 
7041
 
Line 6962... Line 7042...
6962
#define GEN7_MISCCPCTL			(0x9424)
7042
#define GEN7_MISCCPCTL				_MMIO(0x9424)
6963
#define   GEN7_DOP_CLOCK_GATE_ENABLE		(1<<0)
7043
#define   GEN7_DOP_CLOCK_GATE_ENABLE		(1<<0)
6964
#define   GEN8_DOP_CLOCK_GATE_CFCLK_ENABLE	(1<<2)
-
 
6965
#define   GEN8_DOP_CLOCK_GATE_GUC_ENABLE	(1<<4)
7044
#define   GEN8_DOP_CLOCK_GATE_CFCLK_ENABLE	(1<<2)
6966
#define   GEN8_DOP_CLOCK_GATE_MEDIA_ENABLE     (1<<6)
7045
#define   GEN8_DOP_CLOCK_GATE_GUC_ENABLE	(1<<4)
6967
 
7046
#define   GEN8_DOP_CLOCK_GATE_MEDIA_ENABLE     (1<<6)
6968
#define GEN8_GARBCNTL                   0xB004
7047
 
6969
#define   GEN9_GAPS_TSV_CREDIT_DISABLE  (1<<7)
7048
#define GEN8_GARBCNTL                   _MMIO(0xB004)
Line 6981... Line 7060...
6981
		((reg & GEN7_L3CDERRST1_BANK_MASK) >> 11)
7060
		((reg & GEN7_L3CDERRST1_BANK_MASK) >> 11)
6982
#define GEN7_PARITY_ERROR_SUBBANK(reg) \
7061
#define GEN7_PARITY_ERROR_SUBBANK(reg) \
6983
		((reg & GEN7_L3CDERRST1_SUBBANK_MASK) >> 8)
7062
		((reg & GEN7_L3CDERRST1_SUBBANK_MASK) >> 8)
6984
#define   GEN7_L3CDERRST1_ENABLE	(1<<7)
7063
#define   GEN7_L3CDERRST1_ENABLE	(1<<7)
Line 6985... Line 7064...
6985
 
7064
 
6986
#define GEN7_L3LOG_BASE			0xB070
-
 
6987
#define HSW_L3LOG_BASE_SLICE1		0xB270
7065
#define GEN7_L3LOG(slice, i)		_MMIO(0xB070 + (slice) * 0x200 + (i) * 4)
Line 6988... Line 7066...
6988
#define GEN7_L3LOG_SIZE			0x80
7066
#define GEN7_L3LOG_SIZE			0x80
6989
 
7067
 
6990
#define GEN7_HALF_SLICE_CHICKEN1	0xe100 /* IVB GT1 + VLV */
7068
#define GEN7_HALF_SLICE_CHICKEN1	_MMIO(0xe100) /* IVB GT1 + VLV */
6991
#define GEN7_HALF_SLICE_CHICKEN1_GT2	0xf100
7069
#define GEN7_HALF_SLICE_CHICKEN1_GT2	_MMIO(0xf100)
6992
#define   GEN7_MAX_PS_THREAD_DEP		(8<<12)
7070
#define   GEN7_MAX_PS_THREAD_DEP		(8<<12)
6993
#define   GEN7_SINGLE_SUBSCAN_DISPATCH_ENABLE	(1<<10)
7071
#define   GEN7_SINGLE_SUBSCAN_DISPATCH_ENABLE	(1<<10)
Line 6994... Line 7072...
6994
#define   GEN7_SBE_SS_CACHE_DISPATCH_PORT_SHARING_DISABLE	(1<<4)
7072
#define   GEN7_SBE_SS_CACHE_DISPATCH_PORT_SHARING_DISABLE	(1<<4)
6995
#define   GEN7_PSD_SINGLE_PORT_DISPATCH_ENABLE	(1<<3)
7073
#define   GEN7_PSD_SINGLE_PORT_DISPATCH_ENABLE	(1<<3)
6996
 
7074
 
Line 6997... Line 7075...
6997
#define GEN9_HALF_SLICE_CHICKEN5	0xe188
7075
#define GEN9_HALF_SLICE_CHICKEN5	_MMIO(0xe188)
6998
#define   GEN9_DG_MIRROR_FIX_ENABLE	(1<<5)
7076
#define   GEN9_DG_MIRROR_FIX_ENABLE	(1<<5)
6999
#define   GEN9_CCS_TLB_PREFETCH_ENABLE	(1<<3)
7077
#define   GEN9_CCS_TLB_PREFETCH_ENABLE	(1<<3)
Line 7000... Line 7078...
7000
 
7078
 
7001
#define GEN8_ROW_CHICKEN		0xe4f0
7079
#define GEN8_ROW_CHICKEN		_MMIO(0xe4f0)
7002
#define   PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE	(1<<8)
7080
#define   PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE	(1<<8)
Line 7003... Line 7081...
7003
#define   STALL_DOP_GATING_DISABLE		(1<<5)
7081
#define   STALL_DOP_GATING_DISABLE		(1<<5)
7004
 
7082
 
Line 7005... Line 7083...
7005
#define GEN7_ROW_CHICKEN2		0xe4f4
7083
#define GEN7_ROW_CHICKEN2		_MMIO(0xe4f4)
7006
#define GEN7_ROW_CHICKEN2_GT2		0xf4f4
7084
#define GEN7_ROW_CHICKEN2_GT2		_MMIO(0xf4f4)
Line 7007... Line 7085...
7007
#define   DOP_CLOCK_GATING_DISABLE	(1<<0)
7085
#define   DOP_CLOCK_GATING_DISABLE	(1<<0)
7008
 
7086
 
7009
#define HSW_ROW_CHICKEN3		0xe49c
7087
#define HSW_ROW_CHICKEN3		_MMIO(0xe49c)
7010
#define  HSW_ROW_CHICKEN3_L3_GLOBAL_ATOMICS_DISABLE    (1 << 6)
7088
#define  HSW_ROW_CHICKEN3_L3_GLOBAL_ATOMICS_DISABLE    (1 << 6)
7011
 
7089
 
Line 7012... Line 7090...
7012
#define HALF_SLICE_CHICKEN2		0xe180
7090
#define HALF_SLICE_CHICKEN2		_MMIO(0xe180)
7013
#define   GEN8_ST_PO_DISABLE		(1<<13)
7091
#define   GEN8_ST_PO_DISABLE		(1<<13)
Line 7014... Line 7092...
7014
 
7092
 
7015
#define HALF_SLICE_CHICKEN3		0xe184
7093
#define HALF_SLICE_CHICKEN3		_MMIO(0xe184)
7016
#define   HSW_SAMPLE_C_PERFORMANCE	(1<<9)
7094
#define   HSW_SAMPLE_C_PERFORMANCE	(1<<9)
7017
#define   GEN8_CENTROID_PIXEL_OPT_DIS	(1<<8)
7095
#define   GEN8_CENTROID_PIXEL_OPT_DIS	(1<<8)
7018
#define   GEN9_DISABLE_OCL_OOB_SUPPRESS_LOGIC	(1<<5)
7096
#define   GEN9_DISABLE_OCL_OOB_SUPPRESS_LOGIC	(1<<5)
Line 7019... Line 7097...
7019
#define   GEN8_SAMPLER_POWER_BYPASS_DIS	(1<<1)
7097
#define   GEN8_SAMPLER_POWER_BYPASS_DIS	(1<<1)
7020
 
7098
 
7021
#define GEN9_HALF_SLICE_CHICKEN7	0xe194
7099
#define GEN9_HALF_SLICE_CHICKEN7	_MMIO(0xe194)
7022
#define   GEN9_ENABLE_YV12_BUGFIX	(1<<4)
7100
#define   GEN9_ENABLE_YV12_BUGFIX	(1<<4)
7023
 
7101
 
7024
/* Audio */
7102
/* Audio */
Line 7025... Line 7103...
7025
#define G4X_AUD_VID_DID			(dev_priv->info.display_mmio_offset + 0x62020)
7103
#define G4X_AUD_VID_DID			_MMIO(dev_priv->info.display_mmio_offset + 0x62020)
7026
#define   INTEL_AUDIO_DEVCL		0x808629FB
7104
#define   INTEL_AUDIO_DEVCL		0x808629FB
7027
#define   INTEL_AUDIO_DEVBLC		0x80862801
7105
#define   INTEL_AUDIO_DEVBLC		0x80862801
7028
#define   INTEL_AUDIO_DEVCTG		0x80862802
-
 
7029
 
7106
#define   INTEL_AUDIO_DEVCTG		0x80862802
7030
#define G4X_AUD_CNTL_ST			0x620B4
7107
 
7031
#define   G4X_ELDV_DEVCL_DEVBLC		(1 << 13)
7108
#define G4X_AUD_CNTL_ST			_MMIO(0x620B4)
7032
#define   G4X_ELDV_DEVCTG		(1 << 14)
7109
#define   G4X_ELDV_DEVCL_DEVBLC		(1 << 13)
7033
#define   G4X_ELD_ADDR_MASK		(0xf << 5)
-
 
7034
#define   G4X_ELD_ACK			(1 << 4)
7110
#define   G4X_ELDV_DEVCTG		(1 << 14)
7035
#define G4X_HDMIW_HDMIEDID		0x6210C
7111
#define   G4X_ELD_ADDR_MASK		(0xf << 5)
7036
 
7112
#define   G4X_ELD_ACK			(1 << 4)
7037
#define _IBX_HDMIW_HDMIEDID_A		0xE2050
7113
#define G4X_HDMIW_HDMIEDID		_MMIO(0x6210C)
7038
#define _IBX_HDMIW_HDMIEDID_B		0xE2150
7114
 
7039
#define IBX_HDMIW_HDMIEDID(pipe) _PIPE(pipe, \
7115
#define _IBX_HDMIW_HDMIEDID_A		0xE2050
7040
					_IBX_HDMIW_HDMIEDID_A, \
7116
#define _IBX_HDMIW_HDMIEDID_B		0xE2150
Line 7041... Line 7117...
7041
					_IBX_HDMIW_HDMIEDID_B)
7117
#define IBX_HDMIW_HDMIEDID(pipe)	_MMIO_PIPE(pipe, _IBX_HDMIW_HDMIEDID_A, \
7042
#define _IBX_AUD_CNTL_ST_A		0xE20B4
7118
					_IBX_HDMIW_HDMIEDID_B)
7043
#define _IBX_AUD_CNTL_ST_B		0xE21B4
7119
#define _IBX_AUD_CNTL_ST_A		0xE20B4
7044
#define IBX_AUD_CNTL_ST(pipe) _PIPE(pipe, \
-
 
7045
					_IBX_AUD_CNTL_ST_A, \
-
 
7046
					_IBX_AUD_CNTL_ST_B)
7120
#define _IBX_AUD_CNTL_ST_B		0xE21B4
7047
#define   IBX_ELD_BUFFER_SIZE_MASK	(0x1f << 10)
7121
#define IBX_AUD_CNTL_ST(pipe)		_MMIO_PIPE(pipe, _IBX_AUD_CNTL_ST_A, \
7048
#define   IBX_ELD_ADDRESS_MASK		(0x1f << 5)
7122
					_IBX_AUD_CNTL_ST_B)
7049
#define   IBX_ELD_ACK			(1 << 4)
-
 
7050
#define IBX_AUD_CNTL_ST2		0xE20C0
-
 
7051
#define   IBX_CP_READY(port)		((1 << 1) << (((port) - 1) * 4))
7123
#define   IBX_ELD_BUFFER_SIZE_MASK	(0x1f << 10)
Line 7052... Line 7124...
7052
#define   IBX_ELD_VALID(port)		((1 << 0) << (((port) - 1) * 4))
7124
#define   IBX_ELD_ADDRESS_MASK		(0x1f << 5)
7053
 
7125
#define   IBX_ELD_ACK			(1 << 4)
7054
#define _CPT_HDMIW_HDMIEDID_A		0xE5050
7126
#define IBX_AUD_CNTL_ST2		_MMIO(0xE20C0)
7055
#define _CPT_HDMIW_HDMIEDID_B		0xE5150
-
 
7056
#define CPT_HDMIW_HDMIEDID(pipe) _PIPE(pipe, \
-
 
7057
					_CPT_HDMIW_HDMIEDID_A, \
7127
#define   IBX_CP_READY(port)		((1 << 1) << (((port) - 1) * 4))
7058
					_CPT_HDMIW_HDMIEDID_B)
7128
#define   IBX_ELD_VALID(port)		((1 << 0) << (((port) - 1) * 4))
7059
#define _CPT_AUD_CNTL_ST_A		0xE50B4
7129
 
7060
#define _CPT_AUD_CNTL_ST_B		0xE51B4
-
 
7061
#define CPT_AUD_CNTL_ST(pipe) _PIPE(pipe, \
-
 
7062
					_CPT_AUD_CNTL_ST_A, \
7130
#define _CPT_HDMIW_HDMIEDID_A		0xE5050
Line 7063... Line 7131...
7063
					_CPT_AUD_CNTL_ST_B)
7131
#define _CPT_HDMIW_HDMIEDID_B		0xE5150
7064
#define CPT_AUD_CNTRL_ST2		0xE50C0
7132
#define CPT_HDMIW_HDMIEDID(pipe)	_MMIO_PIPE(pipe, _CPT_HDMIW_HDMIEDID_A, _CPT_HDMIW_HDMIEDID_B)
7065
 
7133
#define _CPT_AUD_CNTL_ST_A		0xE50B4
7066
#define _VLV_HDMIW_HDMIEDID_A		(VLV_DISPLAY_BASE + 0x62050)
7134
#define _CPT_AUD_CNTL_ST_B		0xE51B4
7067
#define _VLV_HDMIW_HDMIEDID_B		(VLV_DISPLAY_BASE + 0x62150)
7135
#define CPT_AUD_CNTL_ST(pipe)		_MMIO_PIPE(pipe, _CPT_AUD_CNTL_ST_A, _CPT_AUD_CNTL_ST_B)
Line 7068... Line 7136...
7068
#define VLV_HDMIW_HDMIEDID(pipe) _PIPE(pipe, \
7136
#define CPT_AUD_CNTRL_ST2		_MMIO(0xE50C0)
7069
					_VLV_HDMIW_HDMIEDID_A, \
7137
 
7070
					_VLV_HDMIW_HDMIEDID_B)
7138
#define _VLV_HDMIW_HDMIEDID_A		(VLV_DISPLAY_BASE + 0x62050)
7071
#define _VLV_AUD_CNTL_ST_A		(VLV_DISPLAY_BASE + 0x620B4)
-
 
7072
#define _VLV_AUD_CNTL_ST_B		(VLV_DISPLAY_BASE + 0x621B4)
-
 
7073
#define VLV_AUD_CNTL_ST(pipe) _PIPE(pipe, \
7139
#define _VLV_HDMIW_HDMIEDID_B		(VLV_DISPLAY_BASE + 0x62150)
7074
					_VLV_AUD_CNTL_ST_A, \
7140
#define VLV_HDMIW_HDMIEDID(pipe)	_MMIO_PIPE(pipe, _VLV_HDMIW_HDMIEDID_A, _VLV_HDMIW_HDMIEDID_B)
7075
					_VLV_AUD_CNTL_ST_B)
7141
#define _VLV_AUD_CNTL_ST_A		(VLV_DISPLAY_BASE + 0x620B4)
7076
#define VLV_AUD_CNTL_ST2		(VLV_DISPLAY_BASE + 0x620C0)
-
 
7077
 
-
 
7078
/* These are the 4 32-bit write offset registers for each stream
7142
#define _VLV_AUD_CNTL_ST_B		(VLV_DISPLAY_BASE + 0x621B4)
7079
 * output buffer.  It determines the offset from the
7143
#define VLV_AUD_CNTL_ST(pipe)		_MMIO_PIPE(pipe, _VLV_AUD_CNTL_ST_A, _VLV_AUD_CNTL_ST_B)
7080
 * 3DSTATE_SO_BUFFERs that the next streamed vertex output goes to.
7144
#define VLV_AUD_CNTL_ST2		_MMIO(VLV_DISPLAY_BASE + 0x620C0)
7081
 */
-
 
7082
#define GEN7_SO_WRITE_OFFSET(n)		(0x5280 + (n) * 4)
-
 
Line 7083... Line 7145...
7083
 
7145
 
7084
#define _IBX_AUD_CONFIG_A		0xe2000
7146
/* These are the 4 32-bit write offset registers for each stream
7085
#define _IBX_AUD_CONFIG_B		0xe2100
7147
 * output buffer.  It determines the offset from the
7086
#define IBX_AUD_CFG(pipe) _PIPE(pipe, \
7148
 * 3DSTATE_SO_BUFFERs that the next streamed vertex output goes to.
Line 7118... Line 7180...
7118
#define   AUD_CONFIG_DISABLE_NCTS		(1 << 3)
7180
#define   AUD_CONFIG_DISABLE_NCTS		(1 << 3)
Line 7119... Line 7181...
7119
 
7181
 
7120
/* HSW Audio */
7182
/* HSW Audio */
7121
#define _HSW_AUD_CONFIG_A		0x65000
7183
#define _HSW_AUD_CONFIG_A		0x65000
7122
#define _HSW_AUD_CONFIG_B		0x65100
7184
#define _HSW_AUD_CONFIG_B		0x65100
7123
#define HSW_AUD_CFG(pipe) _PIPE(pipe, \
-
 
7124
					_HSW_AUD_CONFIG_A, \
-
 
Line 7125... Line 7185...
7125
					_HSW_AUD_CONFIG_B)
7185
#define HSW_AUD_CFG(pipe)		_MMIO_PIPE(pipe, _HSW_AUD_CONFIG_A, _HSW_AUD_CONFIG_B)
7126
 
7186
 
7127
#define _HSW_AUD_MISC_CTRL_A		0x65010
7187
#define _HSW_AUD_MISC_CTRL_A		0x65010
7128
#define _HSW_AUD_MISC_CTRL_B		0x65110
-
 
7129
#define HSW_AUD_MISC_CTRL(pipe) _PIPE(pipe, \
-
 
Line 7130... Line 7188...
7130
					_HSW_AUD_MISC_CTRL_A, \
7188
#define _HSW_AUD_MISC_CTRL_B		0x65110
7131
					_HSW_AUD_MISC_CTRL_B)
7189
#define HSW_AUD_MISC_CTRL(pipe)		_MMIO_PIPE(pipe, _HSW_AUD_MISC_CTRL_A, _HSW_AUD_MISC_CTRL_B)
7132
 
7190
 
7133
#define _HSW_AUD_DIP_ELD_CTRL_ST_A	0x650b4
-
 
7134
#define _HSW_AUD_DIP_ELD_CTRL_ST_B	0x651b4
-
 
Line 7135... Line 7191...
7135
#define HSW_AUD_DIP_ELD_CTRL(pipe) _PIPE(pipe, \
7191
#define _HSW_AUD_DIP_ELD_CTRL_ST_A	0x650b4
7136
					_HSW_AUD_DIP_ELD_CTRL_ST_A, \
7192
#define _HSW_AUD_DIP_ELD_CTRL_ST_B	0x651b4
7137
					_HSW_AUD_DIP_ELD_CTRL_ST_B)
7193
#define HSW_AUD_DIP_ELD_CTRL(pipe)	_MMIO_PIPE(pipe, _HSW_AUD_DIP_ELD_CTRL_ST_A, _HSW_AUD_DIP_ELD_CTRL_ST_B)
7138
 
7194
 
7139
/* Audio Digital Converter */
-
 
7140
#define _HSW_AUD_DIG_CNVT_1		0x65080
-
 
7141
#define _HSW_AUD_DIG_CNVT_2		0x65180
7195
/* Audio Digital Converter */
Line 7142... Line 7196...
7142
#define AUD_DIG_CNVT(pipe) _PIPE(pipe, \
7196
#define _HSW_AUD_DIG_CNVT_1		0x65080
7143
					_HSW_AUD_DIG_CNVT_1, \
7197
#define _HSW_AUD_DIG_CNVT_2		0x65180
7144
					_HSW_AUD_DIG_CNVT_2)
7198
#define AUD_DIG_CNVT(pipe)		_MMIO_PIPE(pipe, _HSW_AUD_DIG_CNVT_1, _HSW_AUD_DIG_CNVT_2)
7145
#define DIP_PORT_SEL_MASK		0x3
-
 
7146
 
-
 
Line 7147... Line 7199...
7147
#define _HSW_AUD_EDID_DATA_A		0x65050
7199
#define DIP_PORT_SEL_MASK		0x3
7148
#define _HSW_AUD_EDID_DATA_B		0x65150
7200
 
7149
#define HSW_AUD_EDID_DATA(pipe) _PIPE(pipe, \
7201
#define _HSW_AUD_EDID_DATA_A		0x65050
7150
					_HSW_AUD_EDID_DATA_A, \
7202
#define _HSW_AUD_EDID_DATA_B		0x65150
7151
					_HSW_AUD_EDID_DATA_B)
7203
#define HSW_AUD_EDID_DATA(pipe)		_MMIO_PIPE(pipe, _HSW_AUD_EDID_DATA_A, _HSW_AUD_EDID_DATA_B)
7152
 
7204
 
Line 7153... Line 7205...
7153
#define HSW_AUD_PIPE_CONV_CFG		0x6507c
7205
#define HSW_AUD_PIPE_CONV_CFG		_MMIO(0x6507c)
7154
#define HSW_AUD_PIN_ELD_CP_VLD		0x650c0
7206
#define HSW_AUD_PIN_ELD_CP_VLD		_MMIO(0x650c0)
Line 7155... Line 7207...
7155
#define   AUDIO_INACTIVE(trans)		((1 << 3) << ((trans) * 4))
7207
#define   AUDIO_INACTIVE(trans)		((1 << 3) << ((trans) * 4))
7156
#define   AUDIO_OUTPUT_ENABLE(trans)	((1 << 2) << ((trans) * 4))
7208
#define   AUDIO_OUTPUT_ENABLE(trans)	((1 << 2) << ((trans) * 4))
7157
#define   AUDIO_CP_READY(trans)		((1 << 1) << ((trans) * 4))
7209
#define   AUDIO_CP_READY(trans)		((1 << 1) << ((trans) * 4))
7158
#define   AUDIO_ELD_VALID(trans)	((1 << 0) << ((trans) * 4))
7210
#define   AUDIO_ELD_VALID(trans)	((1 << 0) << ((trans) * 4))
7159
 
7211
 
7160
#define HSW_AUD_CHICKENBIT			0x65f10
7212
#define HSW_AUD_CHICKENBIT			_MMIO(0x65f10)
7161
#define   SKL_AUD_CODEC_WAKE_SIGNAL		(1 << 15)
7213
#define   SKL_AUD_CODEC_WAKE_SIGNAL		(1 << 15)
7162
 
7214
 
7163
/* HSW Power Wells */
7215
/* HSW Power Wells */
7164
#define HSW_PWR_WELL_BIOS			0x45400 /* CTL1 */
7216
#define HSW_PWR_WELL_BIOS			_MMIO(0x45400) /* CTL1 */
7165
#define HSW_PWR_WELL_DRIVER			0x45404 /* CTL2 */
7217
#define HSW_PWR_WELL_DRIVER			_MMIO(0x45404) /* CTL2 */
7166
#define HSW_PWR_WELL_KVMR			0x45408 /* CTL3 */
7218
#define HSW_PWR_WELL_KVMR			_MMIO(0x45408) /* CTL3 */
Line 7167... Line 7219...
7167
#define HSW_PWR_WELL_DEBUG			0x4540C /* CTL4 */
7219
#define HSW_PWR_WELL_DEBUG			_MMIO(0x4540C) /* CTL4 */
7168
#define   HSW_PWR_WELL_ENABLE_REQUEST		(1<<31)
7220
#define   HSW_PWR_WELL_ENABLE_REQUEST		(1<<31)
7169
#define   HSW_PWR_WELL_STATE_ENABLED		(1<<30)
7221
#define   HSW_PWR_WELL_STATE_ENABLED		(1<<30)
7170
#define HSW_PWR_WELL_CTL5			0x45410
7222
#define HSW_PWR_WELL_CTL5			_MMIO(0x45410)
7171
#define   HSW_PWR_WELL_ENABLE_SINGLE_STEP	(1<<31)
7223
#define   HSW_PWR_WELL_ENABLE_SINGLE_STEP	(1<<31)
7172
#define   HSW_PWR_WELL_PWR_GATE_OVERRIDE	(1<<20)
7224
#define   HSW_PWR_WELL_PWR_GATE_OVERRIDE	(1<<20)
Line 7173... Line 7225...
7173
#define   HSW_PWR_WELL_FORCE_ON			(1<<19)
7225
#define   HSW_PWR_WELL_FORCE_ON			(1<<19)
7174
#define HSW_PWR_WELL_CTL6			0x45414
7226
#define HSW_PWR_WELL_CTL6			_MMIO(0x45414)
7175
 
7227
 
7176
/* SKL Fuse Status */
7228
/* SKL Fuse Status */
7177
#define SKL_FUSE_STATUS				0x42000
7229
#define SKL_FUSE_STATUS				_MMIO(0x42000)
7178
#define  SKL_FUSE_DOWNLOAD_STATUS              (1<<31)
7230
#define  SKL_FUSE_DOWNLOAD_STATUS              (1<<31)
Line 7179... Line 7231...
7179
#define  SKL_FUSE_PG0_DIST_STATUS              (1<<27)
7231
#define  SKL_FUSE_PG0_DIST_STATUS              (1<<27)
7180
#define  SKL_FUSE_PG1_DIST_STATUS              (1<<26)
7232
#define  SKL_FUSE_PG1_DIST_STATUS              (1<<26)
7181
#define  SKL_FUSE_PG2_DIST_STATUS              (1<<25)
7233
#define  SKL_FUSE_PG2_DIST_STATUS              (1<<25)
7182
 
7234
 
Line 7213... Line 7265...
7213
#define  TRANS_DDI_EDP_INPUT_C_ONOFF	(6<<12)
7265
#define  TRANS_DDI_EDP_INPUT_C_ONOFF	(6<<12)
7214
#define  TRANS_DDI_DP_VC_PAYLOAD_ALLOC	(1<<8)
7266
#define  TRANS_DDI_DP_VC_PAYLOAD_ALLOC	(1<<8)
7215
#define  TRANS_DDI_BFI_ENABLE		(1<<4)
7267
#define  TRANS_DDI_BFI_ENABLE		(1<<4)
Line 7216... Line 7268...
7216
 
7268
 
7217
/* DisplayPort Transport Control */
7269
/* DisplayPort Transport Control */
7218
#define DP_TP_CTL_A			0x64040
7270
#define _DP_TP_CTL_A			0x64040
7219
#define DP_TP_CTL_B			0x64140
7271
#define _DP_TP_CTL_B			0x64140
7220
#define DP_TP_CTL(port) _PORT(port, DP_TP_CTL_A, DP_TP_CTL_B)
7272
#define DP_TP_CTL(port) _MMIO_PORT(port, _DP_TP_CTL_A, _DP_TP_CTL_B)
7221
#define  DP_TP_CTL_ENABLE			(1<<31)
7273
#define  DP_TP_CTL_ENABLE			(1<<31)
7222
#define  DP_TP_CTL_MODE_SST			(0<<27)
7274
#define  DP_TP_CTL_MODE_SST			(0<<27)
7223
#define  DP_TP_CTL_MODE_MST			(1<<27)
7275
#define  DP_TP_CTL_MODE_MST			(1<<27)
7224
#define  DP_TP_CTL_FORCE_ACT			(1<<25)
7276
#define  DP_TP_CTL_FORCE_ACT			(1<<25)
Line 7231... Line 7283...
7231
#define  DP_TP_CTL_LINK_TRAIN_IDLE		(2<<8)
7283
#define  DP_TP_CTL_LINK_TRAIN_IDLE		(2<<8)
7232
#define  DP_TP_CTL_LINK_TRAIN_NORMAL		(3<<8)
7284
#define  DP_TP_CTL_LINK_TRAIN_NORMAL		(3<<8)
7233
#define  DP_TP_CTL_SCRAMBLE_DISABLE		(1<<7)
7285
#define  DP_TP_CTL_SCRAMBLE_DISABLE		(1<<7)
Line 7234... Line 7286...
7234
 
7286
 
7235
/* DisplayPort Transport Status */
7287
/* DisplayPort Transport Status */
7236
#define DP_TP_STATUS_A			0x64044
7288
#define _DP_TP_STATUS_A			0x64044
7237
#define DP_TP_STATUS_B			0x64144
7289
#define _DP_TP_STATUS_B			0x64144
7238
#define DP_TP_STATUS(port) _PORT(port, DP_TP_STATUS_A, DP_TP_STATUS_B)
7290
#define DP_TP_STATUS(port) _MMIO_PORT(port, _DP_TP_STATUS_A, _DP_TP_STATUS_B)
7239
#define  DP_TP_STATUS_IDLE_DONE			(1<<25)
7291
#define  DP_TP_STATUS_IDLE_DONE			(1<<25)
7240
#define  DP_TP_STATUS_ACT_SENT			(1<<24)
7292
#define  DP_TP_STATUS_ACT_SENT			(1<<24)
7241
#define  DP_TP_STATUS_MODE_STATUS_MST		(1<<23)
7293
#define  DP_TP_STATUS_MODE_STATUS_MST		(1<<23)
7242
#define  DP_TP_STATUS_AUTOTRAIN_DONE		(1<<12)
7294
#define  DP_TP_STATUS_AUTOTRAIN_DONE		(1<<12)
7243
#define  DP_TP_STATUS_PAYLOAD_MAPPING_VC2	(3 << 8)
7295
#define  DP_TP_STATUS_PAYLOAD_MAPPING_VC2	(3 << 8)
7244
#define  DP_TP_STATUS_PAYLOAD_MAPPING_VC1	(3 << 4)
7296
#define  DP_TP_STATUS_PAYLOAD_MAPPING_VC1	(3 << 4)
Line 7245... Line 7297...
7245
#define  DP_TP_STATUS_PAYLOAD_MAPPING_VC0	(3 << 0)
7297
#define  DP_TP_STATUS_PAYLOAD_MAPPING_VC0	(3 << 0)
7246
 
7298
 
7247
/* DDI Buffer Control */
7299
/* DDI Buffer Control */
7248
#define DDI_BUF_CTL_A				0x64000
7300
#define _DDI_BUF_CTL_A				0x64000
7249
#define DDI_BUF_CTL_B				0x64100
7301
#define _DDI_BUF_CTL_B				0x64100
7250
#define DDI_BUF_CTL(port) _PORT(port, DDI_BUF_CTL_A, DDI_BUF_CTL_B)
7302
#define DDI_BUF_CTL(port) _MMIO_PORT(port, _DDI_BUF_CTL_A, _DDI_BUF_CTL_B)
7251
#define  DDI_BUF_CTL_ENABLE			(1<<31)
7303
#define  DDI_BUF_CTL_ENABLE			(1<<31)
7252
#define  DDI_BUF_TRANS_SELECT(n)	((n) << 24)
7304
#define  DDI_BUF_TRANS_SELECT(n)	((n) << 24)
7253
#define  DDI_BUF_EMP_MASK			(0xf<<24)
7305
#define  DDI_BUF_EMP_MASK			(0xf<<24)
Line 7258... Line 7310...
7258
#define  DDI_PORT_WIDTH_MASK			(7 << 1)
7310
#define  DDI_PORT_WIDTH_MASK			(7 << 1)
7259
#define  DDI_PORT_WIDTH_SHIFT			1
7311
#define  DDI_PORT_WIDTH_SHIFT			1
7260
#define  DDI_INIT_DISPLAY_DETECTED		(1<<0)
7312
#define  DDI_INIT_DISPLAY_DETECTED		(1<<0)
Line 7261... Line 7313...
7261
 
7313
 
7262
/* DDI Buffer Translations */
7314
/* DDI Buffer Translations */
7263
#define DDI_BUF_TRANS_A				0x64E00
7315
#define _DDI_BUF_TRANS_A		0x64E00
7264
#define DDI_BUF_TRANS_B				0x64E60
7316
#define _DDI_BUF_TRANS_B		0x64E60
7265
#define DDI_BUF_TRANS_LO(port, i) (_PORT(port, DDI_BUF_TRANS_A, DDI_BUF_TRANS_B) + (i) * 8)
7317
#define DDI_BUF_TRANS_LO(port, i)	_MMIO(_PORT(port, _DDI_BUF_TRANS_A, _DDI_BUF_TRANS_B) + (i) * 8)
Line 7266... Line 7318...
7266
#define DDI_BUF_TRANS_HI(port, i) (_PORT(port, DDI_BUF_TRANS_A, DDI_BUF_TRANS_B) + (i) * 8 + 4)
7318
#define DDI_BUF_TRANS_HI(port, i)	_MMIO(_PORT(port, _DDI_BUF_TRANS_A, _DDI_BUF_TRANS_B) + (i) * 8 + 4)
7267
 
7319
 
7268
/* Sideband Interface (SBI) is programmed indirectly, via
7320
/* Sideband Interface (SBI) is programmed indirectly, via
7269
 * SBI_ADDR, which contains the register offset; and SBI_DATA,
7321
 * SBI_ADDR, which contains the register offset; and SBI_DATA,
7270
 * which contains the payload */
7322
 * which contains the payload */
7271
#define SBI_ADDR			0xC6000
7323
#define SBI_ADDR			_MMIO(0xC6000)
7272
#define SBI_DATA			0xC6004
7324
#define SBI_DATA			_MMIO(0xC6004)
7273
#define SBI_CTL_STAT			0xC6008
7325
#define SBI_CTL_STAT			_MMIO(0xC6008)
7274
#define  SBI_CTL_DEST_ICLK		(0x0<<16)
7326
#define  SBI_CTL_DEST_ICLK		(0x0<<16)
7275
#define  SBI_CTL_DEST_MPHY		(0x1<<16)
7327
#define  SBI_CTL_DEST_MPHY		(0x1<<16)
7276
#define  SBI_CTL_OP_IORD		(0x2<<8)
7328
#define  SBI_CTL_OP_IORD		(0x2<<8)
Line 7281... Line 7333...
7281
#define  SBI_RESPONSE_SUCCESS		(0x0<<1)
7333
#define  SBI_RESPONSE_SUCCESS		(0x0<<1)
7282
#define  SBI_BUSY			(0x1<<0)
7334
#define  SBI_BUSY			(0x1<<0)
7283
#define  SBI_READY			(0x0<<0)
7335
#define  SBI_READY			(0x0<<0)
Line 7284... Line 7336...
7284
 
7336
 
-
 
7337
/* SBI offsets */
7285
/* SBI offsets */
7338
#define  SBI_SSCDIVINTPHASE			0x0200
7286
#define  SBI_SSCDIVINTPHASE6			0x0600
7339
#define  SBI_SSCDIVINTPHASE6			0x0600
7287
#define   SBI_SSCDIVINTPHASE_DIVSEL_MASK	((0x7f)<<1)
7340
#define   SBI_SSCDIVINTPHASE_DIVSEL_MASK	((0x7f)<<1)
7288
#define   SBI_SSCDIVINTPHASE_DIVSEL(x)		((x)<<1)
7341
#define   SBI_SSCDIVINTPHASE_DIVSEL(x)		((x)<<1)
7289
#define   SBI_SSCDIVINTPHASE_INCVAL_MASK	((0x7f)<<8)
7342
#define   SBI_SSCDIVINTPHASE_INCVAL_MASK	((0x7f)<<8)
7290
#define   SBI_SSCDIVINTPHASE_INCVAL(x)		((x)<<8)
7343
#define   SBI_SSCDIVINTPHASE_INCVAL(x)		((x)<<8)
7291
#define   SBI_SSCDIVINTPHASE_DIR(x)		((x)<<15)
7344
#define   SBI_SSCDIVINTPHASE_DIR(x)		((x)<<15)
-
 
7345
#define   SBI_SSCDIVINTPHASE_PROPAGATE		(1<<0)
7292
#define   SBI_SSCDIVINTPHASE_PROPAGATE		(1<<0)
7346
#define  SBI_SSCDITHPHASE			0x0204
7293
#define  SBI_SSCCTL				0x020c
7347
#define  SBI_SSCCTL				0x020c
7294
#define  SBI_SSCCTL6				0x060C
7348
#define  SBI_SSCCTL6				0x060C
7295
#define   SBI_SSCCTL_PATHALT			(1<<3)
7349
#define   SBI_SSCCTL_PATHALT			(1<<3)
7296
#define   SBI_SSCCTL_DISABLE			(1<<0)
7350
#define   SBI_SSCCTL_DISABLE			(1<<0)
Line 7299... Line 7353...
7299
#define  SBI_DBUFF0				0x2a00
7353
#define  SBI_DBUFF0				0x2a00
7300
#define  SBI_GEN0				0x1f00
7354
#define  SBI_GEN0				0x1f00
7301
#define   SBI_GEN0_CFG_BUFFENABLE_DISABLE	(1<<0)
7355
#define   SBI_GEN0_CFG_BUFFENABLE_DISABLE	(1<<0)
Line 7302... Line 7356...
7302
 
7356
 
7303
/* LPT PIXCLK_GATE */
7357
/* LPT PIXCLK_GATE */
7304
#define PIXCLK_GATE			0xC6020
7358
#define PIXCLK_GATE			_MMIO(0xC6020)
7305
#define  PIXCLK_GATE_UNGATE		(1<<0)
7359
#define  PIXCLK_GATE_UNGATE		(1<<0)
Line 7306... Line 7360...
7306
#define  PIXCLK_GATE_GATE		(0<<0)
7360
#define  PIXCLK_GATE_GATE		(0<<0)
7307
 
7361
 
7308
/* SPLL */
7362
/* SPLL */
7309
#define SPLL_CTL			0x46020
7363
#define SPLL_CTL			_MMIO(0x46020)
7310
#define  SPLL_PLL_ENABLE		(1<<31)
7364
#define  SPLL_PLL_ENABLE		(1<<31)
7311
#define  SPLL_PLL_SSC			(1<<28)
7365
#define  SPLL_PLL_SSC			(1<<28)
7312
#define  SPLL_PLL_NON_SSC		(2<<28)
7366
#define  SPLL_PLL_NON_SSC		(2<<28)
Line 7316... Line 7370...
7316
#define  SPLL_PLL_FREQ_1350MHz		(1<<26)
7370
#define  SPLL_PLL_FREQ_1350MHz		(1<<26)
7317
#define  SPLL_PLL_FREQ_2700MHz		(2<<26)
7371
#define  SPLL_PLL_FREQ_2700MHz		(2<<26)
7318
#define  SPLL_PLL_FREQ_MASK		(3<<26)
7372
#define  SPLL_PLL_FREQ_MASK		(3<<26)
Line 7319... Line 7373...
7319
 
7373
 
7320
/* WRPLL */
7374
/* WRPLL */
7321
#define WRPLL_CTL1			0x46040
7375
#define _WRPLL_CTL1			0x46040
7322
#define WRPLL_CTL2			0x46060
7376
#define _WRPLL_CTL2			0x46060
7323
#define WRPLL_CTL(pll)			(pll == 0 ? WRPLL_CTL1 : WRPLL_CTL2)
7377
#define WRPLL_CTL(pll)			_MMIO_PIPE(pll, _WRPLL_CTL1, _WRPLL_CTL2)
7324
#define  WRPLL_PLL_ENABLE		(1<<31)
7378
#define  WRPLL_PLL_ENABLE		(1<<31)
7325
#define  WRPLL_PLL_SSC			(1<<28)
7379
#define  WRPLL_PLL_SSC			(1<<28)
7326
#define  WRPLL_PLL_NON_SSC		(2<<28)
7380
#define  WRPLL_PLL_NON_SSC		(2<<28)
7327
#define  WRPLL_PLL_LCPLL		(3<<28)
7381
#define  WRPLL_PLL_LCPLL		(3<<28)
Line 7335... Line 7389...
7335
#define  WRPLL_DIVIDER_FEEDBACK(x)	((x)<<16)
7389
#define  WRPLL_DIVIDER_FEEDBACK(x)	((x)<<16)
7336
#define  WRPLL_DIVIDER_FB_SHIFT		16
7390
#define  WRPLL_DIVIDER_FB_SHIFT		16
7337
#define  WRPLL_DIVIDER_FB_MASK		(0xff<<16)
7391
#define  WRPLL_DIVIDER_FB_MASK		(0xff<<16)
Line 7338... Line 7392...
7338
 
7392
 
7339
/* Port clock selection */
7393
/* Port clock selection */
7340
#define PORT_CLK_SEL_A			0x46100
7394
#define _PORT_CLK_SEL_A			0x46100
7341
#define PORT_CLK_SEL_B			0x46104
7395
#define _PORT_CLK_SEL_B			0x46104
7342
#define PORT_CLK_SEL(port) _PORT(port, PORT_CLK_SEL_A, PORT_CLK_SEL_B)
7396
#define PORT_CLK_SEL(port) _MMIO_PORT(port, _PORT_CLK_SEL_A, _PORT_CLK_SEL_B)
7343
#define  PORT_CLK_SEL_LCPLL_2700	(0<<29)
7397
#define  PORT_CLK_SEL_LCPLL_2700	(0<<29)
7344
#define  PORT_CLK_SEL_LCPLL_1350	(1<<29)
7398
#define  PORT_CLK_SEL_LCPLL_1350	(1<<29)
7345
#define  PORT_CLK_SEL_LCPLL_810		(2<<29)
7399
#define  PORT_CLK_SEL_LCPLL_810		(2<<29)
7346
#define  PORT_CLK_SEL_SPLL		(3<<29)
7400
#define  PORT_CLK_SEL_SPLL		(3<<29)
Line 7349... Line 7403...
7349
#define  PORT_CLK_SEL_WRPLL2		(5<<29)
7403
#define  PORT_CLK_SEL_WRPLL2		(5<<29)
7350
#define  PORT_CLK_SEL_NONE		(7<<29)
7404
#define  PORT_CLK_SEL_NONE		(7<<29)
7351
#define  PORT_CLK_SEL_MASK		(7<<29)
7405
#define  PORT_CLK_SEL_MASK		(7<<29)
Line 7352... Line 7406...
7352
 
7406
 
7353
/* Transcoder clock selection */
7407
/* Transcoder clock selection */
7354
#define TRANS_CLK_SEL_A			0x46140
7408
#define _TRANS_CLK_SEL_A		0x46140
7355
#define TRANS_CLK_SEL_B			0x46144
7409
#define _TRANS_CLK_SEL_B		0x46144
7356
#define TRANS_CLK_SEL(tran) _TRANSCODER(tran, TRANS_CLK_SEL_A, TRANS_CLK_SEL_B)
7410
#define TRANS_CLK_SEL(tran) _MMIO_TRANS(tran, _TRANS_CLK_SEL_A, _TRANS_CLK_SEL_B)
7357
/* For each transcoder, we need to select the corresponding port clock */
7411
/* For each transcoder, we need to select the corresponding port clock */
7358
#define  TRANS_CLK_SEL_DISABLED		(0x0<<29)
7412
#define  TRANS_CLK_SEL_DISABLED		(0x0<<29)
Line 7359... Line 7413...
7359
#define  TRANS_CLK_SEL_PORT(x)		(((x)+1)<<29)
7413
#define  TRANS_CLK_SEL_PORT(x)		(((x)+1)<<29)
Line 7360... Line 7414...
7360
 
7414
 
7361
#define CDCLK_FREQ			0x46200
7415
#define CDCLK_FREQ			_MMIO(0x46200)
7362
 
7416
 
7363
#define TRANSA_MSA_MISC			0x60410
7417
#define _TRANSA_MSA_MISC		0x60410
7364
#define TRANSB_MSA_MISC			0x61410
7418
#define _TRANSB_MSA_MISC		0x61410
Line 7365... Line 7419...
7365
#define TRANSC_MSA_MISC			0x62410
7419
#define _TRANSC_MSA_MISC		0x62410
7366
#define TRANS_EDP_MSA_MISC		0x6f410
7420
#define _TRANS_EDP_MSA_MISC		0x6f410
7367
#define TRANS_MSA_MISC(tran) _TRANSCODER2(tran, TRANSA_MSA_MISC)
7421
#define TRANS_MSA_MISC(tran) _MMIO_TRANS2(tran, _TRANSA_MSA_MISC)
7368
 
7422
 
7369
#define  TRANS_MSA_SYNC_CLK		(1<<0)
7423
#define  TRANS_MSA_SYNC_CLK		(1<<0)
7370
#define  TRANS_MSA_6_BPC		(0<<5)
7424
#define  TRANS_MSA_6_BPC		(0<<5)
Line 7371... Line 7425...
7371
#define  TRANS_MSA_8_BPC		(1<<5)
7425
#define  TRANS_MSA_8_BPC		(1<<5)
7372
#define  TRANS_MSA_10_BPC		(2<<5)
7426
#define  TRANS_MSA_10_BPC		(2<<5)
7373
#define  TRANS_MSA_12_BPC		(3<<5)
7427
#define  TRANS_MSA_12_BPC		(3<<5)
7374
#define  TRANS_MSA_16_BPC		(4<<5)
7428
#define  TRANS_MSA_16_BPC		(4<<5)
7375
 
7429
 
7376
/* LCPLL Control */
7430
/* LCPLL Control */
7377
#define LCPLL_CTL			0x130040
7431
#define LCPLL_CTL			_MMIO(0x130040)
Line 7392... Line 7446...
7392
/*
7446
/*
7393
 * SKL Clocks
7447
 * SKL Clocks
7394
 */
7448
 */
Line 7395... Line 7449...
7395
 
7449
 
7396
/* CDCLK_CTL */
7450
/* CDCLK_CTL */
7397
#define CDCLK_CTL			0x46000
7451
#define CDCLK_CTL			_MMIO(0x46000)
7398
#define  CDCLK_FREQ_SEL_MASK		(3<<26)
7452
#define  CDCLK_FREQ_SEL_MASK		(3<<26)
7399
#define  CDCLK_FREQ_450_432		(0<<26)
7453
#define  CDCLK_FREQ_450_432		(0<<26)
7400
#define  CDCLK_FREQ_540			(1<<26)
7454
#define  CDCLK_FREQ_540			(1<<26)
7401
#define  CDCLK_FREQ_337_308		(2<<26)
7455
#define  CDCLK_FREQ_337_308		(2<<26)
Line 7408... Line 7462...
7408
#define  BXT_CDCLK_CD2X_DIV_SEL_2	(2<<22)
7462
#define  BXT_CDCLK_CD2X_DIV_SEL_2	(2<<22)
7409
#define  BXT_CDCLK_CD2X_DIV_SEL_4	(3<<22)
7463
#define  BXT_CDCLK_CD2X_DIV_SEL_4	(3<<22)
7410
#define  BXT_CDCLK_SSA_PRECHARGE_ENABLE	(1<<16)
7464
#define  BXT_CDCLK_SSA_PRECHARGE_ENABLE	(1<<16)
Line 7411... Line 7465...
7411
 
7465
 
7412
/* LCPLL_CTL */
7466
/* LCPLL_CTL */
7413
#define LCPLL1_CTL		0x46010
7467
#define LCPLL1_CTL		_MMIO(0x46010)
7414
#define LCPLL2_CTL		0x46014
7468
#define LCPLL2_CTL		_MMIO(0x46014)
Line 7415... Line 7469...
7415
#define  LCPLL_PLL_ENABLE	(1<<31)
7469
#define  LCPLL_PLL_ENABLE	(1<<31)
7416
 
7470
 
7417
/* DPLL control1 */
7471
/* DPLL control1 */
7418
#define DPLL_CTRL1		0x6C058
7472
#define DPLL_CTRL1		_MMIO(0x6C058)
7419
#define  DPLL_CTRL1_HDMI_MODE(id)		(1<<((id)*6+5))
7473
#define  DPLL_CTRL1_HDMI_MODE(id)		(1<<((id)*6+5))
7420
#define  DPLL_CTRL1_SSC(id)			(1<<((id)*6+4))
7474
#define  DPLL_CTRL1_SSC(id)			(1<<((id)*6+4))
7421
#define  DPLL_CTRL1_LINK_RATE_MASK(id)		(7<<((id)*6+1))
7475
#define  DPLL_CTRL1_LINK_RATE_MASK(id)		(7<<((id)*6+1))
Line 7428... Line 7482...
7428
#define  DPLL_CTRL1_LINK_RATE_1620		3
7482
#define  DPLL_CTRL1_LINK_RATE_1620		3
7429
#define  DPLL_CTRL1_LINK_RATE_1080		4
7483
#define  DPLL_CTRL1_LINK_RATE_1080		4
7430
#define  DPLL_CTRL1_LINK_RATE_2160		5
7484
#define  DPLL_CTRL1_LINK_RATE_2160		5
Line 7431... Line 7485...
7431
 
7485
 
7432
/* DPLL control2 */
7486
/* DPLL control2 */
7433
#define DPLL_CTRL2				0x6C05C
7487
#define DPLL_CTRL2				_MMIO(0x6C05C)
7434
#define  DPLL_CTRL2_DDI_CLK_OFF(port)		(1<<((port)+15))
7488
#define  DPLL_CTRL2_DDI_CLK_OFF(port)		(1<<((port)+15))
7435
#define  DPLL_CTRL2_DDI_CLK_SEL_MASK(port)	(3<<((port)*3+1))
7489
#define  DPLL_CTRL2_DDI_CLK_SEL_MASK(port)	(3<<((port)*3+1))
7436
#define  DPLL_CTRL2_DDI_CLK_SEL_SHIFT(port)    ((port)*3+1)
7490
#define  DPLL_CTRL2_DDI_CLK_SEL_SHIFT(port)    ((port)*3+1)
7437
#define  DPLL_CTRL2_DDI_CLK_SEL(clk, port)	((clk)<<((port)*3+1))
7491
#define  DPLL_CTRL2_DDI_CLK_SEL(clk, port)	((clk)<<((port)*3+1))
Line 7438... Line 7492...
7438
#define  DPLL_CTRL2_DDI_SEL_OVERRIDE(port)     (1<<((port)*3))
7492
#define  DPLL_CTRL2_DDI_SEL_OVERRIDE(port)     (1<<((port)*3))
7439
 
7493
 
7440
/* DPLL Status */
7494
/* DPLL Status */
Line 7441... Line 7495...
7441
#define DPLL_STATUS	0x6C060
7495
#define DPLL_STATUS	_MMIO(0x6C060)
7442
#define  DPLL_LOCK(id) (1<<((id)*8))
7496
#define  DPLL_LOCK(id) (1<<((id)*8))
7443
 
7497
 
7444
/* DPLL cfg */
7498
/* DPLL cfg */
7445
#define DPLL1_CFGCR1	0x6C040
7499
#define _DPLL1_CFGCR1	0x6C040
7446
#define DPLL2_CFGCR1	0x6C048
7500
#define _DPLL2_CFGCR1	0x6C048
7447
#define DPLL3_CFGCR1	0x6C050
7501
#define _DPLL3_CFGCR1	0x6C050
7448
#define  DPLL_CFGCR1_FREQ_ENABLE	(1<<31)
7502
#define  DPLL_CFGCR1_FREQ_ENABLE	(1<<31)
Line 7449... Line 7503...
7449
#define  DPLL_CFGCR1_DCO_FRACTION_MASK	(0x7fff<<9)
7503
#define  DPLL_CFGCR1_DCO_FRACTION_MASK	(0x7fff<<9)
7450
#define  DPLL_CFGCR1_DCO_FRACTION(x)	((x)<<9)
7504
#define  DPLL_CFGCR1_DCO_FRACTION(x)	((x)<<9)
7451
#define  DPLL_CFGCR1_DCO_INTEGER_MASK	(0x1ff)
7505
#define  DPLL_CFGCR1_DCO_INTEGER_MASK	(0x1ff)
7452
 
7506
 
7453
#define DPLL1_CFGCR2	0x6C044
7507
#define _DPLL1_CFGCR2	0x6C044
7454
#define DPLL2_CFGCR2	0x6C04C
7508
#define _DPLL2_CFGCR2	0x6C04C
7455
#define DPLL3_CFGCR2	0x6C054
7509
#define _DPLL3_CFGCR2	0x6C054
7456
#define  DPLL_CFGCR2_QDIV_RATIO_MASK	(0xff<<8)
7510
#define  DPLL_CFGCR2_QDIV_RATIO_MASK	(0xff<<8)
Line 7468... Line 7522...
7468
#define  DPLL_CFGCR2_PDIV_2 (1<<2)
7522
#define  DPLL_CFGCR2_PDIV_2 (1<<2)
7469
#define  DPLL_CFGCR2_PDIV_3 (2<<2)
7523
#define  DPLL_CFGCR2_PDIV_3 (2<<2)
7470
#define  DPLL_CFGCR2_PDIV_7 (4<<2)
7524
#define  DPLL_CFGCR2_PDIV_7 (4<<2)
7471
#define  DPLL_CFGCR2_CENTRAL_FREQ_MASK	(3)
7525
#define  DPLL_CFGCR2_CENTRAL_FREQ_MASK	(3)
Line 7472... Line 7526...
7472
 
7526
 
7473
#define DPLL_CFGCR1(id) (DPLL1_CFGCR1 + ((id) - SKL_DPLL1) * 8)
7527
#define DPLL_CFGCR1(id)	_MMIO_PIPE((id) - SKL_DPLL1, _DPLL1_CFGCR1, _DPLL2_CFGCR1)
Line 7474... Line 7528...
7474
#define DPLL_CFGCR2(id) (DPLL1_CFGCR2 + ((id) - SKL_DPLL1) * 8)
7528
#define DPLL_CFGCR2(id)	_MMIO_PIPE((id) - SKL_DPLL1, _DPLL1_CFGCR2, _DPLL2_CFGCR2)
7475
 
7529
 
7476
/* BXT display engine PLL */
7530
/* BXT display engine PLL */
7477
#define BXT_DE_PLL_CTL			0x6d000
7531
#define BXT_DE_PLL_CTL			_MMIO(0x6d000)
Line 7478... Line 7532...
7478
#define   BXT_DE_PLL_RATIO(x)		(x)	/* {60,65,100} * 19.2MHz */
7532
#define   BXT_DE_PLL_RATIO(x)		(x)	/* {60,65,100} * 19.2MHz */
7479
#define   BXT_DE_PLL_RATIO_MASK		0xff
7533
#define   BXT_DE_PLL_RATIO_MASK		0xff
7480
 
7534
 
Line 7481... Line 7535...
7481
#define BXT_DE_PLL_ENABLE		0x46070
7535
#define BXT_DE_PLL_ENABLE		_MMIO(0x46070)
7482
#define   BXT_DE_PLL_PLL_ENABLE		(1 << 31)
7536
#define   BXT_DE_PLL_PLL_ENABLE		(1 << 31)
-
 
7537
#define   BXT_DE_PLL_LOCK		(1 << 30)
7483
#define   BXT_DE_PLL_LOCK		(1 << 30)
7538
 
7484
 
7539
/* GEN9 DC */
7485
/* GEN9 DC */
7540
#define DC_STATE_EN			_MMIO(0x45504)
7486
#define DC_STATE_EN			0x45504
7541
#define  DC_STATE_DISABLE		0
Line 7487... Line 7542...
7487
#define  DC_STATE_EN_UPTO_DC5		(1<<0)
7542
#define  DC_STATE_EN_UPTO_DC5		(1<<0)
7488
#define  DC_STATE_EN_DC9		(1<<3)
7543
#define  DC_STATE_EN_DC9		(1<<3)
Line 7489... Line 7544...
7489
#define  DC_STATE_EN_UPTO_DC6		(2<<0)
7544
#define  DC_STATE_EN_UPTO_DC6		(2<<0)
7490
#define  DC_STATE_EN_UPTO_DC5_DC6_MASK   0x3
7545
#define  DC_STATE_EN_UPTO_DC5_DC6_MASK   0x3
7491
 
7546
 
7492
#define  DC_STATE_DEBUG                  0x45520
7547
#define  DC_STATE_DEBUG                  _MMIO(0x45520)
7493
#define  DC_STATE_DEBUG_MASK_MEMORY_UP	(1<<1)
7548
#define  DC_STATE_DEBUG_MASK_MEMORY_UP	(1<<1)
7494
 
7549
 
7495
/* Please see hsw_read_dcomp() and hsw_write_dcomp() before using this register,
7550
/* Please see hsw_read_dcomp() and hsw_write_dcomp() before using this register,
Line 7496... Line 7551...
7496
 * since on HSW we can't write to it using I915_WRITE. */
7551
 * since on HSW we can't write to it using I915_WRITE. */
7497
#define D_COMP_HSW			(MCHBAR_MIRROR_BASE_SNB + 0x5F0C)
7552
#define D_COMP_HSW			_MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5F0C)
7498
#define D_COMP_BDW			0x138144
7553
#define D_COMP_BDW			_MMIO(0x138144)
7499
#define  D_COMP_RCOMP_IN_PROGRESS	(1<<9)
7554
#define  D_COMP_RCOMP_IN_PROGRESS	(1<<9)
7500
#define  D_COMP_COMP_FORCE		(1<<8)
-
 
7501
#define  D_COMP_COMP_DISABLE		(1<<0)
7555
#define  D_COMP_COMP_FORCE		(1<<8)
7502
 
7556
#define  D_COMP_COMP_DISABLE		(1<<0)
7503
/* Pipe WM_LINETIME - watermark line time */
7557
 
7504
#define PIPE_WM_LINETIME_A		0x45270
7558
/* Pipe WM_LINETIME - watermark line time */
Line 7505... Line 7559...
7505
#define PIPE_WM_LINETIME_B		0x45274
7559
#define _PIPE_WM_LINETIME_A		0x45270
7506
#define PIPE_WM_LINETIME(pipe) _PIPE(pipe, PIPE_WM_LINETIME_A, \
7560
#define _PIPE_WM_LINETIME_B		0x45274
7507
					   PIPE_WM_LINETIME_B)
7561
#define PIPE_WM_LINETIME(pipe) _MMIO_PIPE(pipe, _PIPE_WM_LINETIME_A, _PIPE_WM_LINETIME_B)
7508
#define   PIPE_WM_LINETIME_MASK			(0x1ff)
7562
#define   PIPE_WM_LINETIME_MASK			(0x1ff)
-
 
7563
#define   PIPE_WM_LINETIME_TIME(x)		((x))
7509
#define   PIPE_WM_LINETIME_TIME(x)		((x))
7564
#define   PIPE_WM_LINETIME_IPS_LINETIME_MASK	(0x1ff<<16)
7510
#define   PIPE_WM_LINETIME_IPS_LINETIME_MASK	(0x1ff<<16)
7565
#define   PIPE_WM_LINETIME_IPS_LINETIME(x)	((x)<<16)
7511
#define   PIPE_WM_LINETIME_IPS_LINETIME(x)	((x)<<16)
7566
 
Line 7512... Line 7567...
7512
 
7567
/* SFUSE_STRAP */
7513
/* SFUSE_STRAP */
7568
#define SFUSE_STRAP			_MMIO(0xc2014)
Line 7514... Line 7569...
7514
#define SFUSE_STRAP			0xc2014
7569
#define  SFUSE_STRAP_FUSE_LOCK		(1<<13)
7515
#define  SFUSE_STRAP_FUSE_LOCK		(1<<13)
7570
#define  SFUSE_STRAP_DISPLAY_DISABLED	(1<<7)
7516
#define  SFUSE_STRAP_DISPLAY_DISABLED	(1<<7)
7571
#define  SFUSE_STRAP_CRT_DISABLED	(1<<6)
7517
#define  SFUSE_STRAP_DDIB_DETECTED	(1<<2)
7572
#define  SFUSE_STRAP_DDIB_DETECTED	(1<<2)
Line 7518... Line 7573...
7518
#define  SFUSE_STRAP_DDIC_DETECTED	(1<<1)
7573
#define  SFUSE_STRAP_DDIC_DETECTED	(1<<1)
Line 7556... Line 7611...
7556
#define _PIPE_B_CSC_PREOFF_LO	0x49138
7611
#define _PIPE_B_CSC_PREOFF_LO	0x49138
7557
#define _PIPE_B_CSC_POSTOFF_HI	0x49140
7612
#define _PIPE_B_CSC_POSTOFF_HI	0x49140
7558
#define _PIPE_B_CSC_POSTOFF_ME	0x49144
7613
#define _PIPE_B_CSC_POSTOFF_ME	0x49144
7559
#define _PIPE_B_CSC_POSTOFF_LO	0x49148
7614
#define _PIPE_B_CSC_POSTOFF_LO	0x49148
Line 7560... Line 7615...
7560
 
7615
 
7561
#define PIPE_CSC_COEFF_RY_GY(pipe) _PIPE(pipe, _PIPE_A_CSC_COEFF_RY_GY, _PIPE_B_CSC_COEFF_RY_GY)
7616
#define PIPE_CSC_COEFF_RY_GY(pipe)	_MMIO_PIPE(pipe, _PIPE_A_CSC_COEFF_RY_GY, _PIPE_B_CSC_COEFF_RY_GY)
7562
#define PIPE_CSC_COEFF_BY(pipe) _PIPE(pipe, _PIPE_A_CSC_COEFF_BY, _PIPE_B_CSC_COEFF_BY)
7617
#define PIPE_CSC_COEFF_BY(pipe)		_MMIO_PIPE(pipe, _PIPE_A_CSC_COEFF_BY, _PIPE_B_CSC_COEFF_BY)
7563
#define PIPE_CSC_COEFF_RU_GU(pipe) _PIPE(pipe, _PIPE_A_CSC_COEFF_RU_GU, _PIPE_B_CSC_COEFF_RU_GU)
7618
#define PIPE_CSC_COEFF_RU_GU(pipe)	_MMIO_PIPE(pipe, _PIPE_A_CSC_COEFF_RU_GU, _PIPE_B_CSC_COEFF_RU_GU)
7564
#define PIPE_CSC_COEFF_BU(pipe) _PIPE(pipe, _PIPE_A_CSC_COEFF_BU, _PIPE_B_CSC_COEFF_BU)
7619
#define PIPE_CSC_COEFF_BU(pipe)		_MMIO_PIPE(pipe, _PIPE_A_CSC_COEFF_BU, _PIPE_B_CSC_COEFF_BU)
7565
#define PIPE_CSC_COEFF_RV_GV(pipe) _PIPE(pipe, _PIPE_A_CSC_COEFF_RV_GV, _PIPE_B_CSC_COEFF_RV_GV)
7620
#define PIPE_CSC_COEFF_RV_GV(pipe)	_MMIO_PIPE(pipe, _PIPE_A_CSC_COEFF_RV_GV, _PIPE_B_CSC_COEFF_RV_GV)
7566
#define PIPE_CSC_COEFF_BV(pipe) _PIPE(pipe, _PIPE_A_CSC_COEFF_BV, _PIPE_B_CSC_COEFF_BV)
7621
#define PIPE_CSC_COEFF_BV(pipe)		_MMIO_PIPE(pipe, _PIPE_A_CSC_COEFF_BV, _PIPE_B_CSC_COEFF_BV)
7567
#define PIPE_CSC_MODE(pipe) _PIPE(pipe, _PIPE_A_CSC_MODE, _PIPE_B_CSC_MODE)
7622
#define PIPE_CSC_MODE(pipe)		_MMIO_PIPE(pipe, _PIPE_A_CSC_MODE, _PIPE_B_CSC_MODE)
7568
#define PIPE_CSC_PREOFF_HI(pipe) _PIPE(pipe, _PIPE_A_CSC_PREOFF_HI, _PIPE_B_CSC_PREOFF_HI)
7623
#define PIPE_CSC_PREOFF_HI(pipe)	_MMIO_PIPE(pipe, _PIPE_A_CSC_PREOFF_HI, _PIPE_B_CSC_PREOFF_HI)
7569
#define PIPE_CSC_PREOFF_ME(pipe) _PIPE(pipe, _PIPE_A_CSC_PREOFF_ME, _PIPE_B_CSC_PREOFF_ME)
7624
#define PIPE_CSC_PREOFF_ME(pipe)	_MMIO_PIPE(pipe, _PIPE_A_CSC_PREOFF_ME, _PIPE_B_CSC_PREOFF_ME)
7570
#define PIPE_CSC_PREOFF_LO(pipe) _PIPE(pipe, _PIPE_A_CSC_PREOFF_LO, _PIPE_B_CSC_PREOFF_LO)
7625
#define PIPE_CSC_PREOFF_LO(pipe)	_MMIO_PIPE(pipe, _PIPE_A_CSC_PREOFF_LO, _PIPE_B_CSC_PREOFF_LO)
7571
#define PIPE_CSC_POSTOFF_HI(pipe) _PIPE(pipe, _PIPE_A_CSC_POSTOFF_HI, _PIPE_B_CSC_POSTOFF_HI)
7626
#define PIPE_CSC_POSTOFF_HI(pipe)	_MMIO_PIPE(pipe, _PIPE_A_CSC_POSTOFF_HI, _PIPE_B_CSC_POSTOFF_HI)
7572
#define PIPE_CSC_POSTOFF_ME(pipe) _PIPE(pipe, _PIPE_A_CSC_POSTOFF_ME, _PIPE_B_CSC_POSTOFF_ME)
7627
#define PIPE_CSC_POSTOFF_ME(pipe)	_MMIO_PIPE(pipe, _PIPE_A_CSC_POSTOFF_ME, _PIPE_B_CSC_POSTOFF_ME)
Line 7573... Line 7628...
7573
#define PIPE_CSC_POSTOFF_LO(pipe) _PIPE(pipe, _PIPE_A_CSC_POSTOFF_LO, _PIPE_B_CSC_POSTOFF_LO)
7628
#define PIPE_CSC_POSTOFF_LO(pipe)	_MMIO_PIPE(pipe, _PIPE_A_CSC_POSTOFF_LO, _PIPE_B_CSC_POSTOFF_LO)
Line 7574... Line 7629...
7574
 
7629
 
-
 
7630
/* MIPI DSI registers */
Line 7575... Line 7631...
7575
/* MIPI DSI registers */
7631
 
7576
 
7632
#define _MIPI_PORT(port, a, c)	_PORT3(port, a, 0, c)	/* ports A and C only */
Line 7577... Line 7633...
7577
#define _MIPI_PORT(port, a, c)	_PORT3(port, a, 0, c)	/* ports A and C only */
7633
#define _MMIO_MIPI(port, a, c)	_MMIO(_MIPI_PORT(port, a, c))
7578
 
7634
 
7579
/* BXT MIPI clock controls */
7635
/* BXT MIPI clock controls */
7580
#define BXT_MAX_VAR_OUTPUT_KHZ			39500
7636
#define BXT_MAX_VAR_OUTPUT_KHZ			39500
7581
 
7637
 
7582
#define BXT_MIPI_CLOCK_CTL			0x46090
7638
#define BXT_MIPI_CLOCK_CTL			_MMIO(0x46090)
Line 7639... Line 7695...
7639
		(3 << BXT_MIPI_DPHY_DIV_SHIFT(port))
7695
		(3 << BXT_MIPI_DPHY_DIV_SHIFT(port))
Line 7640... Line 7696...
7640
 
7696
 
7641
/* BXT MIPI mode configure */
7697
/* BXT MIPI mode configure */
7642
#define  _BXT_MIPIA_TRANS_HACTIVE			0x6B0F8
7698
#define  _BXT_MIPIA_TRANS_HACTIVE			0x6B0F8
7643
#define  _BXT_MIPIC_TRANS_HACTIVE			0x6B8F8
7699
#define  _BXT_MIPIC_TRANS_HACTIVE			0x6B8F8
7644
#define  BXT_MIPI_TRANS_HACTIVE(tc)	_MIPI_PORT(tc, \
7700
#define  BXT_MIPI_TRANS_HACTIVE(tc)	_MMIO_MIPI(tc, \
Line 7645... Line 7701...
7645
		_BXT_MIPIA_TRANS_HACTIVE, _BXT_MIPIC_TRANS_HACTIVE)
7701
		_BXT_MIPIA_TRANS_HACTIVE, _BXT_MIPIC_TRANS_HACTIVE)
7646
 
7702
 
7647
#define  _BXT_MIPIA_TRANS_VACTIVE			0x6B0FC
7703
#define  _BXT_MIPIA_TRANS_VACTIVE			0x6B0FC
7648
#define  _BXT_MIPIC_TRANS_VACTIVE			0x6B8FC
7704
#define  _BXT_MIPIC_TRANS_VACTIVE			0x6B8FC
Line 7649... Line 7705...
7649
#define  BXT_MIPI_TRANS_VACTIVE(tc)	_MIPI_PORT(tc, \
7705
#define  BXT_MIPI_TRANS_VACTIVE(tc)	_MMIO_MIPI(tc, \
7650
		_BXT_MIPIA_TRANS_VACTIVE, _BXT_MIPIC_TRANS_VACTIVE)
7706
		_BXT_MIPIA_TRANS_VACTIVE, _BXT_MIPIC_TRANS_VACTIVE)
7651
 
7707
 
7652
#define  _BXT_MIPIA_TRANS_VTOTAL			0x6B100
7708
#define  _BXT_MIPIA_TRANS_VTOTAL			0x6B100
Line 7653... Line 7709...
7653
#define  _BXT_MIPIC_TRANS_VTOTAL			0x6B900
7709
#define  _BXT_MIPIC_TRANS_VTOTAL			0x6B900
7654
#define  BXT_MIPI_TRANS_VTOTAL(tc)	_MIPI_PORT(tc, \
7710
#define  BXT_MIPI_TRANS_VTOTAL(tc)	_MMIO_MIPI(tc, \
7655
		_BXT_MIPIA_TRANS_VTOTAL, _BXT_MIPIC_TRANS_VTOTAL)
7711
		_BXT_MIPIA_TRANS_VTOTAL, _BXT_MIPIC_TRANS_VTOTAL)
7656
 
7712
 
7657
#define BXT_DSI_PLL_CTL			0x161000
7713
#define BXT_DSI_PLL_CTL			_MMIO(0x161000)
7658
#define  BXT_DSI_PLL_PVD_RATIO_SHIFT	16
7714
#define  BXT_DSI_PLL_PVD_RATIO_SHIFT	16
Line 7668... Line 7724...
7668
#define  BXT_DSI_FREQ_SEL_MASK		(0xF << BXT_DSI_FREQ_SEL_SHIFT)
7724
#define  BXT_DSI_FREQ_SEL_MASK		(0xF << BXT_DSI_FREQ_SEL_SHIFT)
Line 7669... Line 7725...
7669
 
7725
 
7670
#define BXT_DSI_PLL_RATIO_MAX		0x7D
7726
#define BXT_DSI_PLL_RATIO_MAX		0x7D
7671
#define BXT_DSI_PLL_RATIO_MIN		0x22
7727
#define BXT_DSI_PLL_RATIO_MIN		0x22
7672
#define BXT_DSI_PLL_RATIO_MASK		0xFF
7728
#define BXT_DSI_PLL_RATIO_MASK		0xFF
Line 7673... Line 7729...
7673
#define BXT_REF_CLOCK_KHZ		19500
7729
#define BXT_REF_CLOCK_KHZ		19200
7674
 
7730
 
7675
#define BXT_DSI_PLL_ENABLE		0x46080
7731
#define BXT_DSI_PLL_ENABLE		_MMIO(0x46080)
Line 7676... Line 7732...
7676
#define  BXT_DSI_PLL_DO_ENABLE		(1 << 31)
7732
#define  BXT_DSI_PLL_DO_ENABLE		(1 << 31)
7677
#define  BXT_DSI_PLL_LOCKED		(1 << 30)
7733
#define  BXT_DSI_PLL_LOCKED		(1 << 30)
7678
 
7734
 
Line 7679... Line 7735...
7679
#define _MIPIA_PORT_CTRL			(VLV_DISPLAY_BASE + 0x61190)
7735
#define _MIPIA_PORT_CTRL			(VLV_DISPLAY_BASE + 0x61190)
7680
#define _MIPIC_PORT_CTRL			(VLV_DISPLAY_BASE + 0x61700)
7736
#define _MIPIC_PORT_CTRL			(VLV_DISPLAY_BASE + 0x61700)
7681
#define MIPI_PORT_CTRL(port)	_MIPI_PORT(port, _MIPIA_PORT_CTRL, _MIPIC_PORT_CTRL)
7737
#define MIPI_PORT_CTRL(port)	_MMIO_MIPI(port, _MIPIA_PORT_CTRL, _MIPIC_PORT_CTRL)
7682
 
7738
 
7683
 /* BXT port control */
-
 
Line 7684... Line 7739...
7684
#define _BXT_MIPIA_PORT_CTRL				0x6B0C0
7739
 /* BXT port control */
7685
#define _BXT_MIPIC_PORT_CTRL				0x6B8C0
7740
#define _BXT_MIPIA_PORT_CTRL				0x6B0C0
7686
#define BXT_MIPI_PORT_CTRL(tc)	_MIPI_PORT(tc, _BXT_MIPIA_PORT_CTRL, \
7741
#define _BXT_MIPIC_PORT_CTRL				0x6B8C0
7687
						_BXT_MIPIC_PORT_CTRL)
7742
#define BXT_MIPI_PORT_CTRL(tc)	_MMIO_MIPI(tc, _BXT_MIPIA_PORT_CTRL, _BXT_MIPIC_PORT_CTRL)
Line 7726... Line 7781...
7726
#define  LANE_CONFIGURATION_DUAL_LINK_A			(1 << 0)
7781
#define  LANE_CONFIGURATION_DUAL_LINK_A			(1 << 0)
7727
#define  LANE_CONFIGURATION_DUAL_LINK_B			(2 << 0)
7782
#define  LANE_CONFIGURATION_DUAL_LINK_B			(2 << 0)
Line 7728... Line 7783...
7728
 
7783
 
7729
#define _MIPIA_TEARING_CTRL			(VLV_DISPLAY_BASE + 0x61194)
7784
#define _MIPIA_TEARING_CTRL			(VLV_DISPLAY_BASE + 0x61194)
7730
#define _MIPIC_TEARING_CTRL			(VLV_DISPLAY_BASE + 0x61704)
7785
#define _MIPIC_TEARING_CTRL			(VLV_DISPLAY_BASE + 0x61704)
7731
#define MIPI_TEARING_CTRL(port)			_MIPI_PORT(port, \
-
 
7732
				_MIPIA_TEARING_CTRL, _MIPIC_TEARING_CTRL)
7786
#define MIPI_TEARING_CTRL(port)			_MMIO_MIPI(port, _MIPIA_TEARING_CTRL, _MIPIC_TEARING_CTRL)
7733
#define  TEARING_EFFECT_DELAY_SHIFT			0
7787
#define  TEARING_EFFECT_DELAY_SHIFT			0
Line 7734... Line 7788...
7734
#define  TEARING_EFFECT_DELAY_MASK			(0xffff << 0)
7788
#define  TEARING_EFFECT_DELAY_MASK			(0xffff << 0)
7735
 
7789
 
Line 7736... Line 7790...
7736
/* XXX: all bits reserved */
7790
/* XXX: all bits reserved */
Line 7737... Line 7791...
7737
#define _MIPIA_AUTOPWG			(VLV_DISPLAY_BASE + 0x611a0)
7791
#define _MIPIA_AUTOPWG			(VLV_DISPLAY_BASE + 0x611a0)
7738
 
7792
 
7739
/* MIPI DSI Controller and D-PHY registers */
7793
/* MIPI DSI Controller and D-PHY registers */
7740
 
-
 
7741
#define _MIPIA_DEVICE_READY		(dev_priv->mipi_mmio_base + 0xb000)
7794
 
7742
#define _MIPIC_DEVICE_READY		(dev_priv->mipi_mmio_base + 0xb800)
7795
#define _MIPIA_DEVICE_READY		(dev_priv->mipi_mmio_base + 0xb000)
7743
#define MIPI_DEVICE_READY(port)		_MIPI_PORT(port, _MIPIA_DEVICE_READY, \
7796
#define _MIPIC_DEVICE_READY		(dev_priv->mipi_mmio_base + 0xb800)
7744
						_MIPIC_DEVICE_READY)
7797
#define MIPI_DEVICE_READY(port)		_MMIO_MIPI(port, _MIPIA_DEVICE_READY, _MIPIC_DEVICE_READY)
7745
#define  BUS_POSSESSION					(1 << 3) /* set to give bus to receiver */
7798
#define  BUS_POSSESSION					(1 << 3) /* set to give bus to receiver */
7746
#define  ULPS_STATE_MASK				(3 << 1)
7799
#define  ULPS_STATE_MASK				(3 << 1)
Line 7747... Line 7800...
7747
#define  ULPS_STATE_ENTER				(2 << 1)
7800
#define  ULPS_STATE_ENTER				(2 << 1)
7748
#define  ULPS_STATE_EXIT				(1 << 1)
7801
#define  ULPS_STATE_EXIT				(1 << 1)
7749
#define  ULPS_STATE_NORMAL_OPERATION			(0 << 1)
7802
#define  ULPS_STATE_NORMAL_OPERATION			(0 << 1)
7750
#define  DEVICE_READY					(1 << 0)
-
 
7751
 
7803
#define  DEVICE_READY					(1 << 0)
7752
#define _MIPIA_INTR_STAT		(dev_priv->mipi_mmio_base + 0xb004)
7804
 
7753
#define _MIPIC_INTR_STAT		(dev_priv->mipi_mmio_base + 0xb804)
7805
#define _MIPIA_INTR_STAT		(dev_priv->mipi_mmio_base + 0xb004)
7754
#define MIPI_INTR_STAT(port)		_MIPI_PORT(port, _MIPIA_INTR_STAT, \
-
 
7755
					_MIPIC_INTR_STAT)
7806
#define _MIPIC_INTR_STAT		(dev_priv->mipi_mmio_base + 0xb804)
7756
#define _MIPIA_INTR_EN			(dev_priv->mipi_mmio_base + 0xb008)
7807
#define MIPI_INTR_STAT(port)		_MMIO_MIPI(port, _MIPIA_INTR_STAT, _MIPIC_INTR_STAT)
7757
#define _MIPIC_INTR_EN			(dev_priv->mipi_mmio_base + 0xb808)
7808
#define _MIPIA_INTR_EN			(dev_priv->mipi_mmio_base + 0xb008)
7758
#define MIPI_INTR_EN(port)		_MIPI_PORT(port, _MIPIA_INTR_EN, \
7809
#define _MIPIC_INTR_EN			(dev_priv->mipi_mmio_base + 0xb808)
7759
					_MIPIC_INTR_EN)
7810
#define MIPI_INTR_EN(port)		_MMIO_MIPI(port, _MIPIA_INTR_EN, _MIPIC_INTR_EN)
Line 7790... Line 7841...
7790
#define  RXSOT_SYNC_ERROR				(1 << 1)
7841
#define  RXSOT_SYNC_ERROR				(1 << 1)
7791
#define  RXSOT_ERROR					(1 << 0)
7842
#define  RXSOT_ERROR					(1 << 0)
Line 7792... Line 7843...
7792
 
7843
 
7793
#define _MIPIA_DSI_FUNC_PRG		(dev_priv->mipi_mmio_base + 0xb00c)
7844
#define _MIPIA_DSI_FUNC_PRG		(dev_priv->mipi_mmio_base + 0xb00c)
7794
#define _MIPIC_DSI_FUNC_PRG		(dev_priv->mipi_mmio_base + 0xb80c)
7845
#define _MIPIC_DSI_FUNC_PRG		(dev_priv->mipi_mmio_base + 0xb80c)
7795
#define MIPI_DSI_FUNC_PRG(port)		_MIPI_PORT(port, _MIPIA_DSI_FUNC_PRG, \
-
 
7796
						_MIPIC_DSI_FUNC_PRG)
7846
#define MIPI_DSI_FUNC_PRG(port)		_MMIO_MIPI(port, _MIPIA_DSI_FUNC_PRG, _MIPIC_DSI_FUNC_PRG)
7797
#define  CMD_MODE_DATA_WIDTH_MASK			(7 << 13)
7847
#define  CMD_MODE_DATA_WIDTH_MASK			(7 << 13)
7798
#define  CMD_MODE_NOT_SUPPORTED				(0 << 13)
7848
#define  CMD_MODE_NOT_SUPPORTED				(0 << 13)
7799
#define  CMD_MODE_DATA_WIDTH_16_BIT			(1 << 13)
7849
#define  CMD_MODE_DATA_WIDTH_16_BIT			(1 << 13)
7800
#define  CMD_MODE_DATA_WIDTH_9_BIT			(2 << 13)
7850
#define  CMD_MODE_DATA_WIDTH_9_BIT			(2 << 13)
Line 7814... Line 7864...
7814
#define  DATA_LANES_PRG_REG_SHIFT			0
7864
#define  DATA_LANES_PRG_REG_SHIFT			0
7815
#define  DATA_LANES_PRG_REG_MASK			(7 << 0)
7865
#define  DATA_LANES_PRG_REG_MASK			(7 << 0)
Line 7816... Line 7866...
7816
 
7866
 
7817
#define _MIPIA_HS_TX_TIMEOUT		(dev_priv->mipi_mmio_base + 0xb010)
7867
#define _MIPIA_HS_TX_TIMEOUT		(dev_priv->mipi_mmio_base + 0xb010)
7818
#define _MIPIC_HS_TX_TIMEOUT		(dev_priv->mipi_mmio_base + 0xb810)
7868
#define _MIPIC_HS_TX_TIMEOUT		(dev_priv->mipi_mmio_base + 0xb810)
7819
#define MIPI_HS_TX_TIMEOUT(port)	_MIPI_PORT(port, _MIPIA_HS_TX_TIMEOUT, \
-
 
7820
					_MIPIC_HS_TX_TIMEOUT)
7869
#define MIPI_HS_TX_TIMEOUT(port)	_MMIO_MIPI(port, _MIPIA_HS_TX_TIMEOUT, _MIPIC_HS_TX_TIMEOUT)
Line 7821... Line 7870...
7821
#define  HIGH_SPEED_TX_TIMEOUT_COUNTER_MASK		0xffffff
7870
#define  HIGH_SPEED_TX_TIMEOUT_COUNTER_MASK		0xffffff
7822
 
7871
 
7823
#define _MIPIA_LP_RX_TIMEOUT		(dev_priv->mipi_mmio_base + 0xb014)
7872
#define _MIPIA_LP_RX_TIMEOUT		(dev_priv->mipi_mmio_base + 0xb014)
7824
#define _MIPIC_LP_RX_TIMEOUT		(dev_priv->mipi_mmio_base + 0xb814)
-
 
7825
#define MIPI_LP_RX_TIMEOUT(port)	_MIPI_PORT(port, _MIPIA_LP_RX_TIMEOUT, \
7873
#define _MIPIC_LP_RX_TIMEOUT		(dev_priv->mipi_mmio_base + 0xb814)
Line 7826... Line 7874...
7826
					_MIPIC_LP_RX_TIMEOUT)
7874
#define MIPI_LP_RX_TIMEOUT(port)	_MMIO_MIPI(port, _MIPIA_LP_RX_TIMEOUT, _MIPIC_LP_RX_TIMEOUT)
7827
#define  LOW_POWER_RX_TIMEOUT_COUNTER_MASK		0xffffff
7875
#define  LOW_POWER_RX_TIMEOUT_COUNTER_MASK		0xffffff
7828
 
-
 
7829
#define _MIPIA_TURN_AROUND_TIMEOUT	(dev_priv->mipi_mmio_base + 0xb018)
7876
 
7830
#define _MIPIC_TURN_AROUND_TIMEOUT	(dev_priv->mipi_mmio_base + 0xb818)
7877
#define _MIPIA_TURN_AROUND_TIMEOUT	(dev_priv->mipi_mmio_base + 0xb018)
Line 7831... Line 7878...
7831
#define MIPI_TURN_AROUND_TIMEOUT(port)	_MIPI_PORT(port, \
7878
#define _MIPIC_TURN_AROUND_TIMEOUT	(dev_priv->mipi_mmio_base + 0xb818)
7832
			_MIPIA_TURN_AROUND_TIMEOUT, _MIPIC_TURN_AROUND_TIMEOUT)
7879
#define MIPI_TURN_AROUND_TIMEOUT(port)	_MMIO_MIPI(port, _MIPIA_TURN_AROUND_TIMEOUT, _MIPIC_TURN_AROUND_TIMEOUT)
7833
#define  TURN_AROUND_TIMEOUT_MASK			0x3f
-
 
7834
 
7880
#define  TURN_AROUND_TIMEOUT_MASK			0x3f
7835
#define _MIPIA_DEVICE_RESET_TIMER	(dev_priv->mipi_mmio_base + 0xb01c)
7881
 
Line 7836... Line 7882...
7836
#define _MIPIC_DEVICE_RESET_TIMER	(dev_priv->mipi_mmio_base + 0xb81c)
7882
#define _MIPIA_DEVICE_RESET_TIMER	(dev_priv->mipi_mmio_base + 0xb01c)
7837
#define MIPI_DEVICE_RESET_TIMER(port)	_MIPI_PORT(port, \
7883
#define _MIPIC_DEVICE_RESET_TIMER	(dev_priv->mipi_mmio_base + 0xb81c)
7838
			_MIPIA_DEVICE_RESET_TIMER, _MIPIC_DEVICE_RESET_TIMER)
7884
#define MIPI_DEVICE_RESET_TIMER(port)	_MMIO_MIPI(port, _MIPIA_DEVICE_RESET_TIMER, _MIPIC_DEVICE_RESET_TIMER)
7839
#define  DEVICE_RESET_TIMER_MASK			0xffff
-
 
7840
 
7885
#define  DEVICE_RESET_TIMER_MASK			0xffff
7841
#define _MIPIA_DPI_RESOLUTION		(dev_priv->mipi_mmio_base + 0xb020)
7886
 
7842
#define _MIPIC_DPI_RESOLUTION		(dev_priv->mipi_mmio_base + 0xb820)
7887
#define _MIPIA_DPI_RESOLUTION		(dev_priv->mipi_mmio_base + 0xb020)
7843
#define MIPI_DPI_RESOLUTION(port)	_MIPI_PORT(port, _MIPIA_DPI_RESOLUTION, \
7888
#define _MIPIC_DPI_RESOLUTION		(dev_priv->mipi_mmio_base + 0xb820)
Line 7844... Line 7889...
7844
					_MIPIC_DPI_RESOLUTION)
7889
#define MIPI_DPI_RESOLUTION(port)	_MMIO_MIPI(port, _MIPIA_DPI_RESOLUTION, _MIPIC_DPI_RESOLUTION)
7845
#define  VERTICAL_ADDRESS_SHIFT				16
7890
#define  VERTICAL_ADDRESS_SHIFT				16
7846
#define  VERTICAL_ADDRESS_MASK				(0xffff << 16)
-
 
7847
#define  HORIZONTAL_ADDRESS_SHIFT			0
7891
#define  VERTICAL_ADDRESS_MASK				(0xffff << 16)
7848
#define  HORIZONTAL_ADDRESS_MASK			0xffff
7892
#define  HORIZONTAL_ADDRESS_SHIFT			0
7849
 
7893
#define  HORIZONTAL_ADDRESS_MASK			0xffff
7850
#define _MIPIA_DBI_FIFO_THROTTLE	(dev_priv->mipi_mmio_base + 0xb024)
7894
 
Line 7851... Line 7895...
7851
#define _MIPIC_DBI_FIFO_THROTTLE	(dev_priv->mipi_mmio_base + 0xb824)
7895
#define _MIPIA_DBI_FIFO_THROTTLE	(dev_priv->mipi_mmio_base + 0xb024)
7852
#define MIPI_DBI_FIFO_THROTTLE(port)	_MIPI_PORT(port, \
7896
#define _MIPIC_DBI_FIFO_THROTTLE	(dev_priv->mipi_mmio_base + 0xb824)
7853
			_MIPIA_DBI_FIFO_THROTTLE, _MIPIC_DBI_FIFO_THROTTLE)
7897
#define MIPI_DBI_FIFO_THROTTLE(port)	_MMIO_MIPI(port, _MIPIA_DBI_FIFO_THROTTLE, _MIPIC_DBI_FIFO_THROTTLE)
7854
#define  DBI_FIFO_EMPTY_HALF				(0 << 0)
-
 
7855
#define  DBI_FIFO_EMPTY_QUARTER				(1 << 0)
7898
#define  DBI_FIFO_EMPTY_HALF				(0 << 0)
Line 7856... Line 7899...
7856
#define  DBI_FIFO_EMPTY_7_LOCATIONS			(2 << 0)
7899
#define  DBI_FIFO_EMPTY_QUARTER				(1 << 0)
7857
 
7900
#define  DBI_FIFO_EMPTY_7_LOCATIONS			(2 << 0)
7858
/* regs below are bits 15:0 */
7901
 
7859
#define _MIPIA_HSYNC_PADDING_COUNT	(dev_priv->mipi_mmio_base + 0xb028)
-
 
Line 7860... Line 7902...
7860
#define _MIPIC_HSYNC_PADDING_COUNT	(dev_priv->mipi_mmio_base + 0xb828)
7902
/* regs below are bits 15:0 */
7861
#define MIPI_HSYNC_PADDING_COUNT(port)	_MIPI_PORT(port, \
7903
#define _MIPIA_HSYNC_PADDING_COUNT	(dev_priv->mipi_mmio_base + 0xb028)
7862
			_MIPIA_HSYNC_PADDING_COUNT, _MIPIC_HSYNC_PADDING_COUNT)
7904
#define _MIPIC_HSYNC_PADDING_COUNT	(dev_priv->mipi_mmio_base + 0xb828)
7863
 
-
 
Line 7864... Line 7905...
7864
#define _MIPIA_HBP_COUNT		(dev_priv->mipi_mmio_base + 0xb02c)
7905
#define MIPI_HSYNC_PADDING_COUNT(port)	_MMIO_MIPI(port, _MIPIA_HSYNC_PADDING_COUNT, _MIPIC_HSYNC_PADDING_COUNT)
7865
#define _MIPIC_HBP_COUNT		(dev_priv->mipi_mmio_base + 0xb82c)
7906
 
7866
#define MIPI_HBP_COUNT(port)		_MIPI_PORT(port, _MIPIA_HBP_COUNT, \
-
 
7867
					_MIPIC_HBP_COUNT)
7907
#define _MIPIA_HBP_COUNT		(dev_priv->mipi_mmio_base + 0xb02c)
Line 7868... Line 7908...
7868
 
7908
#define _MIPIC_HBP_COUNT		(dev_priv->mipi_mmio_base + 0xb82c)
7869
#define _MIPIA_HFP_COUNT		(dev_priv->mipi_mmio_base + 0xb030)
7909
#define MIPI_HBP_COUNT(port)		_MMIO_MIPI(port, _MIPIA_HBP_COUNT, _MIPIC_HBP_COUNT)
7870
#define _MIPIC_HFP_COUNT		(dev_priv->mipi_mmio_base + 0xb830)
-
 
7871
#define MIPI_HFP_COUNT(port)		_MIPI_PORT(port, _MIPIA_HFP_COUNT, \
7910
 
Line 7872... Line 7911...
7872
					_MIPIC_HFP_COUNT)
7911
#define _MIPIA_HFP_COUNT		(dev_priv->mipi_mmio_base + 0xb030)
7873
 
7912
#define _MIPIC_HFP_COUNT		(dev_priv->mipi_mmio_base + 0xb830)
7874
#define _MIPIA_HACTIVE_AREA_COUNT	(dev_priv->mipi_mmio_base + 0xb034)
7913
#define MIPI_HFP_COUNT(port)		_MMIO_MIPI(port, _MIPIA_HFP_COUNT, _MIPIC_HFP_COUNT)
7875
#define _MIPIC_HACTIVE_AREA_COUNT	(dev_priv->mipi_mmio_base + 0xb834)
-
 
Line 7876... Line 7914...
7876
#define MIPI_HACTIVE_AREA_COUNT(port)	_MIPI_PORT(port, \
7914
 
7877
			_MIPIA_HACTIVE_AREA_COUNT, _MIPIC_HACTIVE_AREA_COUNT)
7915
#define _MIPIA_HACTIVE_AREA_COUNT	(dev_priv->mipi_mmio_base + 0xb034)
7878
 
7916
#define _MIPIC_HACTIVE_AREA_COUNT	(dev_priv->mipi_mmio_base + 0xb834)
7879
#define _MIPIA_VSYNC_PADDING_COUNT	(dev_priv->mipi_mmio_base + 0xb038)
-
 
Line 7880... Line 7917...
7880
#define _MIPIC_VSYNC_PADDING_COUNT	(dev_priv->mipi_mmio_base + 0xb838)
7917
#define MIPI_HACTIVE_AREA_COUNT(port)	_MMIO_MIPI(port, _MIPIA_HACTIVE_AREA_COUNT, _MIPIC_HACTIVE_AREA_COUNT)
7881
#define MIPI_VSYNC_PADDING_COUNT(port)	_MIPI_PORT(port, \
7918
 
7882
			_MIPIA_VSYNC_PADDING_COUNT, _MIPIC_VSYNC_PADDING_COUNT)
-
 
7883
 
7919
#define _MIPIA_VSYNC_PADDING_COUNT	(dev_priv->mipi_mmio_base + 0xb038)
Line 7884... Line 7920...
7884
#define _MIPIA_VBP_COUNT		(dev_priv->mipi_mmio_base + 0xb03c)
7920
#define _MIPIC_VSYNC_PADDING_COUNT	(dev_priv->mipi_mmio_base + 0xb838)
Line 7885... Line 7921...
7885
#define _MIPIC_VBP_COUNT		(dev_priv->mipi_mmio_base + 0xb83c)
7921
#define MIPI_VSYNC_PADDING_COUNT(port)	_MMIO_MIPI(port, _MIPIA_VSYNC_PADDING_COUNT, _MIPIC_VSYNC_PADDING_COUNT)
7886
#define MIPI_VBP_COUNT(port)		_MIPI_PORT(port, _MIPIA_VBP_COUNT, \
7922
 
7887
					_MIPIC_VBP_COUNT)
7923
#define _MIPIA_VBP_COUNT		(dev_priv->mipi_mmio_base + 0xb03c)
7888
 
-
 
7889
#define _MIPIA_VFP_COUNT		(dev_priv->mipi_mmio_base + 0xb040)
7924
#define _MIPIC_VBP_COUNT		(dev_priv->mipi_mmio_base + 0xb83c)
7890
#define _MIPIC_VFP_COUNT		(dev_priv->mipi_mmio_base + 0xb840)
7925
#define MIPI_VBP_COUNT(port)		_MMIO_MIPI(port, _MIPIA_VBP_COUNT, _MIPIC_VBP_COUNT)
7891
#define MIPI_VFP_COUNT(port)		_MIPI_PORT(port, _MIPIA_VFP_COUNT, \
7926
 
7892
					_MIPIC_VFP_COUNT)
7927
#define _MIPIA_VFP_COUNT		(dev_priv->mipi_mmio_base + 0xb040)
7893
 
7928
#define _MIPIC_VFP_COUNT		(dev_priv->mipi_mmio_base + 0xb840)
7894
#define _MIPIA_HIGH_LOW_SWITCH_COUNT	(dev_priv->mipi_mmio_base + 0xb044)
7929
#define MIPI_VFP_COUNT(port)		_MMIO_MIPI(port, _MIPIA_VFP_COUNT, _MIPIC_VFP_COUNT)
7895
#define _MIPIC_HIGH_LOW_SWITCH_COUNT	(dev_priv->mipi_mmio_base + 0xb844)
7930
 
Line 7896... Line 7931...
7896
#define MIPI_HIGH_LOW_SWITCH_COUNT(port)	_MIPI_PORT(port,	\
7931
#define _MIPIA_HIGH_LOW_SWITCH_COUNT	(dev_priv->mipi_mmio_base + 0xb044)
7897
		_MIPIA_HIGH_LOW_SWITCH_COUNT, _MIPIC_HIGH_LOW_SWITCH_COUNT)
7932
#define _MIPIC_HIGH_LOW_SWITCH_COUNT	(dev_priv->mipi_mmio_base + 0xb844)
7898
 
7933
#define MIPI_HIGH_LOW_SWITCH_COUNT(port)	_MMIO_MIPI(port,	_MIPIA_HIGH_LOW_SWITCH_COUNT, _MIPIC_HIGH_LOW_SWITCH_COUNT)
7899
/* regs above are bits 15:0 */
-
 
7900
 
7934
 
7901
#define _MIPIA_DPI_CONTROL		(dev_priv->mipi_mmio_base + 0xb048)
7935
/* regs above are bits 15:0 */
Line 7902... Line 7936...
7902
#define _MIPIC_DPI_CONTROL		(dev_priv->mipi_mmio_base + 0xb848)
7936
 
7903
#define MIPI_DPI_CONTROL(port)		_MIPI_PORT(port, _MIPIA_DPI_CONTROL, \
7937
#define _MIPIA_DPI_CONTROL		(dev_priv->mipi_mmio_base + 0xb048)
7904
					_MIPIC_DPI_CONTROL)
7938
#define _MIPIC_DPI_CONTROL		(dev_priv->mipi_mmio_base + 0xb848)
7905
#define  DPI_LP_MODE					(1 << 6)
-
 
7906
#define  BACKLIGHT_OFF					(1 << 5)
7939
#define MIPI_DPI_CONTROL(port)		_MMIO_MIPI(port, _MIPIA_DPI_CONTROL, _MIPIC_DPI_CONTROL)
7907
#define  BACKLIGHT_ON					(1 << 4)
7940
#define  DPI_LP_MODE					(1 << 6)
Line 7908... Line 7941...
7908
#define  COLOR_MODE_OFF					(1 << 3)
7941
#define  BACKLIGHT_OFF					(1 << 5)
7909
#define  COLOR_MODE_ON					(1 << 2)
7942
#define  BACKLIGHT_ON					(1 << 4)
7910
#define  TURN_ON					(1 << 1)
7943
#define  COLOR_MODE_OFF					(1 << 3)
7911
#define  SHUTDOWN					(1 << 0)
7944
#define  COLOR_MODE_ON					(1 << 2)
7912
 
7945
#define  TURN_ON					(1 << 1)
7913
#define _MIPIA_DPI_DATA			(dev_priv->mipi_mmio_base + 0xb04c)
7946
#define  SHUTDOWN					(1 << 0)
Line 7914... Line 7947...
7914
#define _MIPIC_DPI_DATA			(dev_priv->mipi_mmio_base + 0xb84c)
7947
 
7915
#define MIPI_DPI_DATA(port)		_MIPI_PORT(port, _MIPIA_DPI_DATA, \
7948
#define _MIPIA_DPI_DATA			(dev_priv->mipi_mmio_base + 0xb04c)
7916
					_MIPIC_DPI_DATA)
-
 
7917
#define  COMMAND_BYTE_SHIFT				0
7949
#define _MIPIC_DPI_DATA			(dev_priv->mipi_mmio_base + 0xb84c)
7918
#define  COMMAND_BYTE_MASK				(0x3f << 0)
7950
#define MIPI_DPI_DATA(port)		_MMIO_MIPI(port, _MIPIA_DPI_DATA, _MIPIC_DPI_DATA)
7919
 
7951
#define  COMMAND_BYTE_SHIFT				0
7920
#define _MIPIA_INIT_COUNT		(dev_priv->mipi_mmio_base + 0xb050)
7952
#define  COMMAND_BYTE_MASK				(0x3f << 0)
7921
#define _MIPIC_INIT_COUNT		(dev_priv->mipi_mmio_base + 0xb850)
7953
 
7922
#define MIPI_INIT_COUNT(port)		_MIPI_PORT(port, _MIPIA_INIT_COUNT, \
7954
#define _MIPIA_INIT_COUNT		(dev_priv->mipi_mmio_base + 0xb050)
7923
					_MIPIC_INIT_COUNT)
7955
#define _MIPIC_INIT_COUNT		(dev_priv->mipi_mmio_base + 0xb850)
Line 7924... Line 7956...
7924
#define  MASTER_INIT_TIMER_SHIFT			0
7956
#define MIPI_INIT_COUNT(port)		_MMIO_MIPI(port, _MIPIA_INIT_COUNT, _MIPIC_INIT_COUNT)
7925
#define  MASTER_INIT_TIMER_MASK				(0xffff << 0)
7957
#define  MASTER_INIT_TIMER_SHIFT			0
7926
 
7958
#define  MASTER_INIT_TIMER_MASK				(0xffff << 0)
7927
#define _MIPIA_MAX_RETURN_PKT_SIZE	(dev_priv->mipi_mmio_base + 0xb054)
-
 
7928
#define _MIPIC_MAX_RETURN_PKT_SIZE	(dev_priv->mipi_mmio_base + 0xb854)
7959
 
7929
#define MIPI_MAX_RETURN_PKT_SIZE(port)	_MIPI_PORT(port, \
7960
#define _MIPIA_MAX_RETURN_PKT_SIZE	(dev_priv->mipi_mmio_base + 0xb054)
7930
			_MIPIA_MAX_RETURN_PKT_SIZE, _MIPIC_MAX_RETURN_PKT_SIZE)
7961
#define _MIPIC_MAX_RETURN_PKT_SIZE	(dev_priv->mipi_mmio_base + 0xb854)
7931
#define  MAX_RETURN_PKT_SIZE_SHIFT			0
7962
#define MIPI_MAX_RETURN_PKT_SIZE(port)	_MMIO_MIPI(port, \
7932
#define  MAX_RETURN_PKT_SIZE_MASK			(0x3ff << 0)
7963
			_MIPIA_MAX_RETURN_PKT_SIZE, _MIPIC_MAX_RETURN_PKT_SIZE)
Line 7955... Line 7986...
7955
#define  CLOCKSTOP					(1 << 1)
7986
#define  CLOCKSTOP					(1 << 1)
7956
#define  EOT_DISABLE					(1 << 0)
7987
#define  EOT_DISABLE					(1 << 0)
Line 7957... Line 7988...
7957
 
7988
 
7958
#define _MIPIA_LP_BYTECLK		(dev_priv->mipi_mmio_base + 0xb060)
7989
#define _MIPIA_LP_BYTECLK		(dev_priv->mipi_mmio_base + 0xb060)
7959
#define _MIPIC_LP_BYTECLK		(dev_priv->mipi_mmio_base + 0xb860)
7990
#define _MIPIC_LP_BYTECLK		(dev_priv->mipi_mmio_base + 0xb860)
7960
#define MIPI_LP_BYTECLK(port)		_MIPI_PORT(port, _MIPIA_LP_BYTECLK, \
-
 
7961
					_MIPIC_LP_BYTECLK)
7991
#define MIPI_LP_BYTECLK(port)		_MMIO_MIPI(port, _MIPIA_LP_BYTECLK, _MIPIC_LP_BYTECLK)
7962
#define  LP_BYTECLK_SHIFT				0
7992
#define  LP_BYTECLK_SHIFT				0
Line 7963... Line 7993...
7963
#define  LP_BYTECLK_MASK				(0xffff << 0)
7993
#define  LP_BYTECLK_MASK				(0xffff << 0)
7964
 
7994
 
7965
/* bits 31:0 */
7995
/* bits 31:0 */
7966
#define _MIPIA_LP_GEN_DATA		(dev_priv->mipi_mmio_base + 0xb064)
7996
#define _MIPIA_LP_GEN_DATA		(dev_priv->mipi_mmio_base + 0xb064)
7967
#define _MIPIC_LP_GEN_DATA		(dev_priv->mipi_mmio_base + 0xb864)
-
 
Line 7968... Line 7997...
7968
#define MIPI_LP_GEN_DATA(port)		_MIPI_PORT(port, _MIPIA_LP_GEN_DATA, \
7997
#define _MIPIC_LP_GEN_DATA		(dev_priv->mipi_mmio_base + 0xb864)
7969
					_MIPIC_LP_GEN_DATA)
7998
#define MIPI_LP_GEN_DATA(port)		_MMIO_MIPI(port, _MIPIA_LP_GEN_DATA, _MIPIC_LP_GEN_DATA)
7970
 
7999
 
7971
/* bits 31:0 */
8000
/* bits 31:0 */
7972
#define _MIPIA_HS_GEN_DATA		(dev_priv->mipi_mmio_base + 0xb068)
-
 
Line 7973... Line 8001...
7973
#define _MIPIC_HS_GEN_DATA		(dev_priv->mipi_mmio_base + 0xb868)
8001
#define _MIPIA_HS_GEN_DATA		(dev_priv->mipi_mmio_base + 0xb068)
7974
#define MIPI_HS_GEN_DATA(port)		_MIPI_PORT(port, _MIPIA_HS_GEN_DATA, \
8002
#define _MIPIC_HS_GEN_DATA		(dev_priv->mipi_mmio_base + 0xb868)
7975
					_MIPIC_HS_GEN_DATA)
8003
#define MIPI_HS_GEN_DATA(port)		_MMIO_MIPI(port, _MIPIA_HS_GEN_DATA, _MIPIC_HS_GEN_DATA)
7976
 
-
 
7977
#define _MIPIA_LP_GEN_CTRL		(dev_priv->mipi_mmio_base + 0xb06c)
8004
 
7978
#define _MIPIC_LP_GEN_CTRL		(dev_priv->mipi_mmio_base + 0xb86c)
8005
#define _MIPIA_LP_GEN_CTRL		(dev_priv->mipi_mmio_base + 0xb06c)
7979
#define MIPI_LP_GEN_CTRL(port)		_MIPI_PORT(port, _MIPIA_LP_GEN_CTRL, \
8006
#define _MIPIC_LP_GEN_CTRL		(dev_priv->mipi_mmio_base + 0xb86c)
7980
					_MIPIC_LP_GEN_CTRL)
-
 
7981
#define _MIPIA_HS_GEN_CTRL		(dev_priv->mipi_mmio_base + 0xb070)
8007
#define MIPI_LP_GEN_CTRL(port)		_MMIO_MIPI(port, _MIPIA_LP_GEN_CTRL, _MIPIC_LP_GEN_CTRL)
7982
#define _MIPIC_HS_GEN_CTRL		(dev_priv->mipi_mmio_base + 0xb870)
8008
#define _MIPIA_HS_GEN_CTRL		(dev_priv->mipi_mmio_base + 0xb070)
7983
#define MIPI_HS_GEN_CTRL(port)		_MIPI_PORT(port, _MIPIA_HS_GEN_CTRL, \
8009
#define _MIPIC_HS_GEN_CTRL		(dev_priv->mipi_mmio_base + 0xb870)
7984
					_MIPIC_HS_GEN_CTRL)
8010
#define MIPI_HS_GEN_CTRL(port)		_MMIO_MIPI(port, _MIPIA_HS_GEN_CTRL, _MIPIC_HS_GEN_CTRL)
7985
#define  LONG_PACKET_WORD_COUNT_SHIFT			8
8011
#define  LONG_PACKET_WORD_COUNT_SHIFT			8
Line 7992... Line 8018...
7992
#define  DATA_TYPE_MASK					(0x3f << 0)
8018
#define  DATA_TYPE_MASK					(0x3f << 0)
7993
/* data type values, see include/video/mipi_display.h */
8019
/* data type values, see include/video/mipi_display.h */
Line 7994... Line 8020...
7994
 
8020
 
7995
#define _MIPIA_GEN_FIFO_STAT		(dev_priv->mipi_mmio_base + 0xb074)
8021
#define _MIPIA_GEN_FIFO_STAT		(dev_priv->mipi_mmio_base + 0xb074)
7996
#define _MIPIC_GEN_FIFO_STAT		(dev_priv->mipi_mmio_base + 0xb874)
8022
#define _MIPIC_GEN_FIFO_STAT		(dev_priv->mipi_mmio_base + 0xb874)
7997
#define MIPI_GEN_FIFO_STAT(port)	_MIPI_PORT(port, _MIPIA_GEN_FIFO_STAT, \
-
 
7998
					_MIPIC_GEN_FIFO_STAT)
8023
#define MIPI_GEN_FIFO_STAT(port)	_MMIO_MIPI(port, _MIPIA_GEN_FIFO_STAT, _MIPIC_GEN_FIFO_STAT)
7999
#define  DPI_FIFO_EMPTY					(1 << 28)
8024
#define  DPI_FIFO_EMPTY					(1 << 28)
8000
#define  DBI_FIFO_EMPTY					(1 << 27)
8025
#define  DBI_FIFO_EMPTY					(1 << 27)
8001
#define  LP_CTRL_FIFO_EMPTY				(1 << 26)
8026
#define  LP_CTRL_FIFO_EMPTY				(1 << 26)
8002
#define  LP_CTRL_FIFO_HALF_EMPTY			(1 << 25)
8027
#define  LP_CTRL_FIFO_HALF_EMPTY			(1 << 25)
Line 8011... Line 8036...
8011
#define  HS_DATA_FIFO_HALF_EMPTY			(1 << 1)
8036
#define  HS_DATA_FIFO_HALF_EMPTY			(1 << 1)
8012
#define  HS_DATA_FIFO_FULL				(1 << 0)
8037
#define  HS_DATA_FIFO_FULL				(1 << 0)
Line 8013... Line 8038...
8013
 
8038
 
8014
#define _MIPIA_HS_LS_DBI_ENABLE		(dev_priv->mipi_mmio_base + 0xb078)
8039
#define _MIPIA_HS_LS_DBI_ENABLE		(dev_priv->mipi_mmio_base + 0xb078)
8015
#define _MIPIC_HS_LS_DBI_ENABLE		(dev_priv->mipi_mmio_base + 0xb878)
-
 
8016
#define MIPI_HS_LP_DBI_ENABLE(port)	_MIPI_PORT(port, \
8040
#define _MIPIC_HS_LS_DBI_ENABLE		(dev_priv->mipi_mmio_base + 0xb878)
8017
			_MIPIA_HS_LS_DBI_ENABLE, _MIPIC_HS_LS_DBI_ENABLE)
8041
#define MIPI_HS_LP_DBI_ENABLE(port)	_MMIO_MIPI(port, _MIPIA_HS_LS_DBI_ENABLE, _MIPIC_HS_LS_DBI_ENABLE)
8018
#define  DBI_HS_LP_MODE_MASK				(1 << 0)
8042
#define  DBI_HS_LP_MODE_MASK				(1 << 0)
8019
#define  DBI_LP_MODE					(1 << 0)
8043
#define  DBI_LP_MODE					(1 << 0)
Line 8020... Line 8044...
8020
#define  DBI_HS_MODE					(0 << 0)
8044
#define  DBI_HS_MODE					(0 << 0)
8021
 
8045
 
8022
#define _MIPIA_DPHY_PARAM		(dev_priv->mipi_mmio_base + 0xb080)
8046
#define _MIPIA_DPHY_PARAM		(dev_priv->mipi_mmio_base + 0xb080)
8023
#define _MIPIC_DPHY_PARAM		(dev_priv->mipi_mmio_base + 0xb880)
-
 
8024
#define MIPI_DPHY_PARAM(port)		_MIPI_PORT(port, _MIPIA_DPHY_PARAM, \
8047
#define _MIPIC_DPHY_PARAM		(dev_priv->mipi_mmio_base + 0xb880)
8025
					_MIPIC_DPHY_PARAM)
8048
#define MIPI_DPHY_PARAM(port)		_MMIO_MIPI(port, _MIPIA_DPHY_PARAM, _MIPIC_DPHY_PARAM)
8026
#define  EXIT_ZERO_COUNT_SHIFT				24
8049
#define  EXIT_ZERO_COUNT_SHIFT				24
8027
#define  EXIT_ZERO_COUNT_MASK				(0x3f << 24)
8050
#define  EXIT_ZERO_COUNT_MASK				(0x3f << 24)
8028
#define  TRAIL_COUNT_SHIFT				16
8051
#define  TRAIL_COUNT_SHIFT				16
Line 8033... Line 8056...
8033
#define  PREPARE_COUNT_MASK				(0x3f << 0)
8056
#define  PREPARE_COUNT_MASK				(0x3f << 0)
Line 8034... Line 8057...
8034
 
8057
 
8035
/* bits 31:0 */
8058
/* bits 31:0 */
8036
#define _MIPIA_DBI_BW_CTRL		(dev_priv->mipi_mmio_base + 0xb084)
8059
#define _MIPIA_DBI_BW_CTRL		(dev_priv->mipi_mmio_base + 0xb084)
8037
#define _MIPIC_DBI_BW_CTRL		(dev_priv->mipi_mmio_base + 0xb884)
8060
#define _MIPIC_DBI_BW_CTRL		(dev_priv->mipi_mmio_base + 0xb884)
8038
#define MIPI_DBI_BW_CTRL(port)		_MIPI_PORT(port, _MIPIA_DBI_BW_CTRL, \
-
 
Line 8039... Line 8061...
8039
					_MIPIC_DBI_BW_CTRL)
8061
#define MIPI_DBI_BW_CTRL(port)		_MMIO_MIPI(port, _MIPIA_DBI_BW_CTRL, _MIPIC_DBI_BW_CTRL)
8040
 
-
 
8041
#define _MIPIA_CLK_LANE_SWITCH_TIME_CNT		(dev_priv->mipi_mmio_base \
8062
 
8042
							+ 0xb088)
-
 
8043
#define _MIPIC_CLK_LANE_SWITCH_TIME_CNT		(dev_priv->mipi_mmio_base \
-
 
8044
							+ 0xb888)
8063
#define _MIPIA_CLK_LANE_SWITCH_TIME_CNT		(dev_priv->mipi_mmio_base + 0xb088)
8045
#define MIPI_CLK_LANE_SWITCH_TIME_CNT(port)	_MIPI_PORT(port, \
8064
#define _MIPIC_CLK_LANE_SWITCH_TIME_CNT		(dev_priv->mipi_mmio_base + 0xb888)
8046
	_MIPIA_CLK_LANE_SWITCH_TIME_CNT, _MIPIC_CLK_LANE_SWITCH_TIME_CNT)
8065
#define MIPI_CLK_LANE_SWITCH_TIME_CNT(port)	_MMIO_MIPI(port, _MIPIA_CLK_LANE_SWITCH_TIME_CNT, _MIPIC_CLK_LANE_SWITCH_TIME_CNT)
8047
#define  LP_HS_SSW_CNT_SHIFT				16
8066
#define  LP_HS_SSW_CNT_SHIFT				16
8048
#define  LP_HS_SSW_CNT_MASK				(0xffff << 16)
8067
#define  LP_HS_SSW_CNT_MASK				(0xffff << 16)
Line 8049... Line 8068...
8049
#define  HS_LP_PWR_SW_CNT_SHIFT				0
8068
#define  HS_LP_PWR_SW_CNT_SHIFT				0
8050
#define  HS_LP_PWR_SW_CNT_MASK				(0xffff << 0)
8069
#define  HS_LP_PWR_SW_CNT_MASK				(0xffff << 0)
8051
 
-
 
8052
#define _MIPIA_STOP_STATE_STALL		(dev_priv->mipi_mmio_base + 0xb08c)
8070
 
8053
#define _MIPIC_STOP_STATE_STALL		(dev_priv->mipi_mmio_base + 0xb88c)
8071
#define _MIPIA_STOP_STATE_STALL		(dev_priv->mipi_mmio_base + 0xb08c)
8054
#define MIPI_STOP_STATE_STALL(port)	_MIPI_PORT(port, \
8072
#define _MIPIC_STOP_STATE_STALL		(dev_priv->mipi_mmio_base + 0xb88c)
Line 8055... Line 8073...
8055
			_MIPIA_STOP_STATE_STALL, _MIPIC_STOP_STATE_STALL)
8073
#define MIPI_STOP_STATE_STALL(port)	_MMIO_MIPI(port, _MIPIA_STOP_STATE_STALL, _MIPIC_STOP_STATE_STALL)
8056
#define  STOP_STATE_STALL_COUNTER_SHIFT			0
8074
#define  STOP_STATE_STALL_COUNTER_SHIFT			0
8057
#define  STOP_STATE_STALL_COUNTER_MASK			(0xff << 0)
-
 
8058
 
8075
#define  STOP_STATE_STALL_COUNTER_MASK			(0xff << 0)
8059
#define _MIPIA_INTR_STAT_REG_1		(dev_priv->mipi_mmio_base + 0xb090)
8076
 
8060
#define _MIPIC_INTR_STAT_REG_1		(dev_priv->mipi_mmio_base + 0xb890)
8077
#define _MIPIA_INTR_STAT_REG_1		(dev_priv->mipi_mmio_base + 0xb090)
8061
#define MIPI_INTR_STAT_REG_1(port)	_MIPI_PORT(port, \
8078
#define _MIPIC_INTR_STAT_REG_1		(dev_priv->mipi_mmio_base + 0xb890)
8062
				_MIPIA_INTR_STAT_REG_1, _MIPIC_INTR_STAT_REG_1)
-
 
8063
#define _MIPIA_INTR_EN_REG_1		(dev_priv->mipi_mmio_base + 0xb094)
8079
#define MIPI_INTR_STAT_REG_1(port)	_MMIO_MIPI(port, _MIPIA_INTR_STAT_REG_1, _MIPIC_INTR_STAT_REG_1)
Line 8064... Line 8080...
8064
#define _MIPIC_INTR_EN_REG_1		(dev_priv->mipi_mmio_base + 0xb894)
8080
#define _MIPIA_INTR_EN_REG_1		(dev_priv->mipi_mmio_base + 0xb094)
8065
#define MIPI_INTR_EN_REG_1(port)	_MIPI_PORT(port, _MIPIA_INTR_EN_REG_1, \
8081
#define _MIPIC_INTR_EN_REG_1		(dev_priv->mipi_mmio_base + 0xb894)
8066
					_MIPIC_INTR_EN_REG_1)
8082
#define MIPI_INTR_EN_REG_1(port)	_MMIO_MIPI(port, _MIPIA_INTR_EN_REG_1, _MIPIC_INTR_EN_REG_1)
Line 8081... Line 8097...
8081
 
8097
 
Line 8082... Line 8098...
8082
/* MIPI adapter registers */
8098
/* MIPI adapter registers */
8083
 
8099
 
8084
#define _MIPIA_CTRL			(dev_priv->mipi_mmio_base + 0xb104)
8100
#define _MIPIA_CTRL			(dev_priv->mipi_mmio_base + 0xb104)
8085
#define _MIPIC_CTRL			(dev_priv->mipi_mmio_base + 0xb904)
-
 
8086
#define MIPI_CTRL(port)			_MIPI_PORT(port, _MIPIA_CTRL, \
8101
#define _MIPIC_CTRL			(dev_priv->mipi_mmio_base + 0xb904)
8087
					_MIPIC_CTRL)
8102
#define MIPI_CTRL(port)			_MMIO_MIPI(port, _MIPIA_CTRL, _MIPIC_CTRL)
8088
#define  ESCAPE_CLOCK_DIVIDER_SHIFT			5 /* A only */
8103
#define  ESCAPE_CLOCK_DIVIDER_SHIFT			5 /* A only */
8089
#define  ESCAPE_CLOCK_DIVIDER_MASK			(3 << 5)
8104
#define  ESCAPE_CLOCK_DIVIDER_MASK			(3 << 5)
8090
#define  ESCAPE_CLOCK_DIVIDER_1				(0 << 5)
8105
#define  ESCAPE_CLOCK_DIVIDER_1				(0 << 5)
Line 8095... Line 8110...
8095
#define  READ_REQUEST_PRIORITY_LOW			(0 << 3)
8110
#define  READ_REQUEST_PRIORITY_LOW			(0 << 3)
8096
#define  READ_REQUEST_PRIORITY_HIGH			(3 << 3)
8111
#define  READ_REQUEST_PRIORITY_HIGH			(3 << 3)
8097
#define  RGB_FLIP_TO_BGR				(1 << 2)
8112
#define  RGB_FLIP_TO_BGR				(1 << 2)
Line 8098... Line 8113...
8098
 
8113
 
8099
#define  BXT_PIPE_SELECT_MASK				(7 << 7)
-
 
8100
#define  BXT_PIPE_SELECT_C				(2 << 7)
-
 
8101
#define  BXT_PIPE_SELECT_B				(1 << 7)
8114
#define  BXT_PIPE_SELECT_MASK				(7 << 7)
Line 8102... Line 8115...
8102
#define  BXT_PIPE_SELECT_A				(0 << 7)
8115
#define  BXT_PIPE_SELECT(pipe)				((pipe) << 7)
8103
 
8116
 
8104
#define _MIPIA_DATA_ADDRESS		(dev_priv->mipi_mmio_base + 0xb108)
8117
#define _MIPIA_DATA_ADDRESS		(dev_priv->mipi_mmio_base + 0xb108)
8105
#define _MIPIC_DATA_ADDRESS		(dev_priv->mipi_mmio_base + 0xb908)
-
 
8106
#define MIPI_DATA_ADDRESS(port)		_MIPI_PORT(port, _MIPIA_DATA_ADDRESS, \
8118
#define _MIPIC_DATA_ADDRESS		(dev_priv->mipi_mmio_base + 0xb908)
8107
					_MIPIC_DATA_ADDRESS)
8119
#define MIPI_DATA_ADDRESS(port)		_MMIO_MIPI(port, _MIPIA_DATA_ADDRESS, _MIPIC_DATA_ADDRESS)
8108
#define  DATA_MEM_ADDRESS_SHIFT				5
8120
#define  DATA_MEM_ADDRESS_SHIFT				5
Line 8109... Line 8121...
8109
#define  DATA_MEM_ADDRESS_MASK				(0x7ffffff << 5)
8121
#define  DATA_MEM_ADDRESS_MASK				(0x7ffffff << 5)
8110
#define  DATA_VALID					(1 << 0)
8122
#define  DATA_VALID					(1 << 0)
8111
 
8123
 
8112
#define _MIPIA_DATA_LENGTH		(dev_priv->mipi_mmio_base + 0xb10c)
-
 
8113
#define _MIPIC_DATA_LENGTH		(dev_priv->mipi_mmio_base + 0xb90c)
8124
#define _MIPIA_DATA_LENGTH		(dev_priv->mipi_mmio_base + 0xb10c)
8114
#define MIPI_DATA_LENGTH(port)		_MIPI_PORT(port, _MIPIA_DATA_LENGTH, \
8125
#define _MIPIC_DATA_LENGTH		(dev_priv->mipi_mmio_base + 0xb90c)
Line 8115... Line 8126...
8115
					_MIPIC_DATA_LENGTH)
8126
#define MIPI_DATA_LENGTH(port)		_MMIO_MIPI(port, _MIPIA_DATA_LENGTH, _MIPIC_DATA_LENGTH)
8116
#define  DATA_LENGTH_SHIFT				0
8127
#define  DATA_LENGTH_SHIFT				0
8117
#define  DATA_LENGTH_MASK				(0xfffff << 0)
-
 
8118
 
8128
#define  DATA_LENGTH_MASK				(0xfffff << 0)
8119
#define _MIPIA_COMMAND_ADDRESS		(dev_priv->mipi_mmio_base + 0xb110)
8129
 
8120
#define _MIPIC_COMMAND_ADDRESS		(dev_priv->mipi_mmio_base + 0xb910)
8130
#define _MIPIA_COMMAND_ADDRESS		(dev_priv->mipi_mmio_base + 0xb110)
8121
#define MIPI_COMMAND_ADDRESS(port)	_MIPI_PORT(port, \
8131
#define _MIPIC_COMMAND_ADDRESS		(dev_priv->mipi_mmio_base + 0xb910)
8122
				_MIPIA_COMMAND_ADDRESS, _MIPIC_COMMAND_ADDRESS)
8132
#define MIPI_COMMAND_ADDRESS(port)	_MMIO_MIPI(port, _MIPIA_COMMAND_ADDRESS, _MIPIC_COMMAND_ADDRESS)
8123
#define  COMMAND_MEM_ADDRESS_SHIFT			5
8133
#define  COMMAND_MEM_ADDRESS_SHIFT			5
Line 8124... Line 8134...
8124
#define  COMMAND_MEM_ADDRESS_MASK			(0x7ffffff << 5)
8134
#define  COMMAND_MEM_ADDRESS_MASK			(0x7ffffff << 5)
8125
#define  AUTO_PWG_ENABLE				(1 << 2)
8135
#define  AUTO_PWG_ENABLE				(1 << 2)
8126
#define  MEMORY_WRITE_DATA_FROM_PIPE_RENDERING		(1 << 1)
8136
#define  MEMORY_WRITE_DATA_FROM_PIPE_RENDERING		(1 << 1)
8127
#define  COMMAND_VALID					(1 << 0)
-
 
8128
 
8137
#define  COMMAND_VALID					(1 << 0)
8129
#define _MIPIA_COMMAND_LENGTH		(dev_priv->mipi_mmio_base + 0xb114)
8138
 
Line 8130... Line 8139...
8130
#define _MIPIC_COMMAND_LENGTH		(dev_priv->mipi_mmio_base + 0xb914)
8139
#define _MIPIA_COMMAND_LENGTH		(dev_priv->mipi_mmio_base + 0xb114)
8131
#define MIPI_COMMAND_LENGTH(port)	_MIPI_PORT(port, _MIPIA_COMMAND_LENGTH, \
8140
#define _MIPIC_COMMAND_LENGTH		(dev_priv->mipi_mmio_base + 0xb914)
8132
					_MIPIC_COMMAND_LENGTH)
-
 
8133
#define  COMMAND_LENGTH_SHIFT(n)			(8 * (n)) /* n: 0...3 */
8141
#define MIPI_COMMAND_LENGTH(port)	_MMIO_MIPI(port, _MIPIA_COMMAND_LENGTH, _MIPIC_COMMAND_LENGTH)
8134
#define  COMMAND_LENGTH_MASK(n)				(0xff << (8 * (n)))
-
 
Line 8135... Line 8142...
8135
 
8142
#define  COMMAND_LENGTH_SHIFT(n)			(8 * (n)) /* n: 0...3 */
8136
#define _MIPIA_READ_DATA_RETURN0	(dev_priv->mipi_mmio_base + 0xb118)
8143
#define  COMMAND_LENGTH_MASK(n)				(0xff << (8 * (n)))
8137
#define _MIPIC_READ_DATA_RETURN0	(dev_priv->mipi_mmio_base + 0xb918)
-
 
8138
#define MIPI_READ_DATA_RETURN(port, n) \
8144
 
8139
	(_MIPI_PORT(port, _MIPIA_READ_DATA_RETURN0, _MIPIC_READ_DATA_RETURN0) \
8145
#define _MIPIA_READ_DATA_RETURN0	(dev_priv->mipi_mmio_base + 0xb118)
Line 8140... Line 8146...
8140
					+ 4 * (n)) /* n: 0...7 */
8146
#define _MIPIC_READ_DATA_RETURN0	(dev_priv->mipi_mmio_base + 0xb918)
8141
 
8147
#define MIPI_READ_DATA_RETURN(port, n) _MMIO(_MIPI(port, _MIPIA_READ_DATA_RETURN0, _MIPIC_READ_DATA_RETURN0) + 4 * (n)) /* n: 0...7 */
8142
#define _MIPIA_READ_DATA_VALID		(dev_priv->mipi_mmio_base + 0xb138)
8148
 
Line 8143... Line 8149...
8143
#define _MIPIC_READ_DATA_VALID		(dev_priv->mipi_mmio_base + 0xb938)
8149
#define _MIPIA_READ_DATA_VALID		(dev_priv->mipi_mmio_base + 0xb138)
8144
#define MIPI_READ_DATA_VALID(port)	_MIPI_PORT(port, \
8150
#define _MIPIC_READ_DATA_VALID		(dev_priv->mipi_mmio_base + 0xb938)
Line 8145... Line 8151...
8145
				_MIPIA_READ_DATA_VALID, _MIPIC_READ_DATA_VALID)
8151
#define MIPI_READ_DATA_VALID(port)	_MMIO_MIPI(port, _MIPIA_READ_DATA_VALID, _MIPIC_READ_DATA_VALID)
8146
#define  READ_DATA_VALID(n)				(1 << (n))
8152
#define  READ_DATA_VALID(n)				(1 << (n))
8147
 
8153
 
8148
/* For UMS only (deprecated): */
8154
/* For UMS only (deprecated): */
8149
#define _PALETTE_A (dev_priv->info.display_mmio_offset + 0xa000)
8155
#define _PALETTE_A (dev_priv->info.display_mmio_offset + 0xa000)
Line 8150... Line 8156...
8150
#define _PALETTE_B (dev_priv->info.display_mmio_offset + 0xa800)
8156
#define _PALETTE_B (dev_priv->info.display_mmio_offset + 0xa800)