Merge tag 'drm-intel-next-2023-03-07' of git://anongit.freedesktop.org/drm/drm-intel...
[sfrench/cifs-2.6.git] / drivers / gpu / drm / i915 / i915_reg.h
index 3b2642397b8288f617fcfb291516409a3ae0b9ea..1757fb8fdf5bdc71163c03bc90ca5bdf1347b3ae 100644 (file)
  *  #define GEN8_BAR                    _MMIO(0xb888)
  */
 
+#define GU_CNTL_PROTECTED              _MMIO(0x10100C)
+#define   DEPRESENT                    REG_BIT(9)
+
 #define GU_CNTL                                _MMIO(0x101010)
 #define   LMEM_INIT                    REG_BIT(7)
 #define   DRIVERFLR                    REG_BIT(31)
 #define _BXT_PHY0_BASE                 0x6C000
 #define _BXT_PHY1_BASE                 0x162000
 #define _BXT_PHY2_BASE                 0x163000
-#define BXT_PHY_BASE(phy)              _PHY3((phy), _BXT_PHY0_BASE, \
-                                                    _BXT_PHY1_BASE, \
-                                                    _BXT_PHY2_BASE)
+#define BXT_PHY_BASE(phy)                                                      \
+        _PICK_EVEN_2RANGES(phy, 1,                                             \
+                           _BXT_PHY0_BASE, _BXT_PHY0_BASE,                     \
+                           _BXT_PHY1_BASE, _BXT_PHY2_BASE)
 
 #define _BXT_PHY(phy, reg)                                             \
        _MMIO(BXT_PHY_BASE(phy) - _BXT_PHY0_BASE + (reg))
 #define BXT_PHY_CTL(port)              _MMIO_PORT(port, _BXT_PHY_CTL_DDI_A, \
                                                         _BXT_PHY_CTL_DDI_B)
 
-#define _PHY_CTL_FAMILY_EDP            0x64C80
 #define _PHY_CTL_FAMILY_DDI            0x64C90
+#define _PHY_CTL_FAMILY_EDP            0x64C80
 #define _PHY_CTL_FAMILY_DDI_C          0x64CA0
 #define   COMMON_RESET_DIS             (1 << 31)
-#define BXT_PHY_CTL_FAMILY(phy)                _MMIO_PHY3((phy), _PHY_CTL_FAMILY_DDI, \
-                                                         _PHY_CTL_FAMILY_EDP, \
-                                                         _PHY_CTL_FAMILY_DDI_C)
+#define BXT_PHY_CTL_FAMILY(phy)                                                        \
+        _MMIO(_PICK_EVEN_2RANGES(phy, 1,                                       \
+                                 _PHY_CTL_FAMILY_DDI, _PHY_CTL_FAMILY_DDI,     \
+                                 _PHY_CTL_FAMILY_EDP, _PHY_CTL_FAMILY_DDI_C))
 
 /* BXT PHY PLL registers */
 #define _PORT_PLL_A                    0x46074
 #define _MBUS_ABOX0_CTL                        0x45038
 #define _MBUS_ABOX1_CTL                        0x45048
 #define _MBUS_ABOX2_CTL                        0x4504C
-#define MBUS_ABOX_CTL(x)               _MMIO(_PICK(x, _MBUS_ABOX0_CTL, \
-                                                   _MBUS_ABOX1_CTL, \
-                                                   _MBUS_ABOX2_CTL))
+#define MBUS_ABOX_CTL(x)                                                       \
+       _MMIO(_PICK_EVEN_2RANGES(x, 2,                                          \
+                                _MBUS_ABOX0_CTL, _MBUS_ABOX1_CTL,              \
+                                _MBUS_ABOX2_CTL, _MBUS_ABOX2_CTL))
+
 #define MBUS_ABOX_BW_CREDIT_MASK       (3 << 20)
 #define MBUS_ABOX_BW_CREDIT(x)         ((x) << 20)
 #define MBUS_ABOX_B_CREDIT_MASK                (0xF << 16)
 #define   PALETTE_10BIT_BLUE_EXP_MASK  REG_GENMASK(7, 6)
 #define   PALETTE_10BIT_BLUE_MANT_MASK REG_GENMASK(5, 2)
 #define   PALETTE_10BIT_BLUE_UDW_MASK  REG_GENMASK(1, 0)
-#define PALETTE(pipe, i)       _MMIO(DISPLAY_MMIO_BASE(dev_priv) + \
-                                     _PICK((pipe), _PALETTE_A,         \
-                                           _PALETTE_B, _CHV_PALETTE_C) + \
-                                     (i) * 4)
+#define PALETTE(pipe, i) _MMIO(DISPLAY_MMIO_BASE(dev_priv) +                   \
+                              _PICK_EVEN_2RANGES(pipe, 2,                      \
+                                                 _PALETTE_A, _PALETTE_B,       \
+                                                 _CHV_PALETTE_C, _CHV_PALETTE_C) + \
+                                                 (i) * 4)
 
 #define PEG_BAND_GAP_DATA      _MMIO(0x14d68)
 
 #define PIPE_CRC_RES_RES1_I915(pipe)   _MMIO_TRANS2(pipe, _PIPE_CRC_RES_RES1_A_I915)
 #define PIPE_CRC_RES_RES2_G4X(pipe)    _MMIO_TRANS2(pipe, _PIPE_CRC_RES_RES2_A_G4X)
 
-/* Pipe A timing regs */
-#define _HTOTAL_A      0x60000
-#define _HBLANK_A      0x60004
-#define _HSYNC_A       0x60008
-#define _VTOTAL_A      0x6000c
-#define _VBLANK_A      0x60010
-#define _VSYNC_A       0x60014
-#define _EXITLINE_A    0x60018
-#define _PIPEASRC      0x6001c
+/* Pipe/transcoder A timing regs */
+#define _TRANS_HTOTAL_A                0x60000
+#define   HTOTAL_MASK                  REG_GENMASK(31, 16)
+#define   HTOTAL(htotal)               REG_FIELD_PREP(HTOTAL_MASK, (htotal))
+#define   HACTIVE_MASK                 REG_GENMASK(15, 0)
+#define   HACTIVE(hdisplay)            REG_FIELD_PREP(HACTIVE_MASK, (hdisplay))
+#define _TRANS_HBLANK_A                0x60004
+#define   HBLANK_END_MASK              REG_GENMASK(31, 16)
+#define   HBLANK_END(hblank_end)       REG_FIELD_PREP(HBLANK_END_MASK, (hblank_end))
+#define   HBLANK_START_MASK            REG_GENMASK(15, 0)
+#define   HBLANK_START(hblank_start)   REG_FIELD_PREP(HBLANK_START_MASK, (hblank_start))
+#define _TRANS_HSYNC_A         0x60008
+#define   HSYNC_END_MASK               REG_GENMASK(31, 16)
+#define   HSYNC_END(hsync_end)         REG_FIELD_PREP(HSYNC_END_MASK, (hsync_end))
+#define   HSYNC_START_MASK             REG_GENMASK(15, 0)
+#define   HSYNC_START(hsync_start)     REG_FIELD_PREP(HSYNC_START_MASK, (hsync_start))
+#define _TRANS_VTOTAL_A                0x6000c
+#define   VTOTAL_MASK                  REG_GENMASK(31, 16)
+#define   VTOTAL(vtotal)               REG_FIELD_PREP(VTOTAL_MASK, (vtotal))
+#define   VACTIVE_MASK                 REG_GENMASK(15, 0)
+#define   VACTIVE(vdisplay)            REG_FIELD_PREP(VACTIVE_MASK, (vdisplay))
+#define _TRANS_VBLANK_A                0x60010
+#define   VBLANK_END_MASK              REG_GENMASK(31, 16)
+#define   VBLANK_END(vblank_end)       REG_FIELD_PREP(VBLANK_END_MASK, (vblank_end))
+#define   VBLANK_START_MASK            REG_GENMASK(15, 0)
+#define   VBLANK_START(vblank_start)   REG_FIELD_PREP(VBLANK_START_MASK, (vblank_start))
+#define _TRANS_VSYNC_A         0x60014
+#define   VSYNC_END_MASK               REG_GENMASK(31, 16)
+#define   VSYNC_END(vsync_end)         REG_FIELD_PREP(VSYNC_END_MASK, (vsync_end))
+#define   VSYNC_START_MASK             REG_GENMASK(15, 0)
+#define   VSYNC_START(vsync_start)     REG_FIELD_PREP(VSYNC_START_MASK, (vsync_start))
+#define _TRANS_EXITLINE_A      0x60018
+#define _PIPEASRC              0x6001c
 #define   PIPESRC_WIDTH_MASK   REG_GENMASK(31, 16)
 #define   PIPESRC_WIDTH(w)     REG_FIELD_PREP(PIPESRC_WIDTH_MASK, (w))
 #define   PIPESRC_HEIGHT_MASK  REG_GENMASK(15, 0)
 #define   PIPESRC_HEIGHT(h)    REG_FIELD_PREP(PIPESRC_HEIGHT_MASK, (h))
