Merge tag 'drm-next-2021-08-31-1' of git://anongit.freedesktop.org/drm/drm
[linux-2.6-microblaze.git] / drivers / gpu / drm / i915 / i915_reg.h
index 476bb3b..664970f 100644 (file)
@@ -395,10 +395,18 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define  GEN11_GRDOM_MEDIA2            (1 << 6)
 #define  GEN11_GRDOM_MEDIA3            (1 << 7)
 #define  GEN11_GRDOM_MEDIA4            (1 << 8)
+#define  GEN11_GRDOM_MEDIA5            (1 << 9)
+#define  GEN11_GRDOM_MEDIA6            (1 << 10)
+#define  GEN11_GRDOM_MEDIA7            (1 << 11)
+#define  GEN11_GRDOM_MEDIA8            (1 << 12)
 #define  GEN11_GRDOM_VECS              (1 << 13)
 #define  GEN11_GRDOM_VECS2             (1 << 14)
+#define  GEN11_GRDOM_VECS3             (1 << 15)
+#define  GEN11_GRDOM_VECS4             (1 << 16)
 #define  GEN11_GRDOM_SFC0              (1 << 17)
 #define  GEN11_GRDOM_SFC1              (1 << 18)
+#define  GEN11_GRDOM_SFC2              (1 << 19)
+#define  GEN11_GRDOM_SFC3              (1 << 20)
 
 #define  GEN11_VCS_SFC_RESET_BIT(instance)     (GEN11_GRDOM_SFC0 << ((instance) >> 1))
 #define  GEN11_VECS_SFC_RESET_BIT(instance)    (GEN11_GRDOM_SFC0 << (instance))
@@ -1877,7 +1885,7 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define BXT_PORT_CL1CM_DW30(phy)       _BXT_PHY((phy), _PORT_CL1CM_DW30_BC)
 
 /*
- * CNL/ICL Port/COMBO-PHY Registers
+ * ICL Port/COMBO-PHY Registers
  */
 #define _ICL_COMBOPHY_A                        0x162000
 #define _ICL_COMBOPHY_B                        0x6C000
@@ -1891,11 +1899,10 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
                                              _RKL_COMBOPHY_D, \
                                              _ADL_COMBOPHY_E)
 
-/* CNL/ICL Port CL_DW registers */
+/* ICL Port CL_DW registers */
 #define _ICL_PORT_CL_DW(dw, phy)       (_ICL_COMBOPHY(phy) + \
                                         4 * (dw))
 
-#define CNL_PORT_CL1CM_DW5             _MMIO(0x162014)
 #define ICL_PORT_CL_DW5(phy)           _MMIO(_ICL_PORT_CL_DW(5, phy))
 #define   CL_POWER_DOWN_ENABLE         (1 << 4)
 #define   SUS_CLOCK_CONFIG             (3 << 0)
@@ -1920,19 +1927,16 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define ICL_PORT_CL_DW12(phy)          _MMIO(_ICL_PORT_CL_DW(12, phy))
 #define   ICL_LANE_ENABLE_AUX          (1 << 0)
 
-/* CNL/ICL Port COMP_DW registers */
+/* ICL Port COMP_DW registers */
 #define _ICL_PORT_COMP                 0x100
 #define _ICL_PORT_COMP_DW(dw, phy)     (_ICL_COMBOPHY(phy) + \
                                         _ICL_PORT_COMP + 4 * (dw))
 
-#define CNL_PORT_COMP_DW0              _MMIO(0x162100)
 #define ICL_PORT_COMP_DW0(phy)         _MMIO(_ICL_PORT_COMP_DW(0, phy))
 #define   COMP_INIT                    (1 << 31)
 
-#define CNL_PORT_COMP_DW1              _MMIO(0x162104)
 #define ICL_PORT_COMP_DW1(phy)         _MMIO(_ICL_PORT_COMP_DW(1, phy))
 
-#define CNL_PORT_COMP_DW3              _MMIO(0x16210c)
 #define ICL_PORT_COMP_DW3(phy)         _MMIO(_ICL_PORT_COMP_DW(3, phy))
 #define   PROCESS_INFO_DOT_0           (0 << 26)
 #define   PROCESS_INFO_DOT_1           (1 << 26)
@@ -1948,38 +1952,11 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define ICL_PORT_COMP_DW8(phy)         _MMIO(_ICL_PORT_COMP_DW(8, phy))
 #define   IREFGEN                      (1 << 24)
 
-#define CNL_PORT_COMP_DW9              _MMIO(0x162124)
 #define ICL_PORT_COMP_DW9(phy)         _MMIO(_ICL_PORT_COMP_DW(9, phy))
 
-#define CNL_PORT_COMP_DW10             _MMIO(0x162128)
 #define ICL_PORT_COMP_DW10(phy)                _MMIO(_ICL_PORT_COMP_DW(10, phy))
 
-/* CNL/ICL Port PCS registers */
-#define _CNL_PORT_PCS_DW1_GRP_AE       0x162304
-#define _CNL_PORT_PCS_DW1_GRP_B                0x162384
-#define _CNL_PORT_PCS_DW1_GRP_C                0x162B04
-#define _CNL_PORT_PCS_DW1_GRP_D                0x162B84
-#define _CNL_PORT_PCS_DW1_GRP_F                0x162A04
-#define _CNL_PORT_PCS_DW1_LN0_AE       0x162404
-#define _CNL_PORT_PCS_DW1_LN0_B                0x162604
-#define _CNL_PORT_PCS_DW1_LN0_C                0x162C04
-#define _CNL_PORT_PCS_DW1_LN0_D                0x162E04
-#define _CNL_PORT_PCS_DW1_LN0_F                0x162804
-#define CNL_PORT_PCS_DW1_GRP(phy)      _MMIO(_PICK(phy, \
-                                                   _CNL_PORT_PCS_DW1_GRP_AE, \
-                                                   _CNL_PORT_PCS_DW1_GRP_B, \
-                                                   _CNL_PORT_PCS_DW1_GRP_C, \
-                                                   _CNL_PORT_PCS_DW1_GRP_D, \
-                                                   _CNL_PORT_PCS_DW1_GRP_AE, \
-                                                   _CNL_PORT_PCS_DW1_GRP_F))
-#define CNL_PORT_PCS_DW1_LN0(phy)      _MMIO(_PICK(phy, \
-                                                   _CNL_PORT_PCS_DW1_LN0_AE, \
-                                                   _CNL_PORT_PCS_DW1_LN0_B, \
-                                                   _CNL_PORT_PCS_DW1_LN0_C, \
-                                                   _CNL_PORT_PCS_DW1_LN0_D, \
-                                                   _CNL_PORT_PCS_DW1_LN0_AE, \
-                                                   _CNL_PORT_PCS_DW1_LN0_F))
-
+/* ICL Port PCS registers */
 #define _ICL_PORT_PCS_AUX              0x300
 #define _ICL_PORT_PCS_GRP              0x600
 #define _ICL_PORT_PCS_LN(ln)           (0x800 + (ln) * 0x100)
@@ -1998,34 +1975,7 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define   LATENCY_OPTIM_MASK           (0x3 << 2)
 #define   LATENCY_OPTIM_VAL(x)         ((x) << 2)
 
-/* CNL/ICL Port TX registers */
-#define _CNL_PORT_TX_AE_GRP_OFFSET             0x162340
-#define _CNL_PORT_TX_B_GRP_OFFSET              0x1623C0
-#define _CNL_PORT_TX_C_GRP_OFFSET              0x162B40
-#define _CNL_PORT_TX_D_GRP_OFFSET              0x162BC0
-#define _CNL_PORT_TX_F_GRP_OFFSET              0x162A40
-#define _CNL_PORT_TX_AE_LN0_OFFSET             0x162440
-#define _CNL_PORT_TX_B_LN0_OFFSET              0x162640
-#define _CNL_PORT_TX_C_LN0_OFFSET              0x162C40
-#define _CNL_PORT_TX_D_LN0_OFFSET              0x162E40
-#define _CNL_PORT_TX_F_LN0_OFFSET              0x162840
-#define _CNL_PORT_TX_DW_GRP(dw, port)  (_PICK((port), \
-                                              _CNL_PORT_TX_AE_GRP_OFFSET, \
-                                              _CNL_PORT_TX_B_GRP_OFFSET, \
-                                              _CNL_PORT_TX_B_GRP_OFFSET, \
-                                              _CNL_PORT_TX_D_GRP_OFFSET, \
-                                              _CNL_PORT_TX_AE_GRP_OFFSET, \
-                                              _CNL_PORT_TX_F_GRP_OFFSET) + \
-                                              4 * (dw))
-#define _CNL_PORT_TX_DW_LN0(dw, port)  (_PICK((port), \
-                                              _CNL_PORT_TX_AE_LN0_OFFSET, \
-                                              _CNL_PORT_TX_B_LN0_OFFSET, \
-                                              _CNL_PORT_TX_B_LN0_OFFSET, \
-                                              _CNL_PORT_TX_D_LN0_OFFSET, \
-                                              _CNL_PORT_TX_AE_LN0_OFFSET, \
-                                              _CNL_PORT_TX_F_LN0_OFFSET) + \
-                                              4 * (dw))
-
+/* ICL Port TX registers */
 #define _ICL_PORT_TX_AUX               0x380
 #define _ICL_PORT_TX_GRP               0x680
 #define _ICL_PORT_TX_LN(ln)            (0x880 + (ln) * 0x100)
