Merge drm/drm-next into drm-intel-gt-next
[platform/kernel/linux-rpi.git] / drivers / gpu / drm / i915 / i915_reg.h
index bcee121..1891e7f 100644 (file)
@@ -498,6 +498,18 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define   ECOBITS_PPGTT_CACHE64B       (3 << 8)
 #define   ECOBITS_PPGTT_CACHE4B                (0 << 8)
 
+#define GEN12_GAMCNTRL_CTRL                    _MMIO(0xcf54)
+#define   INVALIDATION_BROADCAST_MODE_DIS      REG_BIT(12)
+#define   GLOBAL_INVALIDATION_MODE             REG_BIT(2)
+
+#define GEN12_GAMSTLB_CTRL             _MMIO(0xcf4c)
+#define   CONTROL_BLOCK_CLKGATE_DIS    REG_BIT(12)
+#define   EGRESS_BLOCK_CLKGATE_DIS     REG_BIT(11)
+#define   TAG_BLOCK_CLKGATE_DIS                REG_BIT(7)
+
+#define GEN12_MERT_MOD_CTRL            _MMIO(0xcf28)
+#define   FORCE_MISS_FTLB              REG_BIT(3)
+
 #define GAB_CTL                                _MMIO(0x24000)
 #define   GAB_CTL_CONT_AFTER_PAGEFAULT (1 << 8)
 
@@ -719,6 +731,9 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 
 #define GEN12_OA_TLB_INV_CR _MMIO(0xceec)
 
+#define GEN12_SQCM             _MMIO(0x8724)
+#define   EN_32B_ACCESS                REG_BIT(30)
+
 /* Gen12 OAR unit */
 #define GEN12_OAR_OACONTROL _MMIO(0x2960)
 #define  GEN12_OAR_OACONTROL_COUNTER_FORMAT_SHIFT 1
@@ -770,6 +785,9 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define EU_PERF_CNTL5      _MMIO(0xe55c)
 #define EU_PERF_CNTL6      _MMIO(0xe65c)
 
+#define RT_CTRL                        _MMIO(0xe530)
+#define  DIS_NULL_QUERY                REG_BIT(10)
+
 /*
  * OA Boolean state
  */
@@ -2662,6 +2680,8 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define   RING_WAIT            (1 << 11) /* gen3+, PRBx_CTL */
 #define   RING_WAIT_SEMAPHORE  (1 << 10) /* gen6+ */
 
+#define GUCPMTIMESTAMP          _MMIO(0xC3E8)
+
 /* There are 16 64-bit CS General Purpose Registers per-engine on Gen8+ */
 #define GEN8_RING_CS_GPR(base, n)      _MMIO((base) + 0x600 + (n) * 8)
 #define GEN8_RING_CS_GPR_UDW(base, n)  _MMIO((base) + 0x600 + (n) * 8 + 4)
@@ -2772,6 +2792,9 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define VDBOX_CGCTL3F10(base)          _MMIO((base) + 0x3f10)
 #define   IECPUNIT_CLKGATE_DIS         REG_BIT(22)
 
+#define VDBOX_CGCTL3F18(base)          _MMIO((base) + 0x3f18)
+#define   ALNUNIT_CLKGATE_DIS          REG_BIT(13)
+
 #define ERROR_GEN6     _MMIO(0x40a0)
 #define GEN7_ERR_INT   _MMIO(0x44040)
 #define   ERR_INT_POISON               (1 << 31)
@@ -2870,6 +2893,15 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define   GEN9_PREEMPT_GPGPU_SYNC_SWITCH_DISABLE (1 << 2)
 #define   GEN11_ENABLE_32_PLANE_MODE (1 << 7)
 
+#define SCCGCTL94DC            _MMIO(0x94dc)
+#define   CG3DDISURB           REG_BIT(14)
+
+#define MLTICTXCTL             _MMIO(0xb170)
+#define   TDONRENDER           REG_BIT(2)
+
+#define L3SQCREG1_CCS0         _MMIO(0xb200)
+#define   FLUSHALLNONCOH       REG_BIT(5)
+
 /* WaClearTdlStateAckDirtyBits */
 #define GEN8_STATE_ACK         _MMIO(0x20F0)
 #define GEN9_STATE_ACK_SLICE1  _MMIO(0x20F8)