-#define _BCLRPAT_A     0x60020
-#define _VSYNCSHIFT_A  0x60028
-#define _PIPE_MULT_A   0x6002c
-
-/* Pipe B timing regs */
-#define _HTOTAL_B      0x61000
-#define _HBLANK_B      0x61004
-#define _HSYNC_B       0x61008
-#define _VTOTAL_B      0x6100c
-#define _VBLANK_B      0x61010
-#define _VSYNC_B       0x61014
-#define _PIPEBSRC      0x6101c
-#define _BCLRPAT_B     0x61020
-#define _VSYNCSHIFT_B  0x61028
-#define _PIPE_MULT_B   0x6102c
+#define _BCLRPAT_A             0x60020
+#define _TRANS_VSYNCSHIFT_A    0x60028
+#define _TRANS_MULT_A          0x6002c
+
+/* Pipe/transcoder B timing regs */
+#define _TRANS_HTOTAL_B                0x61000
+#define _TRANS_HBLANK_B                0x61004
+#define _TRANS_HSYNC_B         0x61008
+#define _TRANS_VTOTAL_B                0x6100c
+#define _TRANS_VBLANK_B                0x61010
+#define _TRANS_VSYNC_B         0x61014
+#define _PIPEBSRC              0x6101c
+#define _BCLRPAT_B             0x61020
+#define _TRANS_VSYNCSHIFT_B    0x61028
+#define _TRANS_MULT_B          0x6102c
 
 /* DSI 0 timing regs */
-#define _HTOTAL_DSI0           0x6b000
-#define _HSYNC_DSI0            0x6b008
-#define _VTOTAL_DSI0           0x6b00c
-#define _VSYNC_DSI0            0x6b014
-#define _VSYNCSHIFT_DSI0       0x6b028
+#define _TRANS_HTOTAL_DSI0     0x6b000
+#define _TRANS_HSYNC_DSI0      0x6b008
+#define _TRANS_VTOTAL_DSI0     0x6b00c
+#define _TRANS_VSYNC_DSI0      0x6b014
+#define _TRANS_VSYNCSHIFT_DSI0 0x6b028
 
 /* DSI 1 timing regs */
-#define _HTOTAL_DSI1           0x6b800
-#define _HSYNC_DSI1            0x6b808
-#define _VTOTAL_DSI1           0x6b80c
-#define _VSYNC_DSI1            0x6b814
-#define _VSYNCSHIFT_DSI1       0x6b828
+#define _TRANS_HTOTAL_DSI1     0x6b800
+#define _TRANS_HSYNC_DSI1      0x6b808
+#define _TRANS_VTOTAL_DSI1     0x6b80c
+#define _TRANS_VSYNC_DSI1      0x6b814
+#define _TRANS_VSYNCSHIFT_DSI1 0x6b828
 
 #define TRANSCODER_A_OFFSET 0x60000
 #define TRANSCODER_B_OFFSET 0x61000
 #define TRANSCODER_DSI0_OFFSET 0x6b000
 #define TRANSCODER_DSI1_OFFSET 0x6b800
 
-#define HTOTAL(trans)          _MMIO_TRANS2(trans, _HTOTAL_A)
-#define HBLANK(trans)          _MMIO_TRANS2(trans, _HBLANK_A)
-#define HSYNC(trans)           _MMIO_TRANS2(trans, _HSYNC_A)
-#define VTOTAL(trans)          _MMIO_TRANS2(trans, _VTOTAL_A)
-#define VBLANK(trans)          _MMIO_TRANS2(trans, _VBLANK_A)
-#define VSYNC(trans)           _MMIO_TRANS2(trans, _VSYNC_A)
-#define BCLRPAT(trans)         _MMIO_TRANS2(trans, _BCLRPAT_A)
-#define VSYNCSHIFT(trans)      _MMIO_TRANS2(trans, _VSYNCSHIFT_A)
-#define PIPESRC(trans)         _MMIO_TRANS2(trans, _PIPEASRC)
-#define PIPE_MULT(trans)       _MMIO_TRANS2(trans, _PIPE_MULT_A)
-
-#define EXITLINE(trans)                _MMIO_TRANS2(trans, _EXITLINE_A)
+#define TRANS_HTOTAL(trans)    _MMIO_TRANS2((trans), _TRANS_HTOTAL_A)
+#define TRANS_HBLANK(trans)    _MMIO_TRANS2((trans), _TRANS_HBLANK_A)
+#define TRANS_HSYNC(trans)     _MMIO_TRANS2((trans), _TRANS_HSYNC_A)
+#define TRANS_VTOTAL(trans)    _MMIO_TRANS2((trans), _TRANS_VTOTAL_A)
+#define TRANS_VBLANK(trans)    _MMIO_TRANS2((trans), _TRANS_VBLANK_A)
+#define TRANS_VSYNC(trans)     _MMIO_TRANS2((trans), _TRANS_VSYNC_A)
+#define BCLRPAT(trans)         _MMIO_TRANS2((trans), _BCLRPAT_A)
+#define TRANS_VSYNCSHIFT(trans)        _MMIO_TRANS2((trans), _TRANS_VSYNCSHIFT_A)
+#define PIPESRC(pipe)          _MMIO_TRANS2((pipe), _PIPEASRC)
+#define TRANS_MULT(trans)      _MMIO_TRANS2((trans), _TRANS_MULT_A)
+
+#define TRANS_EXITLINE(trans)  _MMIO_TRANS2((trans), _TRANS_EXITLINE_A)
 #define   EXITLINE_ENABLE      REG_BIT(31)
 #define   EXITLINE_MASK                REG_GENMASK(12, 0)
 #define   EXITLINE_SHIFT       0
 #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)
-#define DSCA_RC_RANGE_PARAMETERS_0_UDW         _MMIO(0x6B240 + 4)
-#define DSCC_RC_RANGE_PARAMETERS_0             _MMIO(0x6BA40)
-#define DSCC_RC_RANGE_PARAMETERS_0_UDW         _MMIO(0x6BA40 + 4)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_0_PB     (0x78208)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_0_UDW_PB (0x78208 + 4)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_0_PB     (0x78308)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_0_UDW_PB (0x78308 + 4)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_0_PC     (0x78408)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_0_UDW_PC (0x78408 + 4)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_0_PC     (0x78508)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_0_UDW_PC (0x78508 + 4)
-#define ICL_DSC0_RC_RANGE_PARAMETERS_0(pipe)           _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_0_PB, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_0_PC)
-#define ICL_DSC0_RC_RANGE_PARAMETERS_0_UDW(pipe)       _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_0_UDW_PB, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_0_UDW_PC)
-#define ICL_DSC1_RC_RANGE_PARAMETERS_0(pipe)           _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_0_PB, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_0_PC)
-#define ICL_DSC1_RC_RANGE_PARAMETERS_0_UDW(pipe)       _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_0_UDW_PB, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_0_UDW_PC)
-#define RC_BPG_OFFSET_SHIFT                    10
-#define RC_MAX_QP_SHIFT                                5
-#define RC_MIN_QP_SHIFT                                0
-
-#define DSCA_RC_RANGE_PARAMETERS_1             _MMIO(0x6B248)
-#define DSCA_RC_RANGE_PARAMETERS_1_UDW         _MMIO(0x6B248 + 4)
-#define DSCC_RC_RANGE_PARAMETERS_1             _MMIO(0x6BA48)
-#define DSCC_RC_RANGE_PARAMETERS_1_UDW         _MMIO(0x6BA48 + 4)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_1_PB     (0x78210)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_1_UDW_PB (0x78210 + 4)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_1_PB     (0x78310)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_1_UDW_PB (0x78310 + 4)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_1_PC     (0x78410)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_1_UDW_PC (0x78410 + 4)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_1_PC     (0x78510)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_1_UDW_PC (0x78510 + 4)
-#define ICL_DSC0_RC_RANGE_PARAMETERS_1(pipe)           _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_1_PB, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_1_PC)
-#define ICL_DSC0_RC_RANGE_PARAMETERS_1_UDW(pipe)       _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_1_UDW_PB, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_1_UDW_PC)
-#define ICL_DSC1_RC_RANGE_PARAMETERS_1(pipe)           _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_1_PB, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_1_PC)
-#define ICL_DSC1_RC_RANGE_PARAMETERS_1_UDW(pipe)       _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_1_UDW_PB, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_1_UDW_PC)
-
-#define DSCA_RC_RANGE_PARAMETERS_2             _MMIO(0x6B250)
-#define DSCA_RC_RANGE_PARAMETERS_2_UDW         _MMIO(0x6B250 + 4)
-#define DSCC_RC_RANGE_PARAMETERS_2             _MMIO(0x6BA50)
-#define DSCC_RC_RANGE_PARAMETERS_2_UDW         _MMIO(0x6BA50 + 4)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_2_PB     (0x78218)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_2_UDW_PB (0x78218 + 4)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_2_PB     (0x78318)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_2_UDW_PB (0x78318 + 4)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_2_PC     (0x78418)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_2_UDW_PC (0x78418 + 4)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_2_PC     (0x78518)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_2_UDW_PC (0x78518 + 4)
-#define ICL_DSC0_RC_RANGE_PARAMETERS_2(pipe)           _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_2_PB, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_2_PC)
-#define ICL_DSC0_RC_RANGE_PARAMETERS_2_UDW(pipe)       _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_2_UDW_PB, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_2_UDW_PC)
-#define ICL_DSC1_RC_RANGE_PARAMETERS_2(pipe)           _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_2_PB, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_2_PC)
-#define ICL_DSC1_RC_RANGE_PARAMETERS_2_UDW(pipe)       _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_2_UDW_PB, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_2_UDW_PC)
-
-#define DSCA_RC_RANGE_PARAMETERS_3             _MMIO(0x6B258)
-#define DSCA_RC_RANGE_PARAMETERS_3_UDW         _MMIO(0x6B258 + 4)
-#define DSCC_RC_RANGE_PARAMETERS_3             _MMIO(0x6BA58)
-#define DSCC_RC_RANGE_PARAMETERS_3_UDW         _MMIO(0x6BA58 + 4)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_3_PB     (0x78220)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_3_UDW_PB (0x78220 + 4)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_3_PB     (0x78320)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_3_UDW_PB (0x78320 + 4)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_3_PC     (0x78420)
-#define _ICL_DSC0_RC_RANGE_PARAMETERS_3_UDW_PC (0x78420 + 4)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_3_PC     (0x78520)
-#define _ICL_DSC1_RC_RANGE_PARAMETERS_3_UDW_PC (0x78520 + 4)
-#define ICL_DSC0_RC_RANGE_PARAMETERS_3(pipe)           _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_3_PB, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_3_PC)
-#define ICL_DSC0_RC_RANGE_PARAMETERS_3_UDW(pipe)       _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_3_UDW_PB, \
-                                                       _ICL_DSC0_RC_RANGE_PARAMETERS_3_UDW_PC)
-#define ICL_DSC1_RC_RANGE_PARAMETERS_3(pipe)           _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_3_PB, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_3_PC)
-#define ICL_DSC1_RC_RANGE_PARAMETERS_3_UDW(pipe)       _MMIO_PIPE((pipe) - PIPE_B, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_3_UDW_PB, \
-                                                       _ICL_DSC1_RC_RANGE_PARAMETERS_3_UDW_PC)
-
 /* VGA port control */
 #define ADPA                   _MMIO(0x61100)
 #define PCH_ADPA                _MMIO(0xe1100)
 #define CRT_HOTPLUG_DETECT_VOLTAGE_475MV       (1 << 2)
 
 #define PORT_HOTPLUG_STAT      _MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x61114)