@@ -2037,8 +1987,6 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define _ICL_PORT_TX_DW_LN(dw, ln, phy) (_ICL_COMBOPHY(phy) + \
                                          _ICL_PORT_TX_LN(ln) + 4 * (dw))
 
-#define CNL_PORT_TX_DW2_GRP(port)      _MMIO(_CNL_PORT_TX_DW_GRP(2, port))
-#define CNL_PORT_TX_DW2_LN0(port)      _MMIO(_CNL_PORT_TX_DW_LN0(2, port))
 #define ICL_PORT_TX_DW2_AUX(phy)       _MMIO(_ICL_PORT_TX_DW_AUX(2, phy))
 #define ICL_PORT_TX_DW2_GRP(phy)       _MMIO(_ICL_PORT_TX_DW_GRP(2, phy))
 #define ICL_PORT_TX_DW2_LN0(phy)       _MMIO(_ICL_PORT_TX_DW_LN(2, 0, phy))
@@ -2051,13 +1999,6 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define   RCOMP_SCALAR(x)              ((x) << 0)
 #define   RCOMP_SCALAR_MASK            (0xFF << 0)
 
-#define _CNL_PORT_TX_DW4_LN0_AE                0x162450
-#define _CNL_PORT_TX_DW4_LN1_AE                0x1624D0
-#define CNL_PORT_TX_DW4_GRP(port)      _MMIO(_CNL_PORT_TX_DW_GRP(4, (port)))
-#define CNL_PORT_TX_DW4_LN0(port)      _MMIO(_CNL_PORT_TX_DW_LN0(4, (port)))
-#define CNL_PORT_TX_DW4_LN(ln, port)   _MMIO(_CNL_PORT_TX_DW_LN0(4, (port)) + \
-                                          ((ln) * (_CNL_PORT_TX_DW4_LN1_AE - \
-                                                   _CNL_PORT_TX_DW4_LN0_AE)))
 #define ICL_PORT_TX_DW4_AUX(phy)       _MMIO(_ICL_PORT_TX_DW_AUX(4, phy))
 #define ICL_PORT_TX_DW4_GRP(phy)       _MMIO(_ICL_PORT_TX_DW_GRP(4, phy))
 #define ICL_PORT_TX_DW4_LN0(phy)       _MMIO(_ICL_PORT_TX_DW_LN(4, 0, phy))
@@ -2070,8 +2011,6 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define   CURSOR_COEFF(x)              ((x) << 0)
 #define   CURSOR_COEFF_MASK            (0x3F << 0)
 
-#define CNL_PORT_TX_DW5_GRP(port)      _MMIO(_CNL_PORT_TX_DW_GRP(5, port))
-#define CNL_PORT_TX_DW5_LN0(port)      _MMIO(_CNL_PORT_TX_DW_LN0(5, port))
 #define ICL_PORT_TX_DW5_AUX(phy)       _MMIO(_ICL_PORT_TX_DW_AUX(5, phy))
 #define ICL_PORT_TX_DW5_GRP(phy)       _MMIO(_ICL_PORT_TX_DW_GRP(5, phy))
 #define ICL_PORT_TX_DW5_LN0(phy)       _MMIO(_ICL_PORT_TX_DW_LN(5, 0, phy))
@@ -2083,8 +2022,6 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define   RTERM_SELECT(x)              ((x) << 3)
 #define   RTERM_SELECT_MASK            (0x7 << 3)
 
-#define CNL_PORT_TX_DW7_GRP(port)      _MMIO(_CNL_PORT_TX_DW_GRP(7, (port)))
-#define CNL_PORT_TX_DW7_LN0(port)      _MMIO(_CNL_PORT_TX_DW_LN0(7, (port)))
 #define ICL_PORT_TX_DW7_AUX(phy)       _MMIO(_ICL_PORT_TX_DW_AUX(7, phy))
 #define ICL_PORT_TX_DW7_GRP(phy)       _MMIO(_ICL_PORT_TX_DW_GRP(7, phy))
 #define ICL_PORT_TX_DW7_LN0(phy)       _MMIO(_ICL_PORT_TX_DW_LN(7, 0, phy))
@@ -2278,6 +2215,68 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define   MG_DP_MODE_CFG_DP_X2_MODE                    (1 << 7)
 #define   MG_DP_MODE_CFG_DP_X1_MODE                    (1 << 6)
 
+/*
+ * DG2 SNPS PHY registers (TC1 = PHY_E)
+ */
+#define _SNPS_PHY_A_BASE                       0x168000
+#define _SNPS_PHY_B_BASE                       0x169000
+#define _SNPS_PHY(phy)                         _PHY(phy, \
+                                                    _SNPS_PHY_A_BASE, \
+                                                    _SNPS_PHY_B_BASE)
+#define _SNPS2(phy, reg)                       (_SNPS_PHY(phy) - \
+                                                _SNPS_PHY_A_BASE + (reg))
+#define _MMIO_SNPS(phy, reg)                   _MMIO(_SNPS2(phy, reg))
+#define _MMIO_SNPS_LN(ln, phy, reg)            _MMIO(_SNPS2(phy, \
+                                                            (reg) + (ln) * 0x10))
+
+#define SNPS_PHY_MPLLB_CP(phy)                 _MMIO_SNPS(phy, 0x168000)
+#define   SNPS_PHY_MPLLB_CP_INT                        REG_GENMASK(31, 25)
+#define   SNPS_PHY_MPLLB_CP_INT_GS             REG_GENMASK(23, 17)
+#define   SNPS_PHY_MPLLB_CP_PROP               REG_GENMASK(15, 9)
+#define   SNPS_PHY_MPLLB_CP_PROP_GS            REG_GENMASK(7, 1)
+
+#define SNPS_PHY_MPLLB_DIV(phy)                        _MMIO_SNPS(phy, 0x168004)
+#define   SNPS_PHY_MPLLB_FORCE_EN              REG_BIT(31)
+#define   SNPS_PHY_MPLLB_DIV5_CLK_EN           REG_BIT(29)
+#define   SNPS_PHY_MPLLB_V2I                   REG_GENMASK(27, 26)
+#define   SNPS_PHY_MPLLB_FREQ_VCO              REG_GENMASK(25, 24)
+#define   SNPS_PHY_MPLLB_PMIX_EN               REG_BIT(10)
+#define   SNPS_PHY_MPLLB_TX_CLK_DIV            REG_GENMASK(7, 5)
+
+#define SNPS_PHY_MPLLB_FRACN1(phy)             _MMIO_SNPS(phy, 0x168008)
+#define   SNPS_PHY_MPLLB_FRACN_EN              REG_BIT(31)
+#define   SNPS_PHY_MPLLB_FRACN_CGG_UPDATE_EN   REG_BIT(30)
+#define   SNPS_PHY_MPLLB_FRACN_DEN             REG_GENMASK(15, 0)
+
+#define SNPS_PHY_MPLLB_FRACN2(phy)             _MMIO_SNPS(phy, 0x16800C)
+#define   SNPS_PHY_MPLLB_FRACN_REM             REG_GENMASK(31, 16)
+#define   SNPS_PHY_MPLLB_FRACN_QUOT            REG_GENMASK(15, 0)
+
+#define SNPS_PHY_MPLLB_SSCEN(phy)              _MMIO_SNPS(phy, 0x168014)
+#define   SNPS_PHY_MPLLB_SSC_EN                        REG_BIT(31)
+#define   SNPS_PHY_MPLLB_SSC_UP_SPREAD         REG_BIT(30)
+#define   SNPS_PHY_MPLLB_SSC_PEAK              REG_GENMASK(29, 10)
+
+#define SNPS_PHY_MPLLB_SSCSTEP(phy)            _MMIO_SNPS(phy, 0x168018)
+#define   SNPS_PHY_MPLLB_SSC_STEPSIZE          REG_GENMASK(31, 11)
+
+#define SNPS_PHY_MPLLB_DIV2(phy)               _MMIO_SNPS(phy, 0x16801C)
+#define   SNPS_PHY_MPLLB_HDMI_PIXEL_CLK_DIV    REG_GENMASK(19, 18)
+#define   SNPS_PHY_MPLLB_HDMI_DIV              REG_GENMASK(17, 15)
+#define   SNPS_PHY_MPLLB_REF_CLK_DIV           REG_GENMASK(14, 12)
+#define   SNPS_PHY_MPLLB_MULTIPLIER            REG_GENMASK(11, 0)
+
+#define SNPS_PHY_REF_CONTROL(phy)              _MMIO_SNPS(phy, 0x168188)
+#define   SNPS_PHY_REF_CONTROL_REF_RANGE       REG_GENMASK(31, 27)
+
+#define SNPS_PHY_TX_REQ(phy)                   _MMIO_SNPS(phy, 0x168200)
+#define   SNPS_PHY_TX_REQ_LN_DIS_PWR_STATE_PSR REG_GENMASK(31, 30)
+
+#define SNPS_PHY_TX_EQ(ln, phy)                        _MMIO_SNPS_LN(ln, phy, 0x168300)
+#define   SNPS_PHY_TX_EQ_MAIN                  REG_GENMASK(23, 18)
+#define   SNPS_PHY_TX_EQ_POST                  REG_GENMASK(15, 10)
+#define   SNPS_PHY_TX_EQ_PRE                   REG_GENMASK(7, 2)
+
 /* The spec defines this only for BXT PHY0, but lets assume that this
  * would exist for PHY1 too if it had a second channel.
  */
