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