-/*
- * HDMI/DP bits are g4x+
- *
- * WARNING: Bspec for hpd status bits on gen4 seems to be completely confused.
- * Please check the detailed lore in the commit message for for experimental
- * evidence.
- */
-/* Bspec says GM45 should match G4X/VLV/CHV, but reality disagrees */
-#define   PORTD_HOTPLUG_LIVE_STATUS_GM45       (1 << 29)
-#define   PORTC_HOTPLUG_LIVE_STATUS_GM45       (1 << 28)
-#define   PORTB_HOTPLUG_LIVE_STATUS_GM45       (1 << 27)
-/* G4X/VLV/CHV DP/HDMI bits again match Bspec */
+/* HDMI/DP bits are g4x+ */
 #define   PORTD_HOTPLUG_LIVE_STATUS_G4X                (1 << 27)
 #define   PORTC_HOTPLUG_LIVE_STATUS_G4X                (1 << 28)
 #define   PORTB_HOTPLUG_LIVE_STATUS_G4X                (1 << 29)
 #define   SDVO_PIPE_SEL_MASK_CHV               (3 << 24)
 #define   SDVO_PIPE_SEL_CHV(pipe)              ((pipe) << 24)
 
-/* LVDS port control */
-#define LVDS                   _MMIO(0x61180)
-/*
- * Enables the LVDS port.  This bit must be set before DPLLs are enabled, as
- * the DPLL semantics change when the LVDS is assigned to that pipe.
- */
-#define   LVDS_PORT_EN                 (1 << 31)
-/* Selects pipe B for LVDS data.  Must be set on pre-965. */
-#define   LVDS_PIPE_SEL_SHIFT          30
-#define   LVDS_PIPE_SEL_MASK           (1 << 30)
-#define   LVDS_PIPE_SEL(pipe)          ((pipe) << 30)
-#define   LVDS_PIPE_SEL_SHIFT_CPT      29
-#define   LVDS_PIPE_SEL_MASK_CPT       (3 << 29)
-#define   LVDS_PIPE_SEL_CPT(pipe)      ((pipe) << 29)
-/* LVDS dithering flag on 965/g4x platform */
-#define   LVDS_ENABLE_DITHER           (1 << 25)
-/* LVDS sync polarity flags. Set to invert (i.e. negative) */
-#define   LVDS_VSYNC_POLARITY          (1 << 21)
-#define   LVDS_HSYNC_POLARITY          (1 << 20)
-
-/* Enable border for unscaled (or aspect-scaled) display */
-#define   LVDS_BORDER_ENABLE           (1 << 15)
-/*
- * Enables the A0-A2 data pairs and CLKA, containing 18 bits of color data per
- * pixel.
- */
-#define   LVDS_A0A2_CLKA_POWER_MASK    (3 << 8)
-#define   LVDS_A0A2_CLKA_POWER_DOWN    (0 << 8)
-#define   LVDS_A0A2_CLKA_POWER_UP      (3 << 8)
-/*
- * Controls the A3 data pair, which contains the additional LSBs for 24 bit
- * mode.  Only enabled if LVDS_A0A2_CLKA_POWER_UP also indicates it should be
- * on.
- */
-#define   LVDS_A3_POWER_MASK           (3 << 6)
-#define   LVDS_A3_POWER_DOWN           (0 << 6)
-#define   LVDS_A3_POWER_UP             (3 << 6)
-/*
- * Controls the CLKB pair.  This should only be set when LVDS_B0B3_POWER_UP
- * is set.
- */
-#define   LVDS_CLKB_POWER_MASK         (3 << 4)
-#define   LVDS_CLKB_POWER_DOWN         (0 << 4)
-#define   LVDS_CLKB_POWER_UP           (3 << 4)
-/*
- * Controls the B0-B3 data pairs.  This must be set to match the DPLL p2
- * setting for whether we are in dual-channel mode.  The B3 pair will
- * additionally only be powered up when LVDS_A3_POWER_UP is set.
- */
-#define   LVDS_B0B3_POWER_MASK         (3 << 2)
-#define   LVDS_B0B3_POWER_DOWN         (0 << 2)
-#define   LVDS_B0B3_POWER_UP           (3 << 2)
-
 /* Video Data Island Packet control */
 #define VIDEO_DIP_DATA         _MMIO(0x61178)
 /* Read the description of VIDEO_DIP_DATA (before Haswell) or VIDEO_DIP_ECC
 #define _PIPEADSL              0x70000
 #define   PIPEDSL_CURR_FIELD   REG_BIT(31) /* ctg+ */
 #define   PIPEDSL_LINE_MASK    REG_GENMASK(19, 0)
-#define _PIPEACONF             0x70008
-#define   PIPECONF_ENABLE                      REG_BIT(31)
-#define   PIPECONF_DOUBLE_WIDE                 REG_BIT(30) /* pre-i965 */
-#define   PIPECONF_STATE_ENABLE                        REG_BIT(30) /* i965+ */
-#define   PIPECONF_DSI_PLL_LOCKED              REG_BIT(29) /* vlv & pipe A only */
-#define   PIPECONF_FRAME_START_DELAY_MASK      REG_GENMASK(28, 27) /* pre-hsw */
-#define   PIPECONF_FRAME_START_DELAY(x)                REG_FIELD_PREP(PIPECONF_FRAME_START_DELAY_MASK, (x)) /* pre-hsw: 0-3 */
-#define   PIPECONF_PIPE_LOCKED                 REG_BIT(25)
-#define   PIPECONF_FORCE_BORDER                        REG_BIT(25)
-#define   PIPECONF_GAMMA_MODE_MASK_I9XX                REG_BIT(24) /* gmch */
-#define   PIPECONF_GAMMA_MODE_MASK_ILK         REG_GENMASK(25, 24) /* ilk-ivb */
-#define   PIPECONF_GAMMA_MODE_8BIT             REG_FIELD_PREP(PIPECONF_GAMMA_MODE_MASK, 0)
-#define   PIPECONF_GAMMA_MODE_10BIT            REG_FIELD_PREP(PIPECONF_GAMMA_MODE_MASK, 1)
-#define   PIPECONF_GAMMA_MODE_12BIT            REG_FIELD_PREP(PIPECONF_GAMMA_MODE_MASK_ILK, 2) /* ilk-ivb */
-#define   PIPECONF_GAMMA_MODE_SPLIT            REG_FIELD_PREP(PIPECONF_GAMMA_MODE_MASK_ILK, 3) /* ivb */
-#define   PIPECONF_GAMMA_MODE(x)               REG_FIELD_PREP(PIPECONF_GAMMA_MODE_MASK_ILK, (x)) /* pass in GAMMA_MODE_MODE_* */
-#define   PIPECONF_INTERLACE_MASK              REG_GENMASK(23, 21) /* gen3+ */
-#define   PIPECONF_INTERLACE_PROGRESSIVE       REG_FIELD_PREP(PIPECONF_INTERLACE_MASK, 0)
-#define   PIPECONF_INTERLACE_W_SYNC_SHIFT_PANEL        REG_FIELD_PREP(PIPECONF_INTERLACE_MASK, 4) /* gen4 only */
-#define   PIPECONF_INTERLACE_W_SYNC_SHIFT      REG_FIELD_PREP(PIPECONF_INTERLACE_MASK, 5) /* gen4 only */
-#define   PIPECONF_INTERLACE_W_FIELD_INDICATION        REG_FIELD_PREP(PIPECONF_INTERLACE_MASK, 6)
-#define   PIPECONF_INTERLACE_FIELD_0_ONLY      REG_FIELD_PREP(PIPECONF_INTERLACE_MASK, 7) /* gen3 only */
+#define _TRANSACONF            0x70008
+#define   TRANSCONF_ENABLE                     REG_BIT(31)
+#define   TRANSCONF_DOUBLE_WIDE                        REG_BIT(30) /* pre-i965 */
+#define   TRANSCONF_STATE_ENABLE                       REG_BIT(30) /* i965+ */
+#define   TRANSCONF_DSI_PLL_LOCKED             REG_BIT(29) /* vlv & pipe A only */
+#define   TRANSCONF_FRAME_START_DELAY_MASK     REG_GENMASK(28, 27) /* pre-hsw */
+#define   TRANSCONF_FRAME_START_DELAY(x)               REG_FIELD_PREP(TRANSCONF_FRAME_START_DELAY_MASK, (x)) /* pre-hsw: 0-3 */
+#define   TRANSCONF_PIPE_LOCKED                        REG_BIT(25)
+#define   TRANSCONF_FORCE_BORDER                       REG_BIT(25)
+#define   TRANSCONF_GAMMA_MODE_MASK_I9XX               REG_BIT(24) /* gmch */
+#define   TRANSCONF_GAMMA_MODE_MASK_ILK                REG_GENMASK(25, 24) /* ilk-ivb */
+#define   TRANSCONF_GAMMA_MODE_8BIT            REG_FIELD_PREP(TRANSCONF_GAMMA_MODE_MASK, 0)
+#define   TRANSCONF_GAMMA_MODE_10BIT           REG_FIELD_PREP(TRANSCONF_GAMMA_MODE_MASK, 1)
+#define   TRANSCONF_GAMMA_MODE_12BIT           REG_FIELD_PREP(TRANSCONF_GAMMA_MODE_MASK_ILK, 2) /* ilk-ivb */
+#define   TRANSCONF_GAMMA_MODE_SPLIT           REG_FIELD_PREP(TRANSCONF_GAMMA_MODE_MASK_ILK, 3) /* ivb */
+#define   TRANSCONF_GAMMA_MODE(x)              REG_FIELD_PREP(TRANSCONF_GAMMA_MODE_MASK_ILK, (x)) /* pass in GAMMA_MODE_MODE_* */
+#define   TRANSCONF_INTERLACE_MASK             REG_GENMASK(23, 21) /* gen3+ */
+#define   TRANSCONF_INTERLACE_PROGRESSIVE      REG_FIELD_PREP(TRANSCONF_INTERLACE_MASK, 0)
+#define   TRANSCONF_INTERLACE_W_SYNC_SHIFT_PANEL       REG_FIELD_PREP(TRANSCONF_INTERLACE_MASK, 4) /* gen4 only */
+#define   TRANSCONF_INTERLACE_W_SYNC_SHIFT     REG_FIELD_PREP(TRANSCONF_INTERLACE_MASK, 5) /* gen4 only */
+#define   TRANSCONF_INTERLACE_W_FIELD_INDICATION       REG_FIELD_PREP(TRANSCONF_INTERLACE_MASK, 6)
+#define   TRANSCONF_INTERLACE_FIELD_0_ONLY     REG_FIELD_PREP(TRANSCONF_INTERLACE_MASK, 7) /* gen3 only */
 /*
  * ilk+: PF/D=progressive fetch/display, IF/D=interlaced fetch/display,
  * DBL=power saving pixel doubling, PF-ID* requires panel fitter
  */