@@ -2516,9 +2515,15 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define GEN11_BSD2_RING_BASE   0x1c4000
 #define GEN11_BSD3_RING_BASE   0x1d0000
 #define GEN11_BSD4_RING_BASE   0x1d4000
+#define XEHP_BSD5_RING_BASE    0x1e0000
+#define XEHP_BSD6_RING_BASE    0x1e4000
+#define XEHP_BSD7_RING_BASE    0x1f0000
+#define XEHP_BSD8_RING_BASE    0x1f4000
 #define VEBOX_RING_BASE                0x1a000
 #define GEN11_VEBOX_RING_BASE          0x1c8000
 #define GEN11_VEBOX2_RING_BASE         0x1d8000
+#define XEHP_VEBOX3_RING_BASE          0x1e8000
+#define XEHP_VEBOX4_RING_BASE          0x1f8000
 #define BLT_RING_BASE          0x22000
 #define RING_TAIL(base)                _MMIO((base) + 0x30)
 #define RING_HEAD(base)                _MMIO((base) + 0x34)
@@ -2572,7 +2577,16 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define   ARB_MODE_BWGTLB_DISABLE (1 << 9)
 #define   ARB_MODE_SWIZZLE_BDW (1 << 1)
 #define RENDER_HWS_PGA_GEN7    _MMIO(0x04080)
-#define RING_FAULT_REG(engine) _MMIO(0x4094 + 0x100 * (engine)->hw_id)
+
+#define _RING_FAULT_REG_RCS        0x4094
+#define _RING_FAULT_REG_VCS        0x4194
+#define _RING_FAULT_REG_BCS        0x4294
+#define _RING_FAULT_REG_VECS       0x4394
+#define RING_FAULT_REG(engine)     _MMIO(_PICK((engine)->class, \
+                                              _RING_FAULT_REG_RCS, \
+                                              _RING_FAULT_REG_VCS, \
+                                              _RING_FAULT_REG_VECS, \
+                                              _RING_FAULT_REG_BCS))
 #define GEN8_RING_FAULT_REG    _MMIO(0x4094)
 #define GEN12_RING_FAULT_REG   _MMIO(0xcec4)
 #define   GEN8_RING_FAULT_ENGINE_ID(x) (((x) >> 12) & 0x7)
@@ -2672,6 +2686,8 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define GEN12_SC_INSTDONE_EXTRA2       _MMIO(0x7108)
 #define GEN7_SAMPLER_INSTDONE  _MMIO(0xe160)
 #define GEN7_ROW_INSTDONE      _MMIO(0xe164)
+#define MCFG_MCR_SELECTOR              _MMIO(0xfd0)
+#define SF_MCR_SELECTOR                        _MMIO(0xfd8)
 #define GEN8_MCR_SELECTOR              _MMIO(0xfdc)
 #define   GEN8_MCR_SLICE(slice)                (((slice) & 3) << 26)
 #define   GEN8_MCR_SLICE_MASK          GEN8_MCR_SLICE(3)
@@ -3099,6 +3115,9 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define        GEN10_MIRROR_FUSE3              _MMIO(0x9118)
 #define GEN10_L3BANK_PAIR_COUNT     4
 #define GEN10_L3BANK_MASK   0x0F
+/* on Xe_HP the same fuses indicates mslices instead of L3 banks */
+#define GEN12_MAX_MSLICES 4
+#define GEN12_MEML3_EN_MASK 0x0F
 
 #define GEN8_EU_DISABLE0               _MMIO(0x9134)
 #define   GEN8_EU_DIS0_S0_MASK         0xffffff
@@ -3133,6 +3152,9 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 
 #define GEN12_GT_DSS_ENABLE _MMIO(0x913C)
 
+#define XEHP_EU_ENABLE                 _MMIO(0x9134)
+#define XEHP_EU_ENA_MASK               0xFF
+
 #define GEN6_BSD_SLEEP_PSMI_CONTROL    _MMIO(0x12050)
 #define   GEN6_BSD_SLEEP_MSG_DISABLE   (1 << 0)
 #define   GEN6_BSD_SLEEP_FLUSH_DISABLE (1 << 2)
@@ -4086,6 +4108,9 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define BXT_GT_PERF_STATUS      _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x7070)
 #define GEN6_RP_STATE_LIMITS   _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5994)
 #define GEN6_RP_STATE_CAP      _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5998)
+#define   RP0_CAP_MASK         REG_GENMASK(7, 0)
+#define   RP1_CAP_MASK         REG_GENMASK(15, 8)
+#define   RPN_CAP_MASK         REG_GENMASK(23, 16)
 #define BXT_RP_STATE_CAP        _MMIO(0x138170)
 #define GEN9_RP_STATE_LIMITS   _MMIO(0x138148)
 
@@ -4142,6 +4167,7 @@ enum {
        FAULT_AND_CONTINUE /* Unsupported */
 };
 
+#define CTX_GTT_ADDRESS_MASK GENMASK(31, 12)
 #define GEN8_CTX_VALID (1 << 0)
 #define GEN8_CTX_FORCE_PD_RESTORE (1 << 1)
 #define GEN8_CTX_FORCE_RESTORE (1 << 2)
