xref: /linux/include/drm/intel/intel_gmd_interrupt_regs.h (revision 4a57e0913e8c7fff407e97909f4ae48caa84d612)
185bba73bSUma Shankar /* SPDX-License-Identifier: MIT */
285bba73bSUma Shankar /* Copyright © 2026 Intel Corporation */
385bba73bSUma Shankar 
485bba73bSUma Shankar #ifndef _INTEL_GMD_INTERRUPT_REGS_H_
585bba73bSUma Shankar #define _INTEL_GMD_INTERRUPT_REGS_H_
685bba73bSUma Shankar 
785bba73bSUma Shankar #define I915_PM_INTERRUPT				(1 << 31)
885bba73bSUma Shankar #define I915_ISP_INTERRUPT				(1 << 22)
985bba73bSUma Shankar #define I915_LPE_PIPE_B_INTERRUPT			(1 << 21)
1085bba73bSUma Shankar #define I915_LPE_PIPE_A_INTERRUPT			(1 << 20)
1185bba73bSUma Shankar #define I915_MIPIC_INTERRUPT				(1 << 19)
1285bba73bSUma Shankar #define I915_MIPIA_INTERRUPT				(1 << 18)
1385bba73bSUma Shankar #define I915_PIPE_CONTROL_NOTIFY_INTERRUPT		(1 << 18)
1485bba73bSUma Shankar #define I915_DISPLAY_PORT_INTERRUPT			(1 << 17)
1585bba73bSUma Shankar #define I915_DISPLAY_PIPE_C_HBLANK_INTERRUPT		(1 << 16)
1685bba73bSUma Shankar #define I915_MASTER_ERROR_INTERRUPT			(1 << 15)
1785bba73bSUma Shankar #define I915_DISPLAY_PIPE_B_HBLANK_INTERRUPT		(1 << 14)
1885bba73bSUma Shankar #define I915_GMCH_THERMAL_SENSOR_EVENT_INTERRUPT	(1 << 14) /* p-state */
1985bba73bSUma Shankar #define I915_DISPLAY_PIPE_A_HBLANK_INTERRUPT		(1 << 13)
2085bba73bSUma Shankar #define I915_HWB_OOM_INTERRUPT				(1 << 13)
2185bba73bSUma Shankar #define I915_LPE_PIPE_C_INTERRUPT			(1 << 12)
2285bba73bSUma Shankar #define I915_SYNC_STATUS_INTERRUPT			(1 << 12)
2385bba73bSUma Shankar #define I915_MISC_INTERRUPT				(1 << 11)
2485bba73bSUma Shankar #define I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT	(1 << 11)
2585bba73bSUma Shankar #define I915_DISPLAY_PIPE_C_VBLANK_INTERRUPT		(1 << 10)
2685bba73bSUma Shankar #define I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT	(1 << 10)
2785bba73bSUma Shankar #define I915_DISPLAY_PIPE_C_EVENT_INTERRUPT		(1 << 9)
2885bba73bSUma Shankar #define I915_OVERLAY_PLANE_FLIP_PENDING_INTERRUPT	(1 << 9)
2985bba73bSUma Shankar #define I915_DISPLAY_PIPE_C_DPBM_INTERRUPT		(1 << 8)
3085bba73bSUma Shankar #define I915_DISPLAY_PLANE_C_FLIP_PENDING_INTERRUPT	(1 << 8)
3185bba73bSUma Shankar #define I915_DISPLAY_PIPE_A_VBLANK_INTERRUPT		(1 << 7)
3285bba73bSUma Shankar #define I915_DISPLAY_PIPE_A_EVENT_INTERRUPT		(1 << 6)
3385bba73bSUma Shankar #define I915_DISPLAY_PIPE_B_VBLANK_INTERRUPT		(1 << 5)
3485bba73bSUma Shankar #define I915_DISPLAY_PIPE_B_EVENT_INTERRUPT		(1 << 4)
3585bba73bSUma Shankar #define I915_DISPLAY_PIPE_A_DPBM_INTERRUPT		(1 << 3)
3685bba73bSUma Shankar #define I915_DISPLAY_PIPE_B_DPBM_INTERRUPT		(1 << 2)
3785bba73bSUma Shankar #define I915_DEBUG_INTERRUPT				(1 << 2)
3885bba73bSUma Shankar #define I915_WINVALID_INTERRUPT				(1 << 1)
3985bba73bSUma Shankar #define I915_USER_INTERRUPT				(1 << 1)
4085bba73bSUma Shankar #define I915_ASLE_INTERRUPT				(1 << 0)
4185bba73bSUma Shankar #define I915_BSD_USER_INTERRUPT				(1 << 25)
4285bba73bSUma Shankar 
43*6ef8bf1eSUma Shankar #define GEN8_MASTER_IRQ			_MMIO(0x44200)
44*6ef8bf1eSUma Shankar #define  GEN8_MASTER_IRQ_CONTROL	(1 << 31)
45*6ef8bf1eSUma Shankar #define  GEN8_PCU_IRQ			(1 << 30)
46*6ef8bf1eSUma Shankar #define  GEN8_DE_PCH_IRQ		(1 << 23)
47*6ef8bf1eSUma Shankar #define  GEN8_DE_MISC_IRQ		(1 << 22)
48*6ef8bf1eSUma Shankar #define  GEN8_DE_PORT_IRQ		(1 << 20)
49*6ef8bf1eSUma Shankar #define  GEN8_DE_PIPE_C_IRQ		(1 << 18)
50*6ef8bf1eSUma Shankar #define  GEN8_DE_PIPE_B_IRQ		(1 << 17)
51*6ef8bf1eSUma Shankar #define  GEN8_DE_PIPE_A_IRQ		(1 << 16)
52*6ef8bf1eSUma Shankar #define  GEN8_DE_PIPE_IRQ(pipe)		(1 << (16 + (pipe)))
53*6ef8bf1eSUma Shankar #define  GEN8_GT_VECS_IRQ		(1 << 6)
54*6ef8bf1eSUma Shankar #define  GEN8_GT_GUC_IRQ		(1 << 5)
55*6ef8bf1eSUma Shankar #define  GEN8_GT_PM_IRQ			(1 << 4)
56*6ef8bf1eSUma Shankar #define  GEN8_GT_VCS1_IRQ		(1 << 3) /* NB: VCS2 in bspec! */
57*6ef8bf1eSUma Shankar #define  GEN8_GT_VCS0_IRQ		(1 << 2) /* NB: VCS1 in bpsec! */
58*6ef8bf1eSUma Shankar #define  GEN8_GT_BCS_IRQ		(1 << 1)
59*6ef8bf1eSUma Shankar #define  GEN8_GT_RCS_IRQ		(1 << 0)
60*6ef8bf1eSUma Shankar 
61*6ef8bf1eSUma Shankar #define GEN11_GU_MISC_ISR	_MMIO(0x444f0)
62*6ef8bf1eSUma Shankar #define GEN11_GU_MISC_IMR	_MMIO(0x444f4)
63*6ef8bf1eSUma Shankar #define GEN11_GU_MISC_IIR	_MMIO(0x444f8)
64*6ef8bf1eSUma Shankar #define GEN11_GU_MISC_IER	_MMIO(0x444fc)
65*6ef8bf1eSUma Shankar #define  GEN11_GU_MISC_GSE	(1 << 27)
66*6ef8bf1eSUma Shankar 
67*6ef8bf1eSUma Shankar #define GEN11_GU_MISC_IRQ_REGS		I915_IRQ_REGS(GEN11_GU_MISC_IMR, \
68*6ef8bf1eSUma Shankar 						      GEN11_GU_MISC_IER, \
69*6ef8bf1eSUma Shankar 						      GEN11_GU_MISC_IIR)
70*6ef8bf1eSUma Shankar 
71*6ef8bf1eSUma Shankar #define GEN11_GFX_MSTR_IRQ		_MMIO(0x190010)
72*6ef8bf1eSUma Shankar #define  GEN11_MASTER_IRQ		(1 << 31)
73*6ef8bf1eSUma Shankar #define  GEN11_PCU_IRQ			(1 << 30)
74*6ef8bf1eSUma Shankar #define  GEN11_GU_MISC_IRQ		(1 << 29)
75*6ef8bf1eSUma Shankar #define  GEN11_DISPLAY_IRQ		(1 << 16)
76*6ef8bf1eSUma Shankar #define  GEN11_GT_DW_IRQ(x)		(1 << (x))
77*6ef8bf1eSUma Shankar #define  GEN11_GT_DW1_IRQ		(1 << 1)
78*6ef8bf1eSUma Shankar #define  GEN11_GT_DW0_IRQ		(1 << 0)
79*6ef8bf1eSUma Shankar 
80*6ef8bf1eSUma Shankar #define SCPD0		_MMIO(0x209c) /* 915+ only */
81*6ef8bf1eSUma Shankar #define  SCPD_FBC_IGNORE_3D			(1 << 6)
82*6ef8bf1eSUma Shankar #define  CSTATE_RENDER_CLOCK_GATE_DISABLE	(1 << 5)
83*6ef8bf1eSUma Shankar 
84*6ef8bf1eSUma Shankar #define VLV_IIR_RW	_MMIO(VLV_DISPLAY_BASE + 0x2084)
85*6ef8bf1eSUma Shankar #define VLV_IER		_MMIO(VLV_DISPLAY_BASE + 0x20a0)
86*6ef8bf1eSUma Shankar #define VLV_IIR		_MMIO(VLV_DISPLAY_BASE + 0x20a4)
87*6ef8bf1eSUma Shankar #define VLV_IMR		_MMIO(VLV_DISPLAY_BASE + 0x20a8)
88*6ef8bf1eSUma Shankar #define VLV_ISR		_MMIO(VLV_DISPLAY_BASE + 0x20ac)
89*6ef8bf1eSUma Shankar #define VLV_PCBR	_MMIO(VLV_DISPLAY_BASE + 0x2120)
90*6ef8bf1eSUma Shankar #define VLV_PCBR_ADDR_SHIFT	12
91*6ef8bf1eSUma Shankar 
9285bba73bSUma Shankar #endif
93