-#define   PIPECONF_INTERLACE_MASK_ILK          REG_GENMASK(23, 21) /* ilk+ */
-#define   PIPECONF_INTERLACE_MASK_HSW          REG_GENMASK(22, 21) /* hsw+ */
-#define   PIPECONF_INTERLACE_PF_PD_ILK         REG_FIELD_PREP(PIPECONF_INTERLACE_MASK_ILK, 0)
-#define   PIPECONF_INTERLACE_PF_ID_ILK         REG_FIELD_PREP(PIPECONF_INTERLACE_MASK_ILK, 1)
-#define   PIPECONF_INTERLACE_IF_ID_ILK         REG_FIELD_PREP(PIPECONF_INTERLACE_MASK_ILK, 3)
-#define   PIPECONF_INTERLACE_IF_ID_DBL_ILK     REG_FIELD_PREP(PIPECONF_INTERLACE_MASK_ILK, 4) /* ilk/snb only */
-#define   PIPECONF_INTERLACE_PF_ID_DBL_ILK     REG_FIELD_PREP(PIPECONF_INTERLACE_MASK_ILK, 5) /* ilk/snb only */
-#define   PIPECONF_REFRESH_RATE_ALT_ILK                REG_BIT(20)
-#define   PIPECONF_MSA_TIMING_DELAY_MASK       REG_GENMASK(19, 18) /* ilk/snb/ivb */
-#define   PIPECONF_MSA_TIMING_DELAY(x)         REG_FIELD_PREP(PIPECONF_MSA_TIMING_DELAY_MASK, (x))
-#define   PIPECONF_CXSR_DOWNCLOCK              REG_BIT(16)
-#define   PIPECONF_REFRESH_RATE_ALT_VLV                REG_BIT(14)
-#define   PIPECONF_COLOR_RANGE_SELECT          REG_BIT(13)
-#define   PIPECONF_OUTPUT_COLORSPACE_MASK      REG_GENMASK(12, 11) /* ilk-ivb */
-#define   PIPECONF_OUTPUT_COLORSPACE_RGB       REG_FIELD_PREP(PIPECONF_OUTPUT_COLORSPACE_MASK, 0) /* ilk-ivb */
-#define   PIPECONF_OUTPUT_COLORSPACE_YUV601    REG_FIELD_PREP(PIPECONF_OUTPUT_COLORSPACE_MASK, 1) /* ilk-ivb */
-#define   PIPECONF_OUTPUT_COLORSPACE_YUV709    REG_FIELD_PREP(PIPECONF_OUTPUT_COLORSPACE_MASK, 2) /* ilk-ivb */
-#define   PIPECONF_OUTPUT_COLORSPACE_YUV_HSW   REG_BIT(11) /* hsw only */
-#define   PIPECONF_BPC_MASK                    REG_GENMASK(7, 5) /* ctg-ivb */
-#define   PIPECONF_BPC_8                       REG_FIELD_PREP(PIPECONF_BPC_MASK, 0)
-#define   PIPECONF_BPC_10                      REG_FIELD_PREP(PIPECONF_BPC_MASK, 1)
-#define   PIPECONF_BPC_6                       REG_FIELD_PREP(PIPECONF_BPC_MASK, 2)
-#define   PIPECONF_BPC_12                      REG_FIELD_PREP(PIPECONF_BPC_MASK, 3)
-#define   PIPECONF_DITHER_EN                   REG_BIT(4)
-#define   PIPECONF_DITHER_TYPE_MASK            REG_GENMASK(3, 2)
-#define   PIPECONF_DITHER_TYPE_SP              REG_FIELD_PREP(PIPECONF_DITHER_TYPE_MASK, 0)
-#define   PIPECONF_DITHER_TYPE_ST1             REG_FIELD_PREP(PIPECONF_DITHER_TYPE_MASK, 1)
-#define   PIPECONF_DITHER_TYPE_ST2             REG_FIELD_PREP(PIPECONF_DITHER_TYPE_MASK, 2)
-#define   PIPECONF_DITHER_TYPE_TEMP            REG_FIELD_PREP(PIPECONF_DITHER_TYPE_MASK, 3)
+#define   TRANSCONF_INTERLACE_MASK_ILK         REG_GENMASK(23, 21) /* ilk+ */
+#define   TRANSCONF_INTERLACE_MASK_HSW         REG_GENMASK(22, 21) /* hsw+ */
+#define   TRANSCONF_INTERLACE_PF_PD_ILK                REG_FIELD_PREP(TRANSCONF_INTERLACE_MASK_ILK, 0)
+#define   TRANSCONF_INTERLACE_PF_ID_ILK                REG_FIELD_PREP(TRANSCONF_INTERLACE_MASK_ILK, 1)
+#define   TRANSCONF_INTERLACE_IF_ID_ILK                REG_FIELD_PREP(TRANSCONF_INTERLACE_MASK_ILK, 3)
+#define   TRANSCONF_INTERLACE_IF_ID_DBL_ILK    REG_FIELD_PREP(TRANSCONF_INTERLACE_MASK_ILK, 4) /* ilk/snb only */
+#define   TRANSCONF_INTERLACE_PF_ID_DBL_ILK    REG_FIELD_PREP(TRANSCONF_INTERLACE_MASK_ILK, 5) /* ilk/snb only */
+#define   TRANSCONF_REFRESH_RATE_ALT_ILK               REG_BIT(20)
+#define   TRANSCONF_MSA_TIMING_DELAY_MASK      REG_GENMASK(19, 18) /* ilk/snb/ivb */
+#define   TRANSCONF_MSA_TIMING_DELAY(x)                REG_FIELD_PREP(TRANSCONF_MSA_TIMING_DELAY_MASK, (x))
+#define   TRANSCONF_CXSR_DOWNCLOCK             REG_BIT(16)
+#define   TRANSCONF_REFRESH_RATE_ALT_VLV               REG_BIT(14)
+#define   TRANSCONF_COLOR_RANGE_SELECT         REG_BIT(13)
+#define   TRANSCONF_OUTPUT_COLORSPACE_MASK     REG_GENMASK(12, 11) /* ilk-ivb */
+#define   TRANSCONF_OUTPUT_COLORSPACE_RGB      REG_FIELD_PREP(TRANSCONF_OUTPUT_COLORSPACE_MASK, 0) /* ilk-ivb */
+#define   TRANSCONF_OUTPUT_COLORSPACE_YUV601   REG_FIELD_PREP(TRANSCONF_OUTPUT_COLORSPACE_MASK, 1) /* ilk-ivb */
+#define   TRANSCONF_OUTPUT_COLORSPACE_YUV709   REG_FIELD_PREP(TRANSCONF_OUTPUT_COLORSPACE_MASK, 2) /* ilk-ivb */
+#define   TRANSCONF_OUTPUT_COLORSPACE_YUV_HSW  REG_BIT(11) /* hsw only */
+#define   TRANSCONF_BPC_MASK                   REG_GENMASK(7, 5) /* ctg-ivb */
+#define   TRANSCONF_BPC_8                      REG_FIELD_PREP(TRANSCONF_BPC_MASK, 0)
+#define   TRANSCONF_BPC_10                     REG_FIELD_PREP(TRANSCONF_BPC_MASK, 1)
+#define   TRANSCONF_BPC_6                      REG_FIELD_PREP(TRANSCONF_BPC_MASK, 2)
+#define   TRANSCONF_BPC_12                     REG_FIELD_PREP(TRANSCONF_BPC_MASK, 3)
+#define   TRANSCONF_DITHER_EN                  REG_BIT(4)
+#define   TRANSCONF_DITHER_TYPE_MASK           REG_GENMASK(3, 2)
+#define   TRANSCONF_DITHER_TYPE_SP             REG_FIELD_PREP(TRANSCONF_DITHER_TYPE_MASK, 0)
+#define   TRANSCONF_DITHER_TYPE_ST1            REG_FIELD_PREP(TRANSCONF_DITHER_TYPE_MASK, 1)
+#define   TRANSCONF_DITHER_TYPE_ST2            REG_FIELD_PREP(TRANSCONF_DITHER_TYPE_MASK, 2)
+#define   TRANSCONF_DITHER_TYPE_TEMP           REG_FIELD_PREP(TRANSCONF_DITHER_TYPE_MASK, 3)
 #define _PIPEASTAT             0x70024
 #define   PIPE_FIFO_UNDERRUN_STATUS            (1UL << 31)
 #define   SPRITE1_FLIP_DONE_INT_EN_VLV         (1UL << 30)
 #define PIPE_DSI0_OFFSET       0x7b000
 #define PIPE_DSI1_OFFSET       0x7b800
 