@@ -3106,7 +3138,8 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define GEN9_RCS_FE_FSM2 _MMIO(0x22a4)
 
 #define GEN10_CACHE_MODE_SS                    _MMIO(0xe420)
-#define   FLOAT_BLEND_OPTIMIZATION_ENABLE      (1 << 4)
+#define   ENABLE_PREFETCH_INTO_IC              REG_BIT(3)
+#define   FLOAT_BLEND_OPTIMIZATION_ENABLE      REG_BIT(4)
 
 /* Fuse readout registers for GT */
 #define HSW_PAVP_FUSE1                 _MMIO(0x911C)
@@ -4278,21 +4311,62 @@ enum {
 /*
  * GEN10 clock gating regs
  */
+
+#define UNSLCGCTL9440                  _MMIO(0x9440)
+#define   GAMTLBOACS_CLKGATE_DIS       REG_BIT(28)
+#define   GAMTLBVDBOX5_CLKGATE_DIS     REG_BIT(27)
+#define   GAMTLBVDBOX6_CLKGATE_DIS     REG_BIT(26)
+#define   GAMTLBVDBOX3_CLKGATE_DIS     REG_BIT(24)
+#define   GAMTLBVDBOX4_CLKGATE_DIS     REG_BIT(23)
+#define   GAMTLBVDBOX7_CLKGATE_DIS     REG_BIT(22)
+#define   GAMTLBVDBOX2_CLKGATE_DIS     REG_BIT(21)
+#define   GAMTLBVDBOX0_CLKGATE_DIS     REG_BIT(17)
+#define   GAMTLBKCR_CLKGATE_DIS                REG_BIT(16)
+#define   GAMTLBGUC_CLKGATE_DIS                REG_BIT(15)
+#define   GAMTLBBLT_CLKGATE_DIS                REG_BIT(14)
+#define   GAMTLBVDBOX1_CLKGATE_DIS     REG_BIT(6)
+
+#define UNSLCGCTL9444                  _MMIO(0x9444)
+#define   GAMTLBGFXA0_CLKGATE_DIS      REG_BIT(30)
+#define   GAMTLBGFXA1_CLKGATE_DIS      REG_BIT(29)
+#define   GAMTLBCOMPA0_CLKGATE_DIS     REG_BIT(28)
+#define   GAMTLBCOMPA1_CLKGATE_DIS     REG_BIT(27)
+#define   GAMTLBCOMPB0_CLKGATE_DIS     REG_BIT(26)
+#define   GAMTLBCOMPB1_CLKGATE_DIS     REG_BIT(25)
+#define   GAMTLBCOMPC0_CLKGATE_DIS     REG_BIT(24)
+#define   GAMTLBCOMPC1_CLKGATE_DIS     REG_BIT(23)
+#define   GAMTLBCOMPD0_CLKGATE_DIS     REG_BIT(22)
+#define   GAMTLBCOMPD1_CLKGATE_DIS     REG_BIT(21)
+#define   GAMTLBMERT_CLKGATE_DIS       REG_BIT(20)
+#define   GAMTLBVEBOX3_CLKGATE_DIS     REG_BIT(19)
+#define   GAMTLBVEBOX2_CLKGATE_DIS     REG_BIT(18)
+#define   GAMTLBVEBOX1_CLKGATE_DIS     REG_BIT(17)
+#define   GAMTLBVEBOX0_CLKGATE_DIS     REG_BIT(16)
+#define   LTCDD_CLKGATE_DIS            REG_BIT(10)
+
 #define SLICE_UNIT_LEVEL_CLKGATE       _MMIO(0x94d4)
 #define  SARBUNIT_CLKGATE_DIS          (1 << 5)
 #define  RCCUNIT_CLKGATE_DIS           (1 << 7)
 #define  MSCUNIT_CLKGATE_DIS           (1 << 10)
+#define  NODEDSS_CLKGATE_DIS           REG_BIT(12)
 #define  L3_CLKGATE_DIS                        REG_BIT(16)
 #define  L3_CR2X_CLKGATE_DIS           REG_BIT(17)
 
 #define SUBSLICE_UNIT_LEVEL_CLKGATE    _MMIO(0x9524)
-#define  GWUNIT_CLKGATE_DIS            (1 << 16)
+#define   DSS_ROUTER_CLKGATE_DIS       REG_BIT(28)
+#define   GWUNIT_CLKGATE_DIS           REG_BIT(16)
 
 #define SUBSLICE_UNIT_LEVEL_CLKGATE2   _MMIO(0x9528)
 #define  CPSSUNIT_CLKGATE_DIS          REG_BIT(9)
 
+#define SSMCGCTL9530                   _MMIO(0x9530)
+#define   RTFUNIT_CLKGATE_DIS          REG_BIT(18)
+
 #define UNSLICE_UNIT_LEVEL_CLKGATE     _MMIO(0x9434)
 #define   VFUNIT_CLKGATE_DIS           REG_BIT(20)
+#define   TSGUNIT_CLKGATE_DIS          REG_BIT(17) /* XEHPSDV */
+#define   CG3DDISCFEG_CLKGATE_DIS      REG_BIT(17) /* DG2 */
+#define   GAMEDIA_CLKGATE_DIS          REG_BIT(11)
 #define   HSUNIT_CLKGATE_DIS           REG_BIT(8)
 #define   VSUNIT_CLKGATE_DIS           REG_BIT(3)
 
@@ -8351,6 +8425,9 @@ enum {
 #define GEN9_CTX_PREEMPT_REG           _MMIO(0x2248)
 #define   GEN12_DISABLE_POSH_BUSY_FF_DOP_CG REG_BIT(11)
 
+#define GEN12_CS_DEBUG_MODE1_CCCSUNIT_BE_COMMON                _MMIO(0x20EC)
+#define   GEN12_REPLAY_MODE_GRANULARITY                        REG_BIT(0)
+
 #define GEN8_CS_CHICKEN1               _MMIO(0x2580)
 #define GEN9_PREEMPT_3D_OBJECT_LEVEL           (1 << 0)
 #define GEN9_PREEMPT_GPGPU_LEVEL(hi, lo)       (((hi) << 2) | ((lo) << 1))
@@ -8374,9 +8451,10 @@ enum {
   #define GEN8_ERRDETBCTRL (1 << 9)
 
 #define GEN11_COMMON_SLICE_CHICKEN3                    _MMIO(0x7304)
-  #define DG1_FLOAT_POINT_BLEND_OPT_STRICT_MODE_EN     REG_BIT(12)
-  #define GEN11_BLEND_EMB_FIX_DISABLE_IN_RCC           REG_BIT(11)
-  #define GEN12_DISABLE_CPS_AWARE_COLOR_PIPE           REG_BIT(9)
+#define   DG1_FLOAT_POINT_BLEND_OPT_STRICT_MODE_EN     REG_BIT(12)
+#define   XEHP_DUAL_SIMD8_SEQ_MERGE_DISABLE            REG_BIT(12)
+#define   GEN11_BLEND_EMB_FIX_DISABLE_IN_RCC           REG_BIT(11)
+#define   GEN12_DISABLE_CPS_AWARE_COLOR_PIPE           REG_BIT(9)
 
 #define HIZ_CHICKEN                                    _MMIO(0x7018)
 # define CHV_HZ_8X8_MODE_IN_1X                         REG_BIT(15)
@@ -8430,6 +8508,12 @@ enum {
 #define  GEN8_LQSC_FLUSH_COHERENT_LINES                (1 << 21)
 #define  GEN8_LQSQ_NONIA_COHERENT_ATOMICS_ENABLE REG_BIT(22)
 
+#define GEN11_L3SQCREG5                                _MMIO(0xb158)
+#define   L3_PWM_TIMER_INIT_VAL_MASK           REG_GENMASK(9, 0)
+
+#define XEHP_L3SCQREG7                         _MMIO(0xb188)
+#define   BLEND_FILL_CACHING_OPT_DIS           REG_BIT(3)
+
 /* GEN8 chicken */
 #define HDC_CHICKEN0                           _MMIO(0x7300)
 #define ICL_HDC_MODE                           _MMIO(0xE5F4)
@@ -8440,6 +8524,12 @@ enum {
 #define  HDC_FORCE_NON_COHERENT                        (1 << 4)
 #define  HDC_BARRIER_PERFORMANCE_DISABLE       (1 << 10)
 
+#define GEN12_HDC_CHICKEN0                                     _MMIO(0xE5F0)
+#define   LSC_L1_FLUSH_CTL_3D_DATAPORT_FLUSH_EVENTS_MASK       REG_GENMASK(13, 11)
+
+#define SARB_CHICKEN1                          _MMIO(0xe90c)
+#define   COMP_CKN_IN                          REG_GENMASK(30, 29)
+
 #define GEN8_HDC_CHICKEN1                      _MMIO(0x7304)
 
 /* GEN9 chicken */
@@ -8470,6 +8560,10 @@ enum {
 #define   PIXEL_ROUNDING_TRUNC_FB_PASSTHRU     (1 << 15)
 #define   PER_PIXEL_ALPHA_BYPASS_EN            (1 << 7)
 
+#define VFLSKPD                                _MMIO(0x62a8)
+#define   DIS_OVER_FETCH_CACHE         REG_BIT(1)
+#define   DIS_MULT_MISS_RD_SQUASH      REG_BIT(0)
+
 #define FF_MODE2                       _MMIO(0x6604)
 #define   FF_MODE2_GS_TIMER_MASK       REG_GENMASK(31, 24)
 #define   FF_MODE2_GS_TIMER_224                REG_FIELD_PREP(FF_MODE2_GS_TIMER_MASK, 224)
@@ -9293,6 +9387,9 @@ enum {
 #define   GEN8_SDEUNIT_CLOCK_GATE_DISABLE      (1 << 14)
 #define   GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ (1 << 28)
 
+#define UNSLCGCTL9430                          _MMIO(0x9430)
+#define   MSQDUNIT_CLKGATE_DIS                 REG_BIT(3)
+
 #define GEN6_GFXPAUSE                          _MMIO(0xA000)
 #define GEN6_RPNSWREQ                          _MMIO(0xA008)
 #define   GEN6_TURBO_DISABLE                   (1 << 31)
@@ -9608,24 +9705,39 @@ enum {
 #define   GEN9_CCS_TLB_PREFETCH_ENABLE (1 << 3)
 
 #define GEN8_ROW_CHICKEN               _MMIO(0xe4f0)
-#define   FLOW_CONTROL_ENABLE          (1 << 15)
-#define   PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE        (1 << 8)
-#define   STALL_DOP_GATING_DISABLE             (1 << 5)
-#define   THROTTLE_12_5                                (7 << 2)
-#define   DISABLE_EARLY_EOT                    (1 << 1)
+#define   FLOW_CONTROL_ENABLE                  REG_BIT(15)
+#define   UGM_BACKUP_MODE                      REG_BIT(13)
+#define   MDQ_ARBITRATION_MODE                 REG_BIT(12)
+#define   PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE        REG_BIT(8)
+#define   STALL_DOP_GATING_DISABLE             REG_BIT(5)
+#define   THROTTLE_12_5                                REG_GENMASK(4, 2)
+#define   DISABLE_EARLY_EOT                    REG_BIT(1)
 
 #define GEN7_ROW_CHICKEN2                      _MMIO(0xe4f4)
+#define   GEN12_DISABLE_READ_SUPPRESSION       REG_BIT(15)
 #define   GEN12_DISABLE_EARLY_READ             REG_BIT(14)
+#define   GEN12_ENABLE_LARGE_GRF_MODE          REG_BIT(12)
 #define   GEN12_PUSH_CONST_DEREF_HOLD_DIS      REG_BIT(8)
 
+#define LSC_CHICKEN_BIT_0                      _MMIO(0xe7c8)
+#define   FORCE_1_SUB_MESSAGE_PER_FRAGMENT     REG_BIT(15)
+#define LSC_CHICKEN_BIT_0_UDW                  _MMIO(0xe7c8 + 4)
+#define   DIS_CHAIN_2XSIMD8                    REG_BIT(55 - 32)
+#define   FORCE_SLM_FENCE_SCOPE_TO_TILE                REG_BIT(42 - 32)
+#define   FORCE_UGM_FENCE_SCOPE_TO_TILE                REG_BIT(41 - 32)
+#define   MAXREQS_PER_BANK                     REG_GENMASK(39 - 32, 37 - 32)
+#define   DISABLE_128B_EVICTION_COMMAND_UDW    REG_BIT(36 - 32)
+
 #define GEN7_ROW_CHICKEN2_GT2          _MMIO(0xf4f4)
 #define   DOP_CLOCK_GATING_DISABLE     (1 << 0)
 #define   PUSH_CONSTANT_DEREF_DISABLE  (1 << 8)
 #define   GEN11_TDL_CLOCK_GATING_FIX_DISABLE   (1 << 1)
 
-#define GEN9_ROW_CHICKEN4              _MMIO(0xe48c)
-#define   GEN12_DISABLE_TDL_PUSH       REG_BIT(9)
-#define   GEN11_DIS_PICK_2ND_EU                REG_BIT(7)
+#define GEN9_ROW_CHICKEN4                              _MMIO(0xe48c)
+#define   GEN12_DISABLE_GRF_CLEAR                      REG_BIT(13)
+#define   GEN12_DISABLE_TDL_PUSH                       REG_BIT(9)
+#define   GEN11_DIS_PICK_2ND_EU                                REG_BIT(7)
+#define   GEN12_DISABLE_HDR_PAST_PAYLOAD_HOLD_FIX      REG_BIT(4)
 
 #define HSW_ROW_CHICKEN3               _MMIO(0xe49c)
 #define  HSW_ROW_CHICKEN3_L3_GLOBAL_ATOMICS_DISABLE    (1 << 6)
@@ -9640,9 +9752,10 @@ enum {
 #define   GEN8_SAMPLER_POWER_BYPASS_DIS        (1 << 1)
 
 #define GEN9_HALF_SLICE_CHICKEN7       _MMIO(0xe194)
-#define   GEN9_SAMPLER_HASH_COMPRESSED_READ_ADDR       (1 << 8)
-#define   GEN9_ENABLE_YV12_BUGFIX      (1 << 4)
-#define   GEN9_ENABLE_GPGPU_PREEMPTION (1 << 2)
+#define   DG2_DISABLE_ROUND_ENABLE_ALLOW_FOR_SSLA      REG_BIT(15)
+#define   GEN9_SAMPLER_HASH_COMPRESSED_READ_ADDR       REG_BIT(8)
+#define   GEN9_ENABLE_YV12_BUGFIX                      REG_BIT(4)
+#define   GEN9_ENABLE_GPGPU_PREEMPTION                 REG_BIT(2)
 
 /* Audio */
 #define G4X_AUD_VID_DID                        _MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x62020)
@@ -12466,11 +12579,19 @@ enum skl_power_gate {
 #define   PMFLUSH_GAPL3UNBLOCK         (1 << 21)
 #define   PMFLUSHDONE_LNEBLK           (1 << 22)
 
+#define XEHP_L3NODEARBCFG              _MMIO(0xb0b4)
+#define   XEHP_LNESPARE                        REG_BIT(19)
+
 #define GEN12_GLOBAL_MOCS(i)   _MMIO(0x4000 + (i) * 4) /* Global MOCS regs */
 
 #define GEN12_GSMBASE                  _MMIO(0x108100)
 #define GEN12_DSMBASE                  _MMIO(0x1080C0)
 
+#define XEHP_CLOCK_GATE_DIS            _MMIO(0x101014)
+#define   SGSI_SIDECLK_DIS             REG_BIT(17)
+#define   SGGI_DIS                     REG_BIT(15)
+#define   SGR_DIS                      REG_BIT(13)
+
 /* gamt regs */
 #define GEN8_L3_LRA_1_GPGPU _MMIO(0x4dd4)
 #define   GEN8_L3_LRA_1_GPGPU_DEFAULT_VALUE_BDW  0x67F1427F /* max/min for LRA1/2 */
@@ -12847,4 +12968,7 @@ enum skl_power_gate {
 #define CLKGATE_DIS_MISC                       _MMIO(0x46534)
 #define  CLKGATE_DIS_MISC_DMASC_GATING_DIS     REG_BIT(21)
 
+#define SLICE_COMMON_ECO_CHICKEN1              _MMIO(0x731C)
+#define   MSC_MSAA_REODER_BUF_BYPASS_DISABLE   REG_BIT(14)
+
 #endif /* _I915_REG_H_ */