@@ -4158,6 +4184,11 @@ enum {
 #define GEN11_ENGINE_INSTANCE_SHIFT 48
 #define GEN11_ENGINE_INSTANCE_WIDTH 6
 
+#define XEHP_SW_CTX_ID_SHIFT 39
+#define XEHP_SW_CTX_ID_WIDTH 16
+#define XEHP_SW_COUNTER_SHIFT 58
+#define XEHP_SW_COUNTER_WIDTH 6
+
 #define CHV_CLK_CTL1                   _MMIO(0x101100)
 #define VLV_CLK_CTL2                   _MMIO(0x101104)
 #define   CLK_CTL2_CZCOUNT_30NS_SHIFT  28
@@ -4586,23 +4617,26 @@ enum {
 #define _PSR2_CTL_EDP                          0x6f900
 #define EDP_PSR2_CTL(tran)                     _MMIO_TRANS2(tran, _PSR2_CTL_A)
 #define   EDP_PSR2_ENABLE                      (1 << 31)
-#define   EDP_SU_TRACK_ENABLE                  (1 << 30)
+#define   EDP_SU_TRACK_ENABLE                  (1 << 30) /* up to adl-p */
 #define   TGL_EDP_PSR2_BLOCK_COUNT_NUM_2       (0 << 28)
 #define   TGL_EDP_PSR2_BLOCK_COUNT_NUM_3       (1 << 28)
 #define   EDP_Y_COORDINATE_ENABLE              REG_BIT(25) /* display 10, 11 and 12 */
+#define   EDP_PSR2_SU_SDP_SCANLINE             REG_BIT(25) /* display 13+ */
 #define   EDP_MAX_SU_DISABLE_TIME(t)           ((t) << 20)
 #define   EDP_MAX_SU_DISABLE_TIME_MASK         (0x1f << 20)
 #define   EDP_PSR2_IO_BUFFER_WAKE_MAX_LINES    8
 #define   EDP_PSR2_IO_BUFFER_WAKE(lines)       ((EDP_PSR2_IO_BUFFER_WAKE_MAX_LINES - (lines)) << 13)
 #define   EDP_PSR2_IO_BUFFER_WAKE_MASK         (3 << 13)
 #define   TGL_EDP_PSR2_IO_BUFFER_WAKE_MIN_LINES        5
-#define   TGL_EDP_PSR2_IO_BUFFER_WAKE(lines)   (((lines) - TGL_EDP_PSR2_IO_BUFFER_WAKE_MIN_LINES) << 13)
+#define   TGL_EDP_PSR2_IO_BUFFER_WAKE_SHIFT    13
+#define   TGL_EDP_PSR2_IO_BUFFER_WAKE(lines)   (((lines) - TGL_EDP_PSR2_IO_BUFFER_WAKE_MIN_LINES) << TGL_EDP_PSR2_IO_BUFFER_WAKE_SHIFT)
 #define   TGL_EDP_PSR2_IO_BUFFER_WAKE_MASK     (7 << 13)
 #define   EDP_PSR2_FAST_WAKE_MAX_LINES         8
 #define   EDP_PSR2_FAST_WAKE(lines)            ((EDP_PSR2_FAST_WAKE_MAX_LINES - (lines)) << 11)
 #define   EDP_PSR2_FAST_WAKE_MASK              (3 << 11)
 #define   TGL_EDP_PSR2_FAST_WAKE_MIN_LINES     5
-#define   TGL_EDP_PSR2_FAST_WAKE(lines)                (((lines) - TGL_EDP_PSR2_FAST_WAKE_MIN_LINES) << 10)
+#define   TGL_EDP_PSR2_FAST_WAKE_MIN_SHIFT     10
+#define   TGL_EDP_PSR2_FAST_WAKE(lines)                (((lines) - TGL_EDP_PSR2_FAST_WAKE_MIN_LINES) << TGL_EDP_PSR2_FAST_WAKE_MIN_SHIFT)
 #define   TGL_EDP_PSR2_FAST_WAKE_MASK          (7 << 10)
 #define   EDP_PSR2_TP2_TIME_500us              (0 << 8)
 #define   EDP_PSR2_TP2_TIME_100us              (1 << 8)
@@ -4652,17 +4686,23 @@ enum {
 #define PSR2_SU_STATUS_MASK(frame)     (0x3ff << PSR2_SU_STATUS_SHIFT(frame))
 #define PSR2_SU_STATUS_FRAMES          8
 
-#define _PSR2_MAN_TRK_CTL_A                            0x60910
-#define _PSR2_MAN_TRK_CTL_EDP                          0x6f910
-#define PSR2_MAN_TRK_CTL(tran)                         _MMIO_TRANS2(tran, _PSR2_MAN_TRK_CTL_A)
-#define  PSR2_MAN_TRK_CTL_ENABLE                       REG_BIT(31)
-#define  PSR2_MAN_TRK_CTL_SU_REGION_START_ADDR_MASK    REG_GENMASK(30, 21)
-#define  PSR2_MAN_TRK_CTL_SU_REGION_START_ADDR(val)    REG_FIELD_PREP(PSR2_MAN_TRK_CTL_SU_REGION_START_ADDR_MASK, val)
+#define _PSR2_MAN_TRK_CTL_A                                    0x60910
+#define _PSR2_MAN_TRK_CTL_EDP                                  0x6f910
+#define PSR2_MAN_TRK_CTL(tran)                                 _MMIO_TRANS2(tran, _PSR2_MAN_TRK_CTL_A)
+#define  PSR2_MAN_TRK_CTL_ENABLE                               REG_BIT(31)
+#define  PSR2_MAN_TRK_CTL_SU_REGION_START_ADDR_MASK            REG_GENMASK(30, 21)
+#define  PSR2_MAN_TRK_CTL_SU_REGION_START_ADDR(val)            REG_FIELD_PREP(PSR2_MAN_TRK_CTL_SU_REGION_START_ADDR_MASK, val)
 #define  PSR2_MAN_TRK_CTL_SU_REGION_END_ADDR_MASK              REG_GENMASK(20, 11)
 #define  PSR2_MAN_TRK_CTL_SU_REGION_END_ADDR(val)              REG_FIELD_PREP(PSR2_MAN_TRK_CTL_SU_REGION_END_ADDR_MASK, val)
-#define  PSR2_MAN_TRK_CTL_SF_SINGLE_FULL_FRAME         REG_BIT(3)
-#define  PSR2_MAN_TRK_CTL_SF_CONTINUOS_FULL_FRAME      REG_BIT(2)
-#define  PSR2_MAN_TRK_CTL_SF_PARTIAL_FRAME_UPDATE      REG_BIT(1)
+#define  PSR2_MAN_TRK_CTL_SF_SINGLE_FULL_FRAME                 REG_BIT(3)
+#define  PSR2_MAN_TRK_CTL_SF_CONTINUOS_FULL_FRAME              REG_BIT(2)
+#define  PSR2_MAN_TRK_CTL_SF_PARTIAL_FRAME_UPDATE              REG_BIT(1)
+#define  ADLP_PSR2_MAN_TRK_CTL_SU_REGION_START_ADDR_MASK       REG_GENMASK(28, 16)
+#define  ADLP_PSR2_MAN_TRK_CTL_SU_REGION_START_ADDR(val)       REG_FIELD_PREP(ADLP_PSR2_MAN_TRK_CTL_SU_REGION_START_ADDR_MASK, val)
+#define  ADLP_PSR2_MAN_TRK_CTL_SU_REGION_END_ADDR_MASK         REG_GENMASK(12, 0)
+#define  ADLP_PSR2_MAN_TRK_CTL_SU_REGION_END_ADDR(val)         REG_FIELD_PREP(ADLP_PSR2_MAN_TRK_CTL_SU_REGION_END_ADDR_MASK, val)
+#define  ADLP_PSR2_MAN_TRK_CTL_SF_SINGLE_FULL_FRAME            REG_BIT(14)
+#define  ADLP_PSR2_MAN_TRK_CTL_SF_CONTINUOS_FULL_FRAME         REG_BIT(13)
 
 /* Icelake DSC Rate Control Range Parameter Registers */
 #define DSCA_RC_RANGE_PARAMETERS_0             _MMIO(0x6B240)
@@ -7717,11 +7757,11 @@ enum {
 #define SKL_PS_ECC_STAT(pipe, id)  _MMIO_PIPE(pipe,     \
                        _ID(id, _PS_ECC_STAT_1A, _PS_ECC_STAT_2A),   \
                        _ID(id, _PS_ECC_STAT_1B, _PS_ECC_STAT_2B))
-#define CNL_PS_COEF_INDEX_SET(pipe, id, set)  _MMIO_PIPE(pipe,    \
+#define GLK_PS_COEF_INDEX_SET(pipe, id, set)  _MMIO_PIPE(pipe,    \
                        _ID(id, _PS_COEF_SET0_INDEX_1A, _PS_COEF_SET0_INDEX_2A) + (set) * 8, \
                        _ID(id, _PS_COEF_SET0_INDEX_1B, _PS_COEF_SET0_INDEX_2B) + (set) * 8)
 
-#define CNL_PS_COEF_DATA_SET(pipe, id, set)  _MMIO_PIPE(pipe,     \
+#define GLK_PS_COEF_DATA_SET(pipe, id, set)  _MMIO_PIPE(pipe,     \
                        _ID(id, _PS_COEF_SET0_DATA_1A, _PS_COEF_SET0_DATA_2A) + (set) * 8, \
                        _ID(id, _PS_COEF_SET0_DATA_1B, _PS_COEF_SET0_DATA_2B) + (set) * 8)
 /* legacy palette */
@@ -7757,7 +7797,7 @@ enum {
 #define  GAMMA_MODE_MODE_12BIT_MULTI_SEGMENTED (3 << 0) /* icl + */
 
 /* DMC */
-#define DMC_PROGRAM(i)         _MMIO(0x80000 + (i) * 4)
+#define DMC_PROGRAM(addr, i)   _MMIO((addr) + (i) * 4)
 #define DMC_SSP_BASE_ADDR_GEN9 0x00002FC0
 #define DMC_HTP_ADDR_SKL       0x00500034
 #define DMC_SSP_BASE           _MMIO(0x8F074)
@@ -7936,7 +7976,7 @@ enum {
 #define  DSI1_NON_TE                   (1 << 31)
 #define  DSI0_NON_TE                   (1 << 30)
 #define  ICL_AUX_CHANNEL_E             (1 << 29)
-#define  CNL_AUX_CHANNEL_F             (1 << 28)
+#define  ICL_AUX_CHANNEL_F             (1 << 28)
 #define  GEN9_AUX_CHANNEL_D            (1 << 27)
 #define  GEN9_AUX_CHANNEL_C            (1 << 26)
 #define  GEN9_AUX_CHANNEL_B            (1 << 25)
@@ -7988,9 +8028,9 @@ enum {
 #define  GEN11_GT_DW1_IRQ              (1 << 1)
 #define  GEN11_GT_DW0_IRQ              (1 << 0)
 
-#define DG1_MSTR_UNIT_INTR             _MMIO(0x190008)
+#define DG1_MSTR_TILE_INTR             _MMIO(0x190008)
 #define   DG1_MSTR_IRQ                 REG_BIT(31)
-#define   DG1_MSTR_UNIT(u)             REG_BIT(u)
+#define   DG1_MSTR_TILE(t)             REG_BIT(t)
 
 #define GEN11_DISPLAY_INT_CTL          _MMIO(0x44200)
 #define  GEN11_DISPLAY_IRQ_ENABLE      (1 << 31)
@@ -8073,7 +8113,10 @@ enum {
 #define GEN11_BCS_RSVD_INTR_MASK       _MMIO(0x1900a0)
 #define GEN11_VCS0_VCS1_INTR_MASK      _MMIO(0x1900a8)
 #define GEN11_VCS2_VCS3_INTR_MASK      _MMIO(0x1900ac)
+#define GEN12_VCS4_VCS5_INTR_MASK      _MMIO(0x1900b0)
+#define GEN12_VCS6_VCS7_INTR_MASK      _MMIO(0x1900b4)
 #define GEN11_VECS0_VECS1_INTR_MASK    _MMIO(0x1900d0)
+#define GEN12_VECS2_VECS3_INTR_MASK    _MMIO(0x1900d4)
 #define GEN11_GUC_SG_INTR_MASK         _MMIO(0x1900e8)
 #define GEN11_GPM_WGBOXPERF_INTR_MASK  _MMIO(0x1900ec)
 #define GEN11_CRYPTO_RSVD_INTR_MASK    _MMIO(0x1900f0)
@@ -8113,6 +8156,7 @@ enum {
 # define CHICKEN3_DGMG_DONE_FIX_DISABLE                (1 << 2)
 
 #define CHICKEN_PAR1_1                 _MMIO(0x42080)
+#define  IGNORE_KVMR_PIPE_A            REG_BIT(23)
 #define  KBL_ARB_FILL_SPARE_22         REG_BIT(22)
 #define  DIS_RAM_BYPASS_PSR2_MAN_TRACK (1 << 16)
 #define  SKL_DE_COMPRESSED_HASH_MODE   (1 << 15)
@@ -8125,7 +8169,6 @@ enum {
 #define  KVM_CONFIG_CHANGE_NOTIFICATION_SELECT (1 << 14)
 
 #define CHICKEN_MISC_2         _MMIO(0x42084)
-#define  CNL_COMP_PWR_DOWN     (1 << 23)
 #define  KBL_ARB_FILL_SPARE_14 REG_BIT(14)
 #define  KBL_ARB_FILL_SPARE_13 REG_BIT(13)
 #define  GLK_CL2_PWR_DOWN      (1 << 12)
@@ -8163,15 +8206,16 @@ enum {
                                            [TRANSCODER_B] = _CHICKEN_TRANS_B, \
                                            [TRANSCODER_C] = _CHICKEN_TRANS_C, \
                                            [TRANSCODER_D] = _CHICKEN_TRANS_D))
-#define  HSW_FRAME_START_DELAY_MASK    (3 << 27)
-#define  HSW_FRAME_START_DELAY(x)      ((x) << 27) /* 0-3 */
-#define  VSC_DATA_SEL_SOFTWARE_CONTROL (1 << 25) /* GLK and CNL+ */
-#define  DDI_TRAINING_OVERRIDE_ENABLE  (1 << 19)
-#define  DDI_TRAINING_OVERRIDE_VALUE   (1 << 18)
-#define  DDIE_TRAINING_OVERRIDE_ENABLE (1 << 17) /* CHICKEN_TRANS_A only */
-#define  DDIE_TRAINING_OVERRIDE_VALUE  (1 << 16) /* CHICKEN_TRANS_A only */
-#define  PSR2_ADD_VERTICAL_LINE_COUNT   (1 << 15)
-#define  PSR2_VSC_ENABLE_PROG_HEADER    (1 << 12)
+#define  HSW_FRAME_START_DELAY_MASK    REG_GENMASK(28, 27)
+#define  HSW_FRAME_START_DELAY(x)      REG_FIELD_PREP(HSW_FRAME_START_DELAY_MASK, x)
+#define  VSC_DATA_SEL_SOFTWARE_CONTROL REG_BIT(25) /* GLK */
+#define  FECSTALL_DIS_DPTSTREAM_DPTTG  REG_BIT(23)
+#define  DDI_TRAINING_OVERRIDE_ENABLE  REG_BIT(19)
+#define  DDI_TRAINING_OVERRIDE_VALUE   REG_BIT(18)
+#define  DDIE_TRAINING_OVERRIDE_ENABLE REG_BIT(17) /* CHICKEN_TRANS_A only */
+#define  DDIE_TRAINING_OVERRIDE_VALUE  REG_BIT(16) /* CHICKEN_TRANS_A only */
+#define  PSR2_ADD_VERTICAL_LINE_COUNT  REG_BIT(15)
+#define  PSR2_VSC_ENABLE_PROG_HEADER   REG_BIT(12)
 
 #define DISP_ARB_CTL   _MMIO(0x45000)
 #define  DISP_FBC_MEMORY_WAKE          (1 << 31)
@@ -8229,9 +8273,8 @@ enum {
 
 #define GEN8_CHICKEN_DCPR_1            _MMIO(0x46430)
 #define   SKL_SELECT_ALTERNATE_DC_EXIT (1 << 30)
-#define   CNL_DELAY_PMRSP              (1 << 22)
+#define   ICL_DELAY_PMRSP              (1 << 22)
 #define   MASK_WAKEMEM                 (1 << 13)
-#define   CNL_DDI_CLOCK_REG_ACCESS_ON  (1 << 7)
 
 #define GEN11_CHICKEN_DCPR_2                   _MMIO(0x46434)
 #define   DCPR_MASK_MAXLATENCY_MEMUP_CLR       REG_BIT(27)
@@ -8252,10 +8295,9 @@ enum {
 #define   SKL_DFSM_PIPE_B_DISABLE      (1 << 21)
 #define   SKL_DFSM_PIPE_C_DISABLE      (1 << 28)
 #define   TGL_DFSM_PIPE_D_DISABLE      (1 << 22)
-#define   CNL_DFSM_DISPLAY_DSC_DISABLE (1 << 7)
+#define   GLK_DFSM_DISPLAY_DSC_DISABLE (1 << 7)
 
 #define SKL_DSSM                               _MMIO(0x51004)
-#define CNL_DSSM_CDCLK_PLL_REFCLK_24MHz                (1 << 31)
 #define ICL_DSSM_CDCLK_PLL_REFCLK_MASK         (7 << 29)
 #define ICL_DSSM_CDCLK_PLL_REFCLK_24MHz                (0 << 29)
 #define ICL_DSSM_CDCLK_PLL_REFCLK_19_2MHz      (1 << 29)
@@ -8354,7 +8396,6 @@ enum {
 
 /* GEN8 chicken */
 #define HDC_CHICKEN0                           _MMIO(0x7300)
-#define CNL_HDC_CHICKEN0                       _MMIO(0xE5F0)
 #define ICL_HDC_MODE                           _MMIO(0xE5F4)
 #define  HDC_FORCE_CSR_NON_COHERENT_OVR_DISABLE        (1 << 15)
 #define  HDC_FENCE_DEST_SLM_DISABLE            (1 << 14)
@@ -8388,7 +8429,8 @@ enum {
 #define _PIPEC_CHICKEN                         0x72038
 #define PIPE_CHICKEN(pipe)                     _MMIO_PIPE(pipe, _PIPEA_CHICKEN,\
                                                           _PIPEB_CHICKEN)
-#define   UNDERRUN_RECOVERY_DISABLE            REG_BIT(30)
+#define   UNDERRUN_RECOVERY_DISABLE_ADLP       REG_BIT(30)
+#define   UNDERRUN_RECOVERY_ENABLE_DG2         REG_BIT(30)
 #define   PIXEL_ROUNDING_TRUNC_FB_PASSTHRU     (1 << 15)
 #define   PER_PIXEL_ALPHA_BYPASS_EN            (1 << 7)
 
@@ -9200,6 +9242,8 @@ enum {
 #define   GEN9_FREQUENCY(x)                    ((x) << 23)
 #define   GEN6_OFFSET(x)                       ((x) << 19)
 #define   GEN6_AGGRESSIVE_TURBO                        (0 << 15)
+#define   GEN9_SW_REQ_UNSLICE_RATIO_SHIFT      23
+
 #define GEN6_RC_VIDEO_FREQ                     _MMIO(0xA00C)
 #define GEN6_RC_CONTROL                                _MMIO(0xA090)
 #define   GEN6_RC_CTL_RC6pp_ENABLE             (1 << 16)
@@ -9368,9 +9412,13 @@ enum {
 #define   ICL_PCODE_MEM_SUBSYSYSTEM_INFO       0xd
 #define     ICL_PCODE_MEM_SS_READ_GLOBAL_INFO  (0x0 << 8)
 #define     ICL_PCODE_MEM_SS_READ_QGV_POINT_INFO(point)        (((point) << 16) | (0x1 << 8))
+#define     ADL_PCODE_MEM_SS_READ_PSF_GV_INFO  ((0) | (0x2 << 8))
 #define   ICL_PCODE_SAGV_DE_MEM_SS_CONFIG      0xe
 #define     ICL_PCODE_POINTS_RESTRICTED                0x0
-#define     ICL_PCODE_POINTS_RESTRICTED_MASK   0x1
+#define     ICL_PCODE_POINTS_RESTRICTED_MASK   0xf
+#define   ADLS_PSF_PT_SHIFT                    8
+#define   ADLS_QGV_PT_MASK                     REG_GENMASK(7, 0)
+#define   ADLS_PSF_PT_MASK                     REG_GENMASK(10, 8)
 #define   GEN6_PCODE_READ_D_COMP               0x10
 #define   GEN6_PCODE_WRITE_D_COMP              0x11
 #define   ICL_PCODE_EXIT_TCCOLD                        0x12
@@ -9530,7 +9578,6 @@ enum {
 #define   HSW_SAMPLE_C_PERFORMANCE     (1 << 9)
 #define   GEN8_CENTROID_PIXEL_OPT_DIS  (1 << 8)
 #define   GEN9_DISABLE_OCL_OOB_SUPPRESS_LOGIC  (1 << 5)
-#define   CNL_FAST_ANISO_L1_BANKING_FIX        (1 << 4)
 #define   GEN8_SAMPLER_POWER_BYPASS_DIS        (1 << 1)
 
 #define GEN9_HALF_SLICE_CHICKEN7       _MMIO(0xe194)
@@ -9711,15 +9758,12 @@ enum {
 /* HSW/BDW power well */
 #define   HSW_PW_CTL_IDX_GLOBAL                        15
 
-/* SKL/BXT/GLK/CNL power wells */
+/* SKL/BXT/GLK power wells */
 #define   SKL_PW_CTL_IDX_PW_2                  15
 #define   SKL_PW_CTL_IDX_PW_1                  14
-#define   CNL_PW_CTL_IDX_AUX_F                 12
-#define   CNL_PW_CTL_IDX_AUX_D                 11
 #define   GLK_PW_CTL_IDX_AUX_C                 10
 #define   GLK_PW_CTL_IDX_AUX_B                 9
 #define   GLK_PW_CTL_IDX_AUX_A                 8
-#define   CNL_PW_CTL_IDX_DDI_F                 6
 #define   SKL_PW_CTL_IDX_DDI_D                 4
 #define   SKL_PW_CTL_IDX_DDI_C                 3
 #define   SKL_PW_CTL_IDX_DDI_B                 2
@@ -9818,19 +9862,6 @@ enum skl_power_gate {
        ((pw_idx) - ICL_PW_CTL_IDX_PW_1 + SKL_PG1)
 #define  SKL_FUSE_PG_DIST_STATUS(pg)           (1 << (27 - (pg)))
 
-#define _CNL_AUX_REG_IDX(pw_idx)       ((pw_idx) - GLK_PW_CTL_IDX_AUX_B)
-#define _CNL_AUX_ANAOVRD1_B            0x162250
-#define _CNL_AUX_ANAOVRD1_C            0x162210
-#define _CNL_AUX_ANAOVRD1_D            0x1622D0
-#define _CNL_AUX_ANAOVRD1_F            0x162A90
-#define CNL_AUX_ANAOVRD1(pw_idx)       _MMIO(_PICK(_CNL_AUX_REG_IDX(pw_idx), \
-                                                   _CNL_AUX_ANAOVRD1_B, \
-                                                   _CNL_AUX_ANAOVRD1_C, \
-                                                   _CNL_AUX_ANAOVRD1_D, \
-                                                   _CNL_AUX_ANAOVRD1_F))
-#define   CNL_AUX_ANAOVRD1_ENABLE      (1 << 16)
-#define   CNL_AUX_ANAOVRD1_LDO_BYPASS  (1 << 23)
-
 #define _ICL_AUX_REG_IDX(pw_idx)       ((pw_idx) - ICL_PW_CTL_IDX_AUX_A)
 #define _ICL_AUX_ANAOVRD1_A            0x162398
 #define _ICL_AUX_ANAOVRD1_B            0x6C398
@@ -10130,11 +10161,11 @@ enum skl_power_gate {
 #define  TRANS_DDI_BPC_10              (1 << 20)
 #define  TRANS_DDI_BPC_6               (2 << 20)
 #define  TRANS_DDI_BPC_12              (3 << 20)
-#define  TRANS_DDI_PORT_SYNC_MASTER_SELECT_MASK        REG_GENMASK(19, 18) /* bdw-cnl */
+#define  TRANS_DDI_PORT_SYNC_MASTER_SELECT_MASK        REG_GENMASK(19, 18)
 #define  TRANS_DDI_PORT_SYNC_MASTER_SELECT(x)  REG_FIELD_PREP(TRANS_DDI_PORT_SYNC_MASTER_SELECT_MASK, (x))
 #define  TRANS_DDI_PVSYNC              (1 << 17)
 #define  TRANS_DDI_PHSYNC              (1 << 16)
-#define  TRANS_DDI_PORT_SYNC_ENABLE    REG_BIT(15) /* bdw-cnl */
+#define  TRANS_DDI_PORT_SYNC_ENABLE    REG_BIT(15)
 #define  TRANS_DDI_EDP_INPUT_MASK      (7 << 12)
 #define  TRANS_DDI_EDP_INPUT_A_ON      (0 << 12)
 #define  TRANS_DDI_EDP_INPUT_A_ONOFF   (4 << 12)
@@ -10167,6 +10198,9 @@ enum skl_power_gate {
 #define  PORT_SYNC_MODE_MASTER_SELECT_MASK     REG_GENMASK(2, 0)
 #define  PORT_SYNC_MODE_MASTER_SELECT(x)       REG_FIELD_PREP(PORT_SYNC_MODE_MASTER_SELECT_MASK, (x))
 
+#define TRANS_CMTG_CHICKEN             _MMIO(0x6fa90)
+#define  DISABLE_DPT_CLK_GATING                REG_BIT(1)
+
 /* DisplayPort Transport Control */
 #define _DP_TP_CTL_A                   0x64040
 #define _DP_TP_CTL_B                   0x64140
@@ -10371,6 +10405,14 @@ enum skl_power_gate {
 #define TRANS_MSA_MISC(tran) _MMIO_TRANS2(tran, _TRANSA_MSA_MISC)
 /* See DP_MSA_MISC_* for the bit definitions */
 
+#define _TRANS_A_SET_CONTEXT_LATENCY           0x6007C
+#define _TRANS_B_SET_CONTEXT_LATENCY           0x6107C
+#define _TRANS_C_SET_CONTEXT_LATENCY           0x6207C
+#define _TRANS_D_SET_CONTEXT_LATENCY           0x6307C
+#define TRANS_SET_CONTEXT_LATENCY(tran)                _MMIO_TRANS2(tran, _TRANS_A_SET_CONTEXT_LATENCY)
+#define  TRANS_SET_CONTEXT_LATENCY_MASK                REG_GENMASK(15, 0)
+#define  TRANS_SET_CONTEXT_LATENCY_VALUE(x)    REG_FIELD_PREP(TRANS_SET_CONTEXT_LATENCY_MASK, (x))
+
 /* LCPLL Control */
 #define LCPLL_CTL                      _MMIO(0x130040)
 #define  LCPLL_PLL_DISABLE             (1 << 31)
@@ -10482,17 +10524,6 @@ enum skl_power_gate {
 #define DPLL_CFGCR1(id)        _MMIO_PIPE((id) - SKL_DPLL1, _DPLL1_CFGCR1, _DPLL2_CFGCR1)
 #define DPLL_CFGCR2(id)        _MMIO_PIPE((id) - SKL_DPLL1, _DPLL1_CFGCR2, _DPLL2_CFGCR2)
 
-/*
- * CNL Clocks
- */
-#define DPCLKA_CFGCR0                          _MMIO(0x6C200)
-#define  DPCLKA_CFGCR0_DDI_CLK_OFF(port)       (1 << ((port) ==  PORT_F ? 23 : \
-                                                     (port) + 10))
-#define  DPCLKA_CFGCR0_DDI_CLK_SEL_SHIFT(port) ((port) == PORT_F ? 21 : \
-                                               (port) * 2)
-#define  DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(port)  (3 << DPCLKA_CFGCR0_DDI_CLK_SEL_SHIFT(port))
-#define  DPCLKA_CFGCR0_DDI_CLK_SEL(pll, port)  ((pll) << DPCLKA_CFGCR0_DDI_CLK_SEL_SHIFT(port))
-
 /* ICL Clocks */
 #define ICL_DPCLKA_CFGCR0                      _MMIO(0x164280)
 #define  ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy)    (1 << _PICK(phy, 10, 11, 24, 4, 5))
@@ -10548,7 +10579,7 @@ enum skl_power_gate {
                                                        ADLS_DPCLKA_DDIJ_SEL_MASK, \
                                                        ADLS_DPCLKA_DDIK_SEL_MASK)
 
-/* CNL PLL */
+/* ICL PLL */
 #define DPLL0_ENABLE           0x46010
 #define DPLL1_ENABLE           0x46014
 #define _ADLS_DPLL2_ENABLE     0x46018
@@ -10557,9 +10588,14 @@ enum skl_power_gate {
 #define  PLL_LOCK              (1 << 30)
 #define  PLL_POWER_ENABLE      (1 << 27)
 #define  PLL_POWER_STATE       (1 << 26)
-#define CNL_DPLL_ENABLE(pll)   _MMIO_PLL3(pll, DPLL0_ENABLE, DPLL1_ENABLE, \
+#define ICL_DPLL_ENABLE(pll)   _MMIO_PLL3(pll, DPLL0_ENABLE, DPLL1_ENABLE, \
                                           _ADLS_DPLL2_ENABLE, _ADLS_DPLL3_ENABLE)
 
+#define _DG2_PLL3_ENABLE       0x4601C
+
+#define DG2_PLL_ENABLE(pll) _MMIO_PLL3(pll, DPLL0_ENABLE, DPLL1_ENABLE, \
+                                      _ADLS_DPLL2_ENABLE, _DG2_PLL3_ENABLE)
+
 #define TBT_PLL_ENABLE         _MMIO(0x46020)
 
 #define _MG_PLL1_ENABLE                0x46030
@@ -10725,60 +10761,52 @@ enum skl_power_gate {
                                                   _MG_PLL_TDC_COLDST_BIAS_PORT1, \
                                                   _MG_PLL_TDC_COLDST_BIAS_PORT2)
 
-#define _CNL_DPLL0_CFGCR0              0x6C000
-#define _CNL_DPLL1_CFGCR0              0x6C080
-#define  DPLL_CFGCR0_HDMI_MODE         (1 << 30)
-#define  DPLL_CFGCR0_SSC_ENABLE                (1 << 29)
-#define  DPLL_CFGCR0_SSC_ENABLE_ICL    (1 << 25)
-#define  DPLL_CFGCR0_LINK_RATE_MASK    (0xf << 25)
-#define  DPLL_CFGCR0_LINK_RATE_2700    (0 << 25)
-#define  DPLL_CFGCR0_LINK_RATE_1350    (1 << 25)
-#define  DPLL_CFGCR0_LINK_RATE_810     (2 << 25)
-#define  DPLL_CFGCR0_LINK_RATE_1620    (3 << 25)
-#define  DPLL_CFGCR0_LINK_RATE_1080    (4 << 25)
-#define  DPLL_CFGCR0_LINK_RATE_2160    (5 << 25)
-#define  DPLL_CFGCR0_LINK_RATE_3240    (6 << 25)
-#define  DPLL_CFGCR0_LINK_RATE_4050    (7 << 25)
-#define  DPLL_CFGCR0_DCO_FRACTION_MASK (0x7fff << 10)
-#define  DPLL_CFGCR0_DCO_FRACTION_SHIFT        (10)
-#define  DPLL_CFGCR0_DCO_FRACTION(x)   ((x) << 10)
-#define  DPLL_CFGCR0_DCO_INTEGER_MASK  (0x3ff)
-#define CNL_DPLL_CFGCR0(pll)           _MMIO_PLL(pll, _CNL_DPLL0_CFGCR0, _CNL_DPLL1_CFGCR0)
-
-#define _CNL_DPLL0_CFGCR1              0x6C004
-#define _CNL_DPLL1_CFGCR1              0x6C084
-#define  DPLL_CFGCR1_QDIV_RATIO_MASK   (0xff << 10)
-#define  DPLL_CFGCR1_QDIV_RATIO_SHIFT  (10)
-#define  DPLL_CFGCR1_QDIV_RATIO(x)     ((x) << 10)
-#define  DPLL_CFGCR1_QDIV_MODE_SHIFT   (9)
-#define  DPLL_CFGCR1_QDIV_MODE(x)      ((x) << 9)
-#define  DPLL_CFGCR1_KDIV_MASK         (7 << 6)
-#define  DPLL_CFGCR1_KDIV_SHIFT                (6)
-#define  DPLL_CFGCR1_KDIV(x)           ((x) << 6)
-#define  DPLL_CFGCR1_KDIV_1            (1 << 6)
-#define  DPLL_CFGCR1_KDIV_2            (2 << 6)
-#define  DPLL_CFGCR1_KDIV_3            (4 << 6)
-#define  DPLL_CFGCR1_PDIV_MASK         (0xf << 2)
-#define  DPLL_CFGCR1_PDIV_SHIFT                (2)
-#define  DPLL_CFGCR1_PDIV(x)           ((x) << 2)
-#define  DPLL_CFGCR1_PDIV_2            (1 << 2)
-#define  DPLL_CFGCR1_PDIV_3            (2 << 2)
-#define  DPLL_CFGCR1_PDIV_5            (4 << 2)
-#define  DPLL_CFGCR1_PDIV_7            (8 << 2)
-#define  DPLL_CFGCR1_CENTRAL_FREQ      (3 << 0)
-#define  DPLL_CFGCR1_CENTRAL_FREQ_8400 (3 << 0)
-#define  TGL_DPLL_CFGCR1_CFSELOVRD_NORMAL_XTAL (0 << 0)
-#define CNL_DPLL_CFGCR1(pll)           _MMIO_PLL(pll, _CNL_DPLL0_CFGCR1, _CNL_DPLL1_CFGCR1)
-
 #define _ICL_DPLL0_CFGCR0              0x164000
 #define _ICL_DPLL1_CFGCR0              0x164080
 #define ICL_DPLL_CFGCR0(pll)           _MMIO_PLL(pll, _ICL_DPLL0_CFGCR0, \
                                                  _ICL_DPLL1_CFGCR0)
+#define   DPLL_CFGCR0_HDMI_MODE                (1 << 30)
+#define   DPLL_CFGCR0_SSC_ENABLE       (1 << 29)
+#define   DPLL_CFGCR0_SSC_ENABLE_ICL   (1 << 25)
+#define   DPLL_CFGCR0_LINK_RATE_MASK   (0xf << 25)
+#define   DPLL_CFGCR0_LINK_RATE_2700   (0 << 25)
+#define   DPLL_CFGCR0_LINK_RATE_1350   (1 << 25)
+#define   DPLL_CFGCR0_LINK_RATE_810    (2 << 25)
+#define   DPLL_CFGCR0_LINK_RATE_1620   (3 << 25)
+#define   DPLL_CFGCR0_LINK_RATE_1080   (4 << 25)
+#define   DPLL_CFGCR0_LINK_RATE_2160   (5 << 25)
+#define   DPLL_CFGCR0_LINK_RATE_3240   (6 << 25)
+#define   DPLL_CFGCR0_LINK_RATE_4050   (7 << 25)
+#define   DPLL_CFGCR0_DCO_FRACTION_MASK        (0x7fff << 10)
+#define   DPLL_CFGCR0_DCO_FRACTION_SHIFT       (10)
+#define   DPLL_CFGCR0_DCO_FRACTION(x)  ((x) << 10)
+#define   DPLL_CFGCR0_DCO_INTEGER_MASK (0x3ff)
 
 #define _ICL_DPLL0_CFGCR1              0x164004
 #define _ICL_DPLL1_CFGCR1              0x164084
 #define ICL_DPLL_CFGCR1(pll)           _MMIO_PLL(pll, _ICL_DPLL0_CFGCR1, \
                                                  _ICL_DPLL1_CFGCR1)
+#define   DPLL_CFGCR1_QDIV_RATIO_MASK  (0xff << 10)
+#define   DPLL_CFGCR1_QDIV_RATIO_SHIFT (10)
+#define   DPLL_CFGCR1_QDIV_RATIO(x)    ((x) << 10)
+#define   DPLL_CFGCR1_QDIV_MODE_SHIFT  (9)
+#define   DPLL_CFGCR1_QDIV_MODE(x)     ((x) << 9)
+#define   DPLL_CFGCR1_KDIV_MASK                (7 << 6)
+#define   DPLL_CFGCR1_KDIV_SHIFT               (6)
+#define   DPLL_CFGCR1_KDIV(x)          ((x) << 6)
+#define   DPLL_CFGCR1_KDIV_1           (1 << 6)
+#define   DPLL_CFGCR1_KDIV_2           (2 << 6)
+#define   DPLL_CFGCR1_KDIV_3           (4 << 6)
+#define   DPLL_CFGCR1_PDIV_MASK                (0xf << 2)
+#define   DPLL_CFGCR1_PDIV_SHIFT               (2)
+#define   DPLL_CFGCR1_PDIV(x)          ((x) << 2)
+#define   DPLL_CFGCR1_PDIV_2           (1 << 2)
+#define   DPLL_CFGCR1_PDIV_3           (2 << 2)
+#define   DPLL_CFGCR1_PDIV_5           (4 << 2)
+#define   DPLL_CFGCR1_PDIV_7           (8 << 2)
+#define   DPLL_CFGCR1_CENTRAL_FREQ     (3 << 0)
+#define   DPLL_CFGCR1_CENTRAL_FREQ_8400        (3 << 0)
+#define   TGL_DPLL_CFGCR1_CFSELOVRD_NORMAL_XTAL        (0 << 0)
 
 #define _TGL_DPLL0_CFGCR0              0x164284
 #define _TGL_DPLL1_CFGCR0              0x16428C
@@ -10998,8 +11026,8 @@ enum skl_power_gate {
 #define   BXT_DE_PLL_LOCK              (1 << 30)
 #define   BXT_DE_PLL_FREQ_REQ          (1 << 23)
 #define   BXT_DE_PLL_FREQ_REQ_ACK      (1 << 22)
-#define   CNL_CDCLK_PLL_RATIO(x)       (x)
-#define   CNL_CDCLK_PLL_RATIO_MASK     0xff
+#define   ICL_CDCLK_PLL_RATIO(x)       (x)
+#define   ICL_CDCLK_PLL_RATIO_MASK     0xff
 
 /* GEN9 DC */
 #define DC_STATE_EN                    _MMIO(0x45504)
@@ -11054,6 +11082,7 @@ enum skl_power_gate {
 #define SKL_MEMORY_FREQ_MULTIPLIER_HZ          266666666
 #define SKL_MC_BIOS_DATA_0_0_0_MCHBAR_PCU      _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5E04)
 #define  SKL_REQ_DATA_MASK                     (0xF << 0)
+#define  DG1_GEAR_TYPE                         REG_BIT(16)
 
 #define SKL_MAD_INTER_CHANNEL_0_0_0_MCHBAR_MCMAIN _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5000)
 #define  SKL_DRAM_DDR_TYPE_MASK                        (0x3 << 0)
@@ -11076,18 +11105,29 @@ enum skl_power_gate {
 #define  SKL_DRAM_RANK_1                       (0x0 << 10)
 #define  SKL_DRAM_RANK_2                       (0x1 << 10)
 #define  SKL_DRAM_RANK_MASK                    (0x1 << 10)
-#define  CNL_DRAM_SIZE_MASK                    0x7F
-#define  CNL_DRAM_WIDTH_MASK                   (0x3 << 7)
-#define  CNL_DRAM_WIDTH_SHIFT                  7
-#define  CNL_DRAM_WIDTH_X8                     (0x0 << 7)
-#define  CNL_DRAM_WIDTH_X16                    (0x1 << 7)
-#define  CNL_DRAM_WIDTH_X32                    (0x2 << 7)
-#define  CNL_DRAM_RANK_MASK                    (0x3 << 9)
-#define  CNL_DRAM_RANK_SHIFT                   9
-#define  CNL_DRAM_RANK_1                       (0x0 << 9)
-#define  CNL_DRAM_RANK_2                       (0x1 << 9)
-#define  CNL_DRAM_RANK_3                       (0x2 << 9)
-#define  CNL_DRAM_RANK_4                       (0x3 << 9)
+#define  ICL_DRAM_SIZE_MASK                    0x7F
+#define  ICL_DRAM_WIDTH_MASK                   (0x3 << 7)
+#define  ICL_DRAM_WIDTH_SHIFT                  7
+#define  ICL_DRAM_WIDTH_X8                     (0x0 << 7)
+#define  ICL_DRAM_WIDTH_X16                    (0x1 << 7)
+#define  ICL_DRAM_WIDTH_X32                    (0x2 << 7)
+#define  ICL_DRAM_RANK_MASK                    (0x3 << 9)
+#define  ICL_DRAM_RANK_SHIFT                   9
+#define  ICL_DRAM_RANK_1                       (0x0 << 9)
+#define  ICL_DRAM_RANK_2                       (0x1 << 9)
+#define  ICL_DRAM_RANK_3                       (0x2 << 9)
+#define  ICL_DRAM_RANK_4                       (0x3 << 9)
+
+#define SA_PERF_STATUS_0_0_0_MCHBAR_PC         _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5918)
+#define  DG1_QCLK_RATIO_MASK                   REG_GENMASK(9, 2)
+#define  DG1_QCLK_REFERENCE                    REG_BIT(10)
+
+#define MCHBAR_CH0_CR_TC_PRE_0_0_0_MCHBAR      _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x4000)
+#define   DG1_DRAM_T_RDPRE_MASK                        REG_GENMASK(16, 11)
+#define   DG1_DRAM_T_RP_MASK                   REG_GENMASK(6, 0)
+#define MCHBAR_CH0_CR_TC_PRE_0_0_0_MCHBAR_HIGH _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x4004)
+#define   DG1_DRAM_T_RCD_MASK                  REG_GENMASK(15, 9)
+#define   DG1_DRAM_T_RAS_MASK                  REG_GENMASK(8, 1)
 
 /*
  * Please see hsw_read_dcomp() and hsw_write_dcomp() before using this register,
@@ -12290,6 +12330,7 @@ enum skl_power_gate {
 
 /* MOCS (Memory Object Control State) registers */
 #define GEN9_LNCFCMOCS(i)      _MMIO(0xb020 + (i) * 4) /* L3 Cache Control */
+#define GEN9_LNCFCMOCS_REG_COUNT       32
 
 #define __GEN9_RCS0_MOCS0      0xc800
 #define GEN9_GFX_MOCS(i)       _MMIO(__GEN9_RCS0_MOCS0 + (i) * 4)
@@ -12337,6 +12378,7 @@ enum skl_power_gate {
                                                 _ICL_PHY_MISC_B)
 #define  ICL_PHY_MISC_MUX_DDID                 (1 << 28)
 #define  ICL_PHY_MISC_DE_IO_COMP_PWR_DOWN      (1 << 23)
+#define  DG2_PHY_DP_TX_ACK_MASK                        REG_GENMASK(23, 20)
 
 /* Icelake Display Stream Compression Registers */
 #define DSCA_PICTURE_PARAMETER_SET_0           _MMIO(0x6B200)