-#define PIPECONF(pipe)         _MMIO_PIPE2(pipe, _PIPEACONF)
+#define TRANSCONF(trans)       _MMIO_PIPE2((trans), _TRANSACONF)
 #define PIPEDSL(pipe)          _MMIO_PIPE2(pipe, _PIPEADSL)
 #define PIPEFRAME(pipe)                _MMIO_PIPE2(pipe, _PIPEAFRAMEHIGH)
 #define PIPEFRAMEPIXEL(pipe)   _MMIO_PIPE2(pipe, _PIPEAFRAMEPIXEL)
 
 /* Pipe B */
 #define _PIPEBDSL              (DISPLAY_MMIO_BASE(dev_priv) + 0x71000)
-#define _PIPEBCONF             (DISPLAY_MMIO_BASE(dev_priv) + 0x71008)
+#define _TRANSBCONF            (DISPLAY_MMIO_BASE(dev_priv) + 0x71008)
 #define _PIPEBSTAT             (DISPLAY_MMIO_BASE(dev_priv) + 0x71024)
 #define _PIPEBFRAMEHIGH                0x71040
 #define _PIPEBFRAMEPIXEL       0x71044
 #define  GEN8_PIPE_CDCLK_CRC_DONE      (1 << 28)
 #define  XELPD_PIPE_SOFT_UNDERRUN      (1 << 22)
 #define  XELPD_PIPE_HARD_UNDERRUN      (1 << 21)
+#define  GEN12_PIPE_VBLANK_UNMOD       (1 << 19)
 #define  GEN8_PIPE_CURSOR_FAULT                (1 << 10)
 #define  GEN8_PIPE_SPRITE_FAULT                (1 << 9)
 #define  GEN8_PIPE_PRIMARY_FAULT       (1 << 8)
 #define FDI_PLL_CTL_1           _MMIO(0xfe000)
 #define FDI_PLL_CTL_2           _MMIO(0xfe004)
 
-#define PCH_LVDS       _MMIO(0xe1180)
-#define  LVDS_DETECTED (1 << 1)
-
 #define _PCH_DP_B              0xe4100
 #define PCH_DP_B               _MMIO(_PCH_DP_B)
 #define _PCH_DPB_AUX_CH_CTL    0xe4110
@@ -7224,21 +7086,23 @@ enum skl_power_gate {
                                                        ADLS_DPCLKA_DDIK_SEL_MASK)
 
 /* ICL PLL */
-#define DPLL0_ENABLE           0x46010
-#define DPLL1_ENABLE           0x46014
+#define _DPLL0_ENABLE          0x46010
+#define _DPLL1_ENABLE          0x46014
 #define _ADLS_DPLL2_ENABLE     0x46018
 #define _ADLS_DPLL3_ENABLE     0x46030
-#define  PLL_ENABLE            (1 << 31)
-#define  PLL_LOCK              (1 << 30)
-#define  PLL_POWER_ENABLE      (1 << 27)
-#define  PLL_POWER_STATE       (1 << 26)
-#define ICL_DPLL_ENABLE(pll)   _MMIO_PLL3(pll, DPLL0_ENABLE, DPLL1_ENABLE, \
-                                          _ADLS_DPLL2_ENABLE, _ADLS_DPLL3_ENABLE)
+#define   PLL_ENABLE           REG_BIT(31)
+#define   PLL_LOCK             REG_BIT(30)
+#define   PLL_POWER_ENABLE     REG_BIT(27)
+#define   PLL_POWER_STATE      REG_BIT(26)
+#define ICL_DPLL_ENABLE(pll)   _MMIO(_PICK_EVEN_2RANGES(pll, 3,                        \
+                                                       _DPLL0_ENABLE, _DPLL1_ENABLE,   \
+                                                       _ADLS_DPLL3_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 DG2_PLL_ENABLE(pll)    _MMIO(_PICK_EVEN_2RANGES(pll, 3,                        \
+                                                       _DPLL0_ENABLE, _DPLL1_ENABLE,   \
+                                                       _DG2_PLL3_ENABLE, _DG2_PLL3_ENABLE))
 
 #define TBT_PLL_ENABLE         _MMIO(0x46020)
 
@@ -7246,13 +7110,14 @@ enum skl_power_gate {
 #define _MG_PLL2_ENABLE                0x46034
 #define _MG_PLL3_ENABLE                0x46038
 #define _MG_PLL4_ENABLE                0x4603C
-/* Bits are the same as DPLL0_ENABLE */
+/* Bits are the same as _DPLL0_ENABLE */
 #define MG_PLL_ENABLE(tc_port) _MMIO_PORT((tc_port), _MG_PLL1_ENABLE, \
                                           _MG_PLL2_ENABLE)
 
 /* DG1 PLL */
-#define DG1_DPLL_ENABLE(pll)    _MMIO_PLL3(pll, DPLL0_ENABLE, DPLL1_ENABLE, \
-                                          _MG_PLL1_ENABLE, _MG_PLL2_ENABLE)
+#define DG1_DPLL_ENABLE(pll)    _MMIO(_PICK_EVEN_2RANGES(pll, 2,                       \
+                                                       _DPLL0_ENABLE, _DPLL1_ENABLE,   \
+                                                       _MG_PLL1_ENABLE, _MG_PLL2_ENABLE))
 
 /* ADL-P Type C PLL */
 #define PORTTC1_PLL_ENABLE     0x46038
@@ -7312,9 +7177,9 @@ enum skl_power_gate {
 #define _TGL_DPLL0_CFGCR0              0x164284
 #define _TGL_DPLL1_CFGCR0              0x16428C
 #define _TGL_TBTPLL_CFGCR0             0x16429C
-#define TGL_DPLL_CFGCR0(pll)           _MMIO_PLL3(pll, _TGL_DPLL0_CFGCR0, \
-                                                 _TGL_DPLL1_CFGCR0, \
-                                                 _TGL_TBTPLL_CFGCR0)
+#define TGL_DPLL_CFGCR0(pll)           _MMIO(_PICK_EVEN_2RANGES(pll, 2,                \
+                                             _TGL_DPLL0_CFGCR0, _TGL_DPLL1_CFGCR0,     \
+                                             _TGL_TBTPLL_CFGCR0, _TGL_TBTPLL_CFGCR0))
 #define RKL_DPLL_CFGCR0(pll)           _MMIO_PLL(pll, _TGL_DPLL0_CFGCR0, \
                                                  _TGL_DPLL1_CFGCR0)
 
@@ -7327,40 +7192,36 @@ enum skl_power_gate {
 #define _TGL_DPLL0_CFGCR1              0x164288
 #define _TGL_DPLL1_CFGCR1              0x164290
 #define _TGL_TBTPLL_CFGCR1             0x1642A0
-#define TGL_DPLL_CFGCR1(pll)           _MMIO_PLL3(pll, _TGL_DPLL0_CFGCR1, \
-                                                  _TGL_DPLL1_CFGCR1, \
-                                                  _TGL_TBTPLL_CFGCR1)
+#define TGL_DPLL_CFGCR1(pll)           _MMIO(_PICK_EVEN_2RANGES(pll, 2,                \
+                                             _TGL_DPLL0_CFGCR1, _TGL_DPLL1_CFGCR1,     \
+                                             _TGL_TBTPLL_CFGCR1, _TGL_TBTPLL_CFGCR1))
 #define RKL_DPLL_CFGCR1(pll)           _MMIO_PLL(pll, _TGL_DPLL0_CFGCR1, \
                                                  _TGL_DPLL1_CFGCR1)
 
 #define _DG1_DPLL2_CFGCR0              0x16C284
 #define _DG1_DPLL3_CFGCR0              0x16C28C
-#define DG1_DPLL_CFGCR0(pll)           _MMIO_PLL3(pll, _TGL_DPLL0_CFGCR0, \
-                                                  _TGL_DPLL1_CFGCR0, \
-                                                  _DG1_DPLL2_CFGCR0, \
-                                                  _DG1_DPLL3_CFGCR0)
+#define DG1_DPLL_CFGCR0(pll)           _MMIO(_PICK_EVEN_2RANGES(pll, 2,                \
+                                             _TGL_DPLL0_CFGCR0, _TGL_DPLL1_CFGCR0,     \
+                                             _DG1_DPLL2_CFGCR0, _DG1_DPLL3_CFGCR0))
 
 #define _DG1_DPLL2_CFGCR1               0x16C288
 #define _DG1_DPLL3_CFGCR1               0x16C290
-#define DG1_DPLL_CFGCR1(pll)            _MMIO_PLL3(pll, _TGL_DPLL0_CFGCR1, \
-                                                  _TGL_DPLL1_CFGCR1, \
-                                                  _DG1_DPLL2_CFGCR1, \
-                                                  _DG1_DPLL3_CFGCR1)
+#define DG1_DPLL_CFGCR1(pll)            _MMIO(_PICK_EVEN_2RANGES(pll, 2,               \
+                                             _TGL_DPLL0_CFGCR1, _TGL_DPLL1_CFGCR1,     \
+                                             _DG1_DPLL2_CFGCR1, _DG1_DPLL3_CFGCR1))
 
 /* For ADL-S DPLL4_CFGCR0/1 are used to control DPLL2 */
-#define _ADLS_DPLL3_CFGCR0             0x1642C0
 #define _ADLS_DPLL4_CFGCR0             0x164294
-#define ADLS_DPLL_CFGCR0(pll)          _MMIO_PLL3(pll, _TGL_DPLL0_CFGCR0, \
-                                                  _TGL_DPLL1_CFGCR0, \
-                                                  _ADLS_DPLL4_CFGCR0, \
-                                                  _ADLS_DPLL3_CFGCR0)
+#define _ADLS_DPLL3_CFGCR0             0x1642C0
+#define ADLS_DPLL_CFGCR0(pll)          _MMIO(_PICK_EVEN_2RANGES(pll, 2,                \
+                                             _TGL_DPLL0_CFGCR0, _TGL_DPLL1_CFGCR0,     \
+                                             _ADLS_DPLL4_CFGCR0, _ADLS_DPLL3_CFGCR0))
 
-#define _ADLS_DPLL3_CFGCR1             0x1642C4
 #define _ADLS_DPLL4_CFGCR1             0x164298
-#define ADLS_DPLL_CFGCR1(pll)          _MMIO_PLL3(pll, _TGL_DPLL0_CFGCR1, \
-                                                  _TGL_DPLL1_CFGCR1, \
-                                                  _ADLS_DPLL4_CFGCR1, \
-                                                  _ADLS_DPLL3_CFGCR1)
+#define _ADLS_DPLL3_CFGCR1             0x1642C4
+#define ADLS_DPLL_CFGCR1(pll)          _MMIO(_PICK_EVEN_2RANGES(pll, 2,                \
+                                             _TGL_DPLL0_CFGCR1, _TGL_DPLL1_CFGCR1,     \
+                                             _ADLS_DPLL4_CFGCR1, _ADLS_DPLL3_CFGCR1))
 
 /* BXT display engine PLL */
 #define BXT_DE_PLL_CTL                 _MMIO(0x6d000)
@@ -7693,44 +7554,6 @@ enum skl_power_gate {
 #define PIPE_FRMTMSTMP(pipe)           \
                        _MMIO_PIPE2(pipe, _PIPE_FRMTMSTMP_A)
 
-/* Display Stream Splitter Control */
-#define DSS_CTL1                               _MMIO(0x67400)
-#define  SPLITTER_ENABLE                       (1 << 31)
-#define  JOINER_ENABLE                         (1 << 30)
-#define  DUAL_LINK_MODE_INTERLEAVE             (1 << 24)
-#define  DUAL_LINK_MODE_FRONTBACK              (0 << 24)
-#define  OVERLAP_PIXELS_MASK                   (0xf << 16)
-#define  OVERLAP_PIXELS(pixels)                        ((pixels) << 16)
-#define  LEFT_DL_BUF_TARGET_DEPTH_MASK         (0xfff << 0)
-#define  LEFT_DL_BUF_TARGET_DEPTH(pixels)      ((pixels) << 0)
-#define  MAX_DL_BUFFER_TARGET_DEPTH            0x5a0
-
-#define DSS_CTL2                               _MMIO(0x67404)
-#define  LEFT_BRANCH_VDSC_ENABLE               (1 << 31)
-#define  RIGHT_BRANCH_VDSC_ENABLE              (1 << 15)
-#define  RIGHT_DL_BUF_TARGET_DEPTH_MASK                (0xfff << 0)
-#define  RIGHT_DL_BUF_TARGET_DEPTH(pixels)     ((pixels) << 0)
-
-#define _ICL_PIPE_DSS_CTL1_PB                  0x78200
-#define _ICL_PIPE_DSS_CTL1_PC                  0x78400
-#define ICL_PIPE_DSS_CTL1(pipe)                        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_PIPE_DSS_CTL1_PB, \
-                                                          _ICL_PIPE_DSS_CTL1_PC)
-#define  BIG_JOINER_ENABLE                     (1 << 29)
-#define  MASTER_BIG_JOINER_ENABLE              (1 << 28)
-#define  VGA_CENTERING_ENABLE                  (1 << 27)
-#define  SPLITTER_CONFIGURATION_MASK           REG_GENMASK(26, 25)
-#define  SPLITTER_CONFIGURATION_2_SEGMENT      REG_FIELD_PREP(SPLITTER_CONFIGURATION_MASK, 0)
-#define  SPLITTER_CONFIGURATION_4_SEGMENT      REG_FIELD_PREP(SPLITTER_CONFIGURATION_MASK, 1)
-#define  UNCOMPRESSED_JOINER_MASTER            (1 << 21)
-#define  UNCOMPRESSED_JOINER_SLAVE             (1 << 20)
-
-#define _ICL_PIPE_DSS_CTL2_PB                  0x78204
-#define _ICL_PIPE_DSS_CTL2_PC                  0x78404
-#define ICL_PIPE_DSS_CTL2(pipe)                        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_PIPE_DSS_CTL2_PB, \
-                                                          _ICL_PIPE_DSS_CTL2_PC)
-
 #define GGC                            _MMIO(0x108040)
 #define   GMS_MASK                     REG_GENMASK(15, 8)
 #define   GGMS_MASK                    REG_GENMASK(7, 6)
@@ -7754,314 +7577,6 @@ enum skl_power_gate {
 #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)
-#define DSCC_PICTURE_PARAMETER_SET_0           _MMIO(0x6BA00)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_0_PB   0x78270
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_0_PB   0x78370
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_0_PC   0x78470
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_0_PC   0x78570
-#define ICL_DSC0_PICTURE_PARAMETER_SET_0(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_0_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_0_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_0(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_0_PB, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_0_PC)
-#define  DSC_ALT_ICH_SEL               (1 << 20)
-#define  DSC_VBR_ENABLE                        (1 << 19)
-#define  DSC_422_ENABLE                        (1 << 18)
-#define  DSC_COLOR_SPACE_CONVERSION    (1 << 17)
-#define  DSC_BLOCK_PREDICTION          (1 << 16)
-#define  DSC_LINE_BUF_DEPTH_SHIFT      12
-#define  DSC_BPC_SHIFT                 8
-#define  DSC_VER_MIN_SHIFT             4
-#define  DSC_VER_MAJ                   (0x1 << 0)
-
-#define DSCA_PICTURE_PARAMETER_SET_1           _MMIO(0x6B204)
-#define DSCC_PICTURE_PARAMETER_SET_1           _MMIO(0x6BA04)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_1_PB   0x78274
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_1_PB   0x78374
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_1_PC   0x78474
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_1_PC   0x78574
-#define ICL_DSC0_PICTURE_PARAMETER_SET_1(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_1_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_1_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_1(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_1_PB, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_1_PC)
-#define  DSC_BPP(bpp)                          ((bpp) << 0)
-
-#define DSCA_PICTURE_PARAMETER_SET_2           _MMIO(0x6B208)
-#define DSCC_PICTURE_PARAMETER_SET_2           _MMIO(0x6BA08)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_2_PB   0x78278
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_2_PB   0x78378
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_2_PC   0x78478
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_2_PC   0x78578
-#define ICL_DSC0_PICTURE_PARAMETER_SET_2(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_2_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_2_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_2(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                           _ICL_DSC1_PICTURE_PARAMETER_SET_2_PB, \
-                                           _ICL_DSC1_PICTURE_PARAMETER_SET_2_PC)
-#define  DSC_PIC_WIDTH(pic_width)      ((pic_width) << 16)
-#define  DSC_PIC_HEIGHT(pic_height)    ((pic_height) << 0)
-
-#define DSCA_PICTURE_PARAMETER_SET_3           _MMIO(0x6B20C)
-#define DSCC_PICTURE_PARAMETER_SET_3           _MMIO(0x6BA0C)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_3_PB   0x7827C
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_3_PB   0x7837C
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_3_PC   0x7847C
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_3_PC   0x7857C
-#define ICL_DSC0_PICTURE_PARAMETER_SET_3(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_3_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_3_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_3(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_3_PB, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_3_PC)
-#define  DSC_SLICE_WIDTH(slice_width)   ((slice_width) << 16)
-#define  DSC_SLICE_HEIGHT(slice_height) ((slice_height) << 0)
-
-#define DSCA_PICTURE_PARAMETER_SET_4           _MMIO(0x6B210)
-#define DSCC_PICTURE_PARAMETER_SET_4           _MMIO(0x6BA10)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_4_PB   0x78280
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_4_PB   0x78380
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_4_PC   0x78480
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_4_PC   0x78580
-#define ICL_DSC0_PICTURE_PARAMETER_SET_4(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_4_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_4_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_4(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_4_PB, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_4_PC)
-#define  DSC_INITIAL_DEC_DELAY(dec_delay)       ((dec_delay) << 16)
-#define  DSC_INITIAL_XMIT_DELAY(xmit_delay)     ((xmit_delay) << 0)
-
-#define DSCA_PICTURE_PARAMETER_SET_5           _MMIO(0x6B214)
-#define DSCC_PICTURE_PARAMETER_SET_5           _MMIO(0x6BA14)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_5_PB   0x78284
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_5_PB   0x78384
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_5_PC   0x78484
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_5_PC   0x78584
-#define ICL_DSC0_PICTURE_PARAMETER_SET_5(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_5_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_5_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_5(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_5_PB, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_5_PC)
-#define  DSC_SCALE_DEC_INT(scale_dec)  ((scale_dec) << 16)
-#define  DSC_SCALE_INC_INT(scale_inc)          ((scale_inc) << 0)
-
-#define DSCA_PICTURE_PARAMETER_SET_6           _MMIO(0x6B218)
-#define DSCC_PICTURE_PARAMETER_SET_6           _MMIO(0x6BA18)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_6_PB   0x78288
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_6_PB   0x78388
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_6_PC   0x78488
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_6_PC   0x78588
-#define ICL_DSC0_PICTURE_PARAMETER_SET_6(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_6_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_6_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_6(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_6_PB, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_6_PC)
-#define  DSC_FLATNESS_MAX_QP(max_qp)           ((max_qp) << 24)
-#define  DSC_FLATNESS_MIN_QP(min_qp)           ((min_qp) << 16)
-#define  DSC_FIRST_LINE_BPG_OFFSET(offset)     ((offset) << 8)
-#define  DSC_INITIAL_SCALE_VALUE(value)                ((value) << 0)
-
-#define DSCA_PICTURE_PARAMETER_SET_7           _MMIO(0x6B21C)
-#define DSCC_PICTURE_PARAMETER_SET_7           _MMIO(0x6BA1C)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_7_PB   0x7828C
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_7_PB   0x7838C
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_7_PC   0x7848C
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_7_PC   0x7858C
-#define ICL_DSC0_PICTURE_PARAMETER_SET_7(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                           _ICL_DSC0_PICTURE_PARAMETER_SET_7_PB, \
-                                                           _ICL_DSC0_PICTURE_PARAMETER_SET_7_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_7(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                           _ICL_DSC1_PICTURE_PARAMETER_SET_7_PB, \
-                                                           _ICL_DSC1_PICTURE_PARAMETER_SET_7_PC)
-#define  DSC_NFL_BPG_OFFSET(bpg_offset)                ((bpg_offset) << 16)
-#define  DSC_SLICE_BPG_OFFSET(bpg_offset)      ((bpg_offset) << 0)
-
-#define DSCA_PICTURE_PARAMETER_SET_8           _MMIO(0x6B220)
-#define DSCC_PICTURE_PARAMETER_SET_8           _MMIO(0x6BA20)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_8_PB   0x78290
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_8_PB   0x78390
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_8_PC   0x78490
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_8_PC   0x78590
-#define ICL_DSC0_PICTURE_PARAMETER_SET_8(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_8_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_8_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_8(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_8_PB, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_8_PC)
-#define  DSC_INITIAL_OFFSET(initial_offset)            ((initial_offset) << 16)
-#define  DSC_FINAL_OFFSET(final_offset)                        ((final_offset) << 0)
-
-#define DSCA_PICTURE_PARAMETER_SET_9           _MMIO(0x6B224)
-#define DSCC_PICTURE_PARAMETER_SET_9           _MMIO(0x6BA24)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_9_PB   0x78294
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_9_PB   0x78394
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_9_PC   0x78494
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_9_PC   0x78594
-#define ICL_DSC0_PICTURE_PARAMETER_SET_9(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_9_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_9_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_9(pipe) _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_9_PB, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_9_PC)
-#define  DSC_RC_EDGE_FACTOR(rc_edge_fact)      ((rc_edge_fact) << 16)
-#define  DSC_RC_MODEL_SIZE(rc_model_size)      ((rc_model_size) << 0)
-
-#define DSCA_PICTURE_PARAMETER_SET_10          _MMIO(0x6B228)
-#define DSCC_PICTURE_PARAMETER_SET_10          _MMIO(0x6BA28)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_10_PB  0x78298
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_10_PB  0x78398
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_10_PC  0x78498
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_10_PC  0x78598
-#define ICL_DSC0_PICTURE_PARAMETER_SET_10(pipe)        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_10_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_10_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_10(pipe)        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_10_PB, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_10_PC)
-#define  DSC_RC_TARGET_OFF_LOW(rc_tgt_off_low)         ((rc_tgt_off_low) << 20)
-#define  DSC_RC_TARGET_OFF_HIGH(rc_tgt_off_high)       ((rc_tgt_off_high) << 16)
-#define  DSC_RC_QUANT_INC_LIMIT1(lim)                  ((lim) << 8)
-#define  DSC_RC_QUANT_INC_LIMIT0(lim)                  ((lim) << 0)
-
-#define DSCA_PICTURE_PARAMETER_SET_11          _MMIO(0x6B22C)
-#define DSCC_PICTURE_PARAMETER_SET_11          _MMIO(0x6BA2C)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_11_PB  0x7829C
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_11_PB  0x7839C
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_11_PC  0x7849C
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_11_PC  0x7859C
-#define ICL_DSC0_PICTURE_PARAMETER_SET_11(pipe)        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_11_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_11_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_11(pipe)        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_11_PB, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_11_PC)
-
-#define DSCA_PICTURE_PARAMETER_SET_12          _MMIO(0x6B260)
-#define DSCC_PICTURE_PARAMETER_SET_12          _MMIO(0x6BA60)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_12_PB  0x782A0
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_12_PB  0x783A0
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_12_PC  0x784A0
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_12_PC  0x785A0
-#define ICL_DSC0_PICTURE_PARAMETER_SET_12(pipe)        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_12_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_12_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_12(pipe)        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_12_PB, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_12_PC)
-
-#define DSCA_PICTURE_PARAMETER_SET_13          _MMIO(0x6B264)
-#define DSCC_PICTURE_PARAMETER_SET_13          _MMIO(0x6BA64)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_13_PB  0x782A4
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_13_PB  0x783A4
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_13_PC  0x784A4
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_13_PC  0x785A4
-#define ICL_DSC0_PICTURE_PARAMETER_SET_13(pipe)        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_13_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_13_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_13(pipe)        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_13_PB, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_13_PC)
-
-#define DSCA_PICTURE_PARAMETER_SET_14          _MMIO(0x6B268)
-#define DSCC_PICTURE_PARAMETER_SET_14          _MMIO(0x6BA68)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_14_PB  0x782A8
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_14_PB  0x783A8
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_14_PC  0x784A8
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_14_PC  0x785A8
-#define ICL_DSC0_PICTURE_PARAMETER_SET_14(pipe)        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_14_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_14_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_14(pipe)        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_14_PB, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_14_PC)
-
-#define DSCA_PICTURE_PARAMETER_SET_15          _MMIO(0x6B26C)
-#define DSCC_PICTURE_PARAMETER_SET_15          _MMIO(0x6BA6C)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_15_PB  0x782AC
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_15_PB  0x783AC
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_15_PC  0x784AC
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_15_PC  0x785AC
-#define ICL_DSC0_PICTURE_PARAMETER_SET_15(pipe)        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_15_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_15_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_15(pipe)        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_15_PB, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_15_PC)
-
-#define DSCA_PICTURE_PARAMETER_SET_16          _MMIO(0x6B270)
-#define DSCC_PICTURE_PARAMETER_SET_16          _MMIO(0x6BA70)
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_16_PB  0x782B0
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_16_PB  0x783B0
-#define _ICL_DSC0_PICTURE_PARAMETER_SET_16_PC  0x784B0
-#define _ICL_DSC1_PICTURE_PARAMETER_SET_16_PC  0x785B0
-#define ICL_DSC0_PICTURE_PARAMETER_SET_16(pipe)        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_16_PB, \
-                                                          _ICL_DSC0_PICTURE_PARAMETER_SET_16_PC)
-#define ICL_DSC1_PICTURE_PARAMETER_SET_16(pipe)        _MMIO_PIPE((pipe) - PIPE_B, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_16_PB, \
-                                                          _ICL_DSC1_PICTURE_PARAMETER_SET_16_PC)
-#define  DSC_SLICE_ROW_PER_FRAME(slice_row_per_frame)  ((slice_row_per_frame) << 20)
-#define  DSC_SLICE_PER_LINE(slice_per_line)            ((slice_per_line) << 16)
-#define  DSC_SLICE_CHUNK_SIZE(slice_chunk_size)                ((slice_chunk_size) << 0)
-
-/* Icelake Rate Control Buffer Threshold Registers */
-#define DSCA_RC_BUF_THRESH_0                   _MMIO(0x6B230)
-#define DSCA_RC_BUF_THRESH_0_UDW               _MMIO(0x6B230 + 4)
-#define DSCC_RC_BUF_THRESH_0                   _MMIO(0x6BA30)
-#define DSCC_RC_BUF_THRESH_0_UDW               _MMIO(0x6BA30 + 4)
-#define _ICL_DSC0_RC_BUF_THRESH_0_PB           (0x78254)
-#define _ICL_DSC0_RC_BUF_THRESH_0_UDW_PB       (0x78254 + 4)
-#define _ICL_DSC1_RC_BUF_THRESH_0_PB           (0x78354)
-#define _ICL_DSC1_RC_BUF_THRESH_0_UDW_PB       (0x78354 + 4)
-#define _ICL_DSC0_RC_BUF_THRESH_0_PC           (0x78454)
-#define _ICL_DSC0_RC_BUF_THRESH_0_UDW_PC       (0x78454 + 4)
-#define _ICL_DSC1_RC_BUF_THRESH_0_PC           (0x78554)
-#define _ICL_DSC1_RC_BUF_THRESH_0_UDW_PC       (0x78554 + 4)
-#define ICL_DSC0_RC_BUF_THRESH_0(pipe)         _MMIO_PIPE((pipe) - PIPE_B, \
-                                               _ICL_DSC0_RC_BUF_THRESH_0_PB, \
-                                               _ICL_DSC0_RC_BUF_THRESH_0_PC)
-#define ICL_DSC0_RC_BUF_THRESH_0_UDW(pipe)     _MMIO_PIPE((pipe) - PIPE_B, \
-                                               _ICL_DSC0_RC_BUF_THRESH_0_UDW_PB, \
-                                               _ICL_DSC0_RC_BUF_THRESH_0_UDW_PC)
-#define ICL_DSC1_RC_BUF_THRESH_0(pipe)         _MMIO_PIPE((pipe) - PIPE_B, \
-                                               _ICL_DSC1_RC_BUF_THRESH_0_PB, \
-                                               _ICL_DSC1_RC_BUF_THRESH_0_PC)
-#define ICL_DSC1_RC_BUF_THRESH_0_UDW(pipe)     _MMIO_PIPE((pipe) - PIPE_B, \
-                                               _ICL_DSC1_RC_BUF_THRESH_0_UDW_PB, \
-                                               _ICL_DSC1_RC_BUF_THRESH_0_UDW_PC)
-
-#define DSCA_RC_BUF_THRESH_1                   _MMIO(0x6B238)
-#define DSCA_RC_BUF_THRESH_1_UDW               _MMIO(0x6B238 + 4)
-#define DSCC_RC_BUF_THRESH_1                   _MMIO(0x6BA38)
-#define DSCC_RC_BUF_THRESH_1_UDW               _MMIO(0x6BA38 + 4)
-#define _ICL_DSC0_RC_BUF_THRESH_1_PB           (0x7825C)
-#define _ICL_DSC0_RC_BUF_THRESH_1_UDW_PB       (0x7825C + 4)
-#define _ICL_DSC1_RC_BUF_THRESH_1_PB           (0x7835C)
-#define _ICL_DSC1_RC_BUF_THRESH_1_UDW_PB       (0x7835C + 4)
-#define _ICL_DSC0_RC_BUF_THRESH_1_PC           (0x7845C)
-#define _ICL_DSC0_RC_BUF_THRESH_1_UDW_PC       (0x7845C + 4)
-#define _ICL_DSC1_RC_BUF_THRESH_1_PC           (0x7855C)
-#define _ICL_DSC1_RC_BUF_THRESH_1_UDW_PC       (0x7855C + 4)
-#define ICL_DSC0_RC_BUF_THRESH_1(pipe)         _MMIO_PIPE((pipe) - PIPE_B, \
-                                               _ICL_DSC0_RC_BUF_THRESH_1_PB, \
-                                               _ICL_DSC0_RC_BUF_THRESH_1_PC)
-#define ICL_DSC0_RC_BUF_THRESH_1_UDW(pipe)     _MMIO_PIPE((pipe) - PIPE_B, \
-                                               _ICL_DSC0_RC_BUF_THRESH_1_UDW_PB, \
-                                               _ICL_DSC0_RC_BUF_THRESH_1_UDW_PC)
-#define ICL_DSC1_RC_BUF_THRESH_1(pipe)         _MMIO_PIPE((pipe) - PIPE_B, \
-                                               _ICL_DSC1_RC_BUF_THRESH_1_PB, \
-                                               _ICL_DSC1_RC_BUF_THRESH_1_PC)
-#define ICL_DSC1_RC_BUF_THRESH_1_UDW(pipe)     _MMIO_PIPE((pipe) - PIPE_B, \
-                                               _ICL_DSC1_RC_BUF_THRESH_1_UDW_PB, \
-                                               _ICL_DSC1_RC_BUF_THRESH_1_UDW_PC)
-
 #define PORT_TX_DFLEXDPSP(fia)                 _MMIO_FIA((fia), 0x008A0)
 #define   MODULAR_FIA_MASK                     (1 << 4)
 #define   TC_LIVE_STATE_TBT(idx)               (1 << ((idx) * 8 + 6))
@@ -8105,8 +7620,54 @@ enum skl_power_gate {
 #define DSB_HEAD(pipe, id)             _MMIO(DSBSL_INSTANCE(pipe, id) + 0x0)
 #define DSB_TAIL(pipe, id)             _MMIO(DSBSL_INSTANCE(pipe, id) + 0x4)
 #define DSB_CTRL(pipe, id)             _MMIO(DSBSL_INSTANCE(pipe, id) + 0x8)
-#define   DSB_ENABLE                   (1 << 31)
-#define   DSB_STATUS_BUSY              (1 << 0)
+#define   DSB_ENABLE                   REG_BIT(31)
+#define   DSB_BUF_REITERATE            REG_BIT(29)
+#define   DSB_WAIT_FOR_VBLANK          REG_BIT(28)
+#define   DSB_WAIT_FOR_LINE_IN         REG_BIT(27)
+#define   DSB_HALT                     REG_BIT(16)
+#define   DSB_NON_POSTED               REG_BIT(8)
+#define   DSB_STATUS_BUSY              REG_BIT(0)
+#define DSB_MMIOCTRL(pipe, id)         _MMIO(DSBSL_INSTANCE(pipe, id) + 0xc)
+#define   DSB_MMIO_DEAD_CLOCKS_ENABLE  REG_BIT(31)
+#define   DSB_MMIO_DEAD_CLOCKS_COUNT_MASK      REG_GENMASK(15, 8)
+#define   DSB_MMIO_DEAD_CLOCKS_COUNT(x)        REG_FIELD_PREP(DSB_MMIO_DEAD_CLOCK_COUNT_MASK, (x))
+#define   DSB_MMIO_CYCLES_MASK         REG_GENMASK(7, 0)
+#define   DSB_MMIO_CYCLES(x)           REG_FIELD_PREP(DSB_MMIO_CYCLES_MASK, (x))
+#define DSB_POLLFUNC(pipe, id)         _MMIO(DSBSL_INSTANCE(pipe, id) + 0x10)
+#define   DSB_POLL_ENABLE              REG_BIT(31)
+#define   DSB_POLL_WAIT_MASK           REG_GENMASK(30, 23)
+#define   DSB_POLL_WAIT(x)             REG_FIELD_PREP(DSB_POLL_WAIT_MASK, (x)) /* usec */
+#define   DSB_POLL_COUNT_MASK          REG_GENMASK(22, 15)
+#define   DSB_POLL_COUNT(x)            REG_FIELD_PREP(DSB_POLL_COUNT_MASK, (x))
+#define DSB_DEBUG(pipe, id)            _MMIO(DSBSL_INSTANCE(pipe, id) + 0x14)
+#define DSB_POLLMASK(pipe, id)         _MMIO(DSBSL_INSTANCE(pipe, id) + 0x1c)
+#define DSB_STATUS(pipe, id)           _MMIO(DSBSL_INSTANCE(pipe, id) + 0x24)
+#define DSB_INTERRUPT(pipe, id)                _MMIO(DSBSL_INSTANCE(pipe, id) + 0x28)
+#define   DSB_ATS_FAULT_INT_EN         REG_BIT(20)
+#define   DSB_GTT_FAULT_INT_EN         REG_BIT(19)
+#define   DSB_RSPTIMEOUT_INT_EN                REG_BIT(18)
+#define   DSB_POLL_ERR_INT_EN          REG_BIT(17)
+#define   DSB_PROG_INT_EN              REG_BIT(16)
+#define   DSB_ATS_FAULT_INT_STATUS     REG_BIT(4)
+#define   DSB_GTT_FAULT_INT_STATUS     REG_BIT(3)
+#define   DSB_RSPTIMEOUT_INT_STATUS    REG_BIT(2)
+#define   DSB_POLL_ERR_INT_STATUS      REG_BIT(1)
+#define   DSB_PROG_INT_STATUS          REG_BIT(0)
+#define DSB_CURRENT_HEAD(pipe, id)     _MMIO(DSBSL_INSTANCE(pipe, id) + 0x2c)
+#define DSB_RM_TIMEOUT(pipe, id)       _MMIO(DSBSL_INSTANCE(pipe, id) + 0x30)
+#define   DSB_RM_CLAIM_TIMEOUT         REG_BIT(31)
+#define   DSB_RM_READY_TIMEOUT         REG_BIT(30)
+#define   DSB_RM_CLAIM_TIMEOUT_COUNT_MASK      REG_GENMASK(23, 16)
+#define   DSB_RM_CLAIM_TIMEOUT_COUNT(x)        REG_FIELD_PREP(DSB_RM_CLAIM_TIMEOUT_COUNT_MASK, (x)) /* clocks */
+#define   DSB_RM_READY_TIMEOUT_VALUE_MASK      REG_GENMASK(15, 0)
+#define   DSB_RM_READY_TIMEOUT_VALUE(x)        REG_FIELD_PREP(DSB_RM_READY_TIMEOUT_VALUE, (x)) /* usec */
+#define DSB_RMTIMEOUTREG_CAPTURE(pipe, id)     _MMIO(DSBSL_INSTANCE(pipe, id) + 0x34)
+#define DSB_PMCTRL(pipe, id)           _MMIO(DSBSL_INSTANCE(pipe, id) + 0x38)
+#define DSB_PMCTRL_2(pipe, id)         _MMIO(DSBSL_INSTANCE(pipe, id) + 0x3c)
+#define DSB_PF_LN_LOWER(pipe, id)      _MMIO(DSBSL_INSTANCE(pipe, id) + 0x40)
+#define DSB_PF_LN_UPPER(pipe, id)      _MMIO(DSBSL_INSTANCE(pipe, id) + 0x44)
+#define DSB_BUFRPT_CNT(pipe, id)       _MMIO(DSBSL_INSTANCE(pipe, id) + 0x48)
+#define DSB_CHICKEN(pipe, id)          _MMIO(DSBSL_INSTANCE(pipe, id) + 0xf0)
 
 #define CLKREQ_POLICY                  _MMIO(0x101038)
 #define  CLKREQ_POLICY_MEM_UP_OVRD     REG_BIT(1)