drm/i915/gvt: Update MMIO handle policy to compatible KBL platform.
authorXu Han <xu.han@intel.com>
Wed, 29 Mar 2017 02:13:57 +0000 (10:13 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Wed, 29 Mar 2017 07:28:51 +0000 (15:28 +0800)
Update MMIO handle policy to KBL platform.

Signed-off-by: Xu Han <xu.han@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
drivers/gpu/drm/i915/gvt/handlers.c

index eaff45d417e8a0a5eeb77f6dc28b6eef98b4df4a..18b690312d174f41bc1278d3e67058475aead44e 100644 (file)
@@ -2584,219 +2584,232 @@ static int init_skl_mmio_info(struct intel_gvt *gvt)
        MMIO_DH(FORCEWAKE_MEDIA_GEN9, D_SKL_PLUS, NULL, mul_force_wake_write);
        MMIO_DH(FORCEWAKE_ACK_MEDIA_GEN9, D_SKL_PLUS, NULL, NULL);
 
-       MMIO_F(_DPB_AUX_CH_CTL, 6 * 4, 0, 0, 0, D_SKL, NULL, dp_aux_ch_ctl_mmio_write);
-       MMIO_F(_DPC_AUX_CH_CTL, 6 * 4, 0, 0, 0, D_SKL, NULL, dp_aux_ch_ctl_mmio_write);
-       MMIO_F(_DPD_AUX_CH_CTL, 6 * 4, 0, 0, 0, D_SKL, NULL, dp_aux_ch_ctl_mmio_write);
-
-       MMIO_D(HSW_PWR_WELL_BIOS, D_SKL);
-       MMIO_DH(HSW_PWR_WELL_DRIVER, D_SKL, NULL, skl_power_well_ctl_write);
+       MMIO_F(_DPB_AUX_CH_CTL, 6 * 4, 0, 0, 0, D_SKL_PLUS, NULL,
+                                               dp_aux_ch_ctl_mmio_write);
+       MMIO_F(_DPC_AUX_CH_CTL, 6 * 4, 0, 0, 0, D_SKL_PLUS, NULL,
+                                               dp_aux_ch_ctl_mmio_write);
+       MMIO_F(_DPD_AUX_CH_CTL, 6 * 4, 0, 0, 0, D_SKL_PLUS, NULL,
+                                               dp_aux_ch_ctl_mmio_write);
+
+       MMIO_D(HSW_PWR_WELL_BIOS, D_SKL_PLUS);
+       MMIO_DH(HSW_PWR_WELL_DRIVER, D_SKL_PLUS, NULL,
+                                               skl_power_well_ctl_write);
+       MMIO_DH(GEN6_PCODE_MAILBOX, D_SKL_PLUS, NULL, mailbox_write);
 
        MMIO_D(0xa210, D_SKL_PLUS);
        MMIO_D(GEN9_MEDIA_PG_IDLE_HYSTERESIS, D_SKL_PLUS);
        MMIO_D(GEN9_RENDER_PG_IDLE_HYSTERESIS, D_SKL_PLUS);
        MMIO_DFH(GEN9_GAMT_ECO_REG_RW_IA, D_SKL_PLUS, F_CMD_ACCESS, NULL, NULL);
-       MMIO_DH(0x4ddc, D_SKL, NULL, skl_misc_ctl_write);
-       MMIO_DH(0x42080, D_SKL, NULL, skl_misc_ctl_write);
-       MMIO_D(0x45504, D_SKL);
-       MMIO_D(0x45520, D_SKL);
-       MMIO_D(0x46000, D_SKL);
-       MMIO_DH(0x46010, D_SKL, NULL, skl_lcpll_write);
-       MMIO_DH(0x46014, D_SKL, NULL, skl_lcpll_write);
-       MMIO_D(0x6C040, D_SKL);
-       MMIO_D(0x6C048, D_SKL);
-       MMIO_D(0x6C050, D_SKL);
-       MMIO_D(0x6C044, D_SKL);
-       MMIO_D(0x6C04C, D_SKL);
-       MMIO_D(0x6C054, D_SKL);
-       MMIO_D(0x6c058, D_SKL);
-       MMIO_D(0x6c05c, D_SKL);
-       MMIO_DH(0X6c060, D_SKL, dpll_status_read, NULL);
-
-       MMIO_DH(SKL_PS_WIN_POS(PIPE_A, 0), D_SKL, NULL, pf_write);
-       MMIO_DH(SKL_PS_WIN_POS(PIPE_A, 1), D_SKL, NULL, pf_write);
-       MMIO_DH(SKL_PS_WIN_POS(PIPE_B, 0), D_SKL, NULL, pf_write);
-       MMIO_DH(SKL_PS_WIN_POS(PIPE_B, 1), D_SKL, NULL, pf_write);
-       MMIO_DH(SKL_PS_WIN_POS(PIPE_C, 0), D_SKL, NULL, pf_write);
-       MMIO_DH(SKL_PS_WIN_POS(PIPE_C, 1), D_SKL, NULL, pf_write);
-
-       MMIO_DH(SKL_PS_WIN_SZ(PIPE_A, 0), D_SKL, NULL, pf_write);
-       MMIO_DH(SKL_PS_WIN_SZ(PIPE_A, 1), D_SKL, NULL, pf_write);
-       MMIO_DH(SKL_PS_WIN_SZ(PIPE_B, 0), D_SKL, NULL, pf_write);
-       MMIO_DH(SKL_PS_WIN_SZ(PIPE_B, 1), D_SKL, NULL, pf_write);
-       MMIO_DH(SKL_PS_WIN_SZ(PIPE_C, 0), D_SKL, NULL, pf_write);
-       MMIO_DH(SKL_PS_WIN_SZ(PIPE_C, 1), D_SKL, NULL, pf_write);
-
-       MMIO_DH(SKL_PS_CTRL(PIPE_A, 0), D_SKL, NULL, pf_write);
-       MMIO_DH(SKL_PS_CTRL(PIPE_A, 1), D_SKL, NULL, pf_write);
-       MMIO_DH(SKL_PS_CTRL(PIPE_B, 0), D_SKL, NULL, pf_write);
-       MMIO_DH(SKL_PS_CTRL(PIPE_B, 1), D_SKL, NULL, pf_write);
-       MMIO_DH(SKL_PS_CTRL(PIPE_C, 0), D_SKL, NULL, pf_write);
-       MMIO_DH(SKL_PS_CTRL(PIPE_C, 1), D_SKL, NULL, pf_write);
-
-       MMIO_DH(PLANE_BUF_CFG(PIPE_A, 0), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_BUF_CFG(PIPE_A, 1), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_BUF_CFG(PIPE_A, 2), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_BUF_CFG(PIPE_A, 3), D_SKL, NULL, NULL);
-
-       MMIO_DH(PLANE_BUF_CFG(PIPE_B, 0), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_BUF_CFG(PIPE_B, 1), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_BUF_CFG(PIPE_B, 2), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_BUF_CFG(PIPE_B, 3), D_SKL, NULL, NULL);
-
-       MMIO_DH(PLANE_BUF_CFG(PIPE_C, 0), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_BUF_CFG(PIPE_C, 1), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_BUF_CFG(PIPE_C, 2), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_BUF_CFG(PIPE_C, 3), D_SKL, NULL, NULL);
-
-       MMIO_DH(CUR_BUF_CFG(PIPE_A), D_SKL, NULL, NULL);
-       MMIO_DH(CUR_BUF_CFG(PIPE_B), D_SKL, NULL, NULL);
-       MMIO_DH(CUR_BUF_CFG(PIPE_C), D_SKL, NULL, NULL);
-
-       MMIO_F(PLANE_WM(PIPE_A, 0, 0), 4 * 8, 0, 0, 0, D_SKL, NULL, NULL);
-       MMIO_F(PLANE_WM(PIPE_A, 1, 0), 4 * 8, 0, 0, 0, D_SKL, NULL, NULL);
-       MMIO_F(PLANE_WM(PIPE_A, 2, 0), 4 * 8, 0, 0, 0, D_SKL, NULL, NULL);
-
-       MMIO_F(PLANE_WM(PIPE_B, 0, 0), 4 * 8, 0, 0, 0, D_SKL, NULL, NULL);
-       MMIO_F(PLANE_WM(PIPE_B, 1, 0), 4 * 8, 0, 0, 0, D_SKL, NULL, NULL);
-       MMIO_F(PLANE_WM(PIPE_B, 2, 0), 4 * 8, 0, 0, 0, D_SKL, NULL, NULL);
-
-       MMIO_F(PLANE_WM(PIPE_C, 0, 0), 4 * 8, 0, 0, 0, D_SKL, NULL, NULL);
-       MMIO_F(PLANE_WM(PIPE_C, 1, 0), 4 * 8, 0, 0, 0, D_SKL, NULL, NULL);
-       MMIO_F(PLANE_WM(PIPE_C, 2, 0), 4 * 8, 0, 0, 0, D_SKL, NULL, NULL);
-
-       MMIO_F(CUR_WM(PIPE_A, 0), 4 * 8, 0, 0, 0, D_SKL, NULL, NULL);
-       MMIO_F(CUR_WM(PIPE_B, 0), 4 * 8, 0, 0, 0, D_SKL, NULL, NULL);
-       MMIO_F(CUR_WM(PIPE_C, 0), 4 * 8, 0, 0, 0, D_SKL, NULL, NULL);
-
-       MMIO_DH(PLANE_WM_TRANS(PIPE_A, 0), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_WM_TRANS(PIPE_A, 1), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_WM_TRANS(PIPE_A, 2), D_SKL, NULL, NULL);
-
-       MMIO_DH(PLANE_WM_TRANS(PIPE_B, 0), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_WM_TRANS(PIPE_B, 1), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_WM_TRANS(PIPE_B, 2), D_SKL, NULL, NULL);
-
-       MMIO_DH(PLANE_WM_TRANS(PIPE_C, 0), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_WM_TRANS(PIPE_C, 1), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_WM_TRANS(PIPE_C, 2), D_SKL, NULL, NULL);
-
-       MMIO_DH(CUR_WM_TRANS(PIPE_A), D_SKL, NULL, NULL);
-       MMIO_DH(CUR_WM_TRANS(PIPE_B), D_SKL, NULL, NULL);
-       MMIO_DH(CUR_WM_TRANS(PIPE_C), D_SKL, NULL, NULL);
-
-       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_A, 0), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_A, 1), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_A, 2), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_A, 3), D_SKL, NULL, NULL);
-
-       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_B, 0), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_B, 1), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_B, 2), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_B, 3), D_SKL, NULL, NULL);
-
-       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_C, 0), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_C, 1), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_C, 2), D_SKL, NULL, NULL);
-       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_C, 3), D_SKL, NULL, NULL);
-
-       MMIO_DH(_REG_701C0(PIPE_A, 1), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C0(PIPE_A, 2), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C0(PIPE_A, 3), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C0(PIPE_A, 4), D_SKL, NULL, NULL);
-
-       MMIO_DH(_REG_701C0(PIPE_B, 1), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C0(PIPE_B, 2), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C0(PIPE_B, 3), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C0(PIPE_B, 4), D_SKL, NULL, NULL);
-
-       MMIO_DH(_REG_701C0(PIPE_C, 1), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C0(PIPE_C, 2), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C0(PIPE_C, 3), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C0(PIPE_C, 4), D_SKL, NULL, NULL);
-
-       MMIO_DH(_REG_701C4(PIPE_A, 1), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C4(PIPE_A, 2), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C4(PIPE_A, 3), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C4(PIPE_A, 4), D_SKL, NULL, NULL);
-
-       MMIO_DH(_REG_701C4(PIPE_B, 1), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C4(PIPE_B, 2), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C4(PIPE_B, 3), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C4(PIPE_B, 4), D_SKL, NULL, NULL);
-
-       MMIO_DH(_REG_701C4(PIPE_C, 1), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C4(PIPE_C, 2), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C4(PIPE_C, 3), D_SKL, NULL, NULL);
-       MMIO_DH(_REG_701C4(PIPE_C, 4), D_SKL, NULL, NULL);
-
-       MMIO_D(0x70380, D_SKL);
-       MMIO_D(0x71380, D_SKL);
-       MMIO_D(0x72380, D_SKL);
-       MMIO_D(0x7039c, D_SKL);
-
-       MMIO_F(0x80000, 0x3000, 0, 0, 0, D_SKL, NULL, NULL);
-       MMIO_D(0x8f074, D_SKL);
-       MMIO_D(0x8f004, D_SKL);
-       MMIO_D(0x8f034, D_SKL);
-
-       MMIO_D(0xb11c, D_SKL);
-
-       MMIO_D(0x51000, D_SKL);
-       MMIO_D(0x6c00c, D_SKL);
-
-       MMIO_F(0xc800, 0x7f8, F_CMD_ACCESS, 0, 0, D_SKL, NULL, NULL);
-       MMIO_F(0xb020, 0x80, F_CMD_ACCESS, 0, 0, D_SKL, NULL, NULL);
-
-       MMIO_D(0xd08, D_SKL);
-       MMIO_DFH(0x20e0, D_SKL, F_MODE_MASK, NULL, NULL);
-       MMIO_DFH(0x20ec, D_SKL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
+       MMIO_DH(0x4ddc, D_SKL_PLUS, NULL, skl_misc_ctl_write);
+       MMIO_DH(0x42080, D_SKL_PLUS, NULL, skl_misc_ctl_write);
+       MMIO_D(0x45504, D_SKL_PLUS);
+       MMIO_D(0x45520, D_SKL_PLUS);
+       MMIO_D(0x46000, D_SKL_PLUS);
+       MMIO_DH(0x46010, D_SKL | D_KBL, NULL, skl_lcpll_write);
+       MMIO_DH(0x46014, D_SKL | D_KBL, NULL, skl_lcpll_write);
+       MMIO_D(0x6C040, D_SKL | D_KBL);
+       MMIO_D(0x6C048, D_SKL | D_KBL);
+       MMIO_D(0x6C050, D_SKL | D_KBL);
+       MMIO_D(0x6C044, D_SKL | D_KBL);
+       MMIO_D(0x6C04C, D_SKL | D_KBL);
+       MMIO_D(0x6C054, D_SKL | D_KBL);
+       MMIO_D(0x6c058, D_SKL | D_KBL);
+       MMIO_D(0x6c05c, D_SKL | D_KBL);
+       MMIO_DH(0X6c060, D_SKL | D_KBL, dpll_status_read, NULL);
+
+       MMIO_DH(SKL_PS_WIN_POS(PIPE_A, 0), D_SKL_PLUS, NULL, pf_write);
+       MMIO_DH(SKL_PS_WIN_POS(PIPE_A, 1), D_SKL_PLUS, NULL, pf_write);
+       MMIO_DH(SKL_PS_WIN_POS(PIPE_B, 0), D_SKL_PLUS, NULL, pf_write);
+       MMIO_DH(SKL_PS_WIN_POS(PIPE_B, 1), D_SKL_PLUS, NULL, pf_write);
+       MMIO_DH(SKL_PS_WIN_POS(PIPE_C, 0), D_SKL_PLUS, NULL, pf_write);
+       MMIO_DH(SKL_PS_WIN_POS(PIPE_C, 1), D_SKL_PLUS, NULL, pf_write);
+
+       MMIO_DH(SKL_PS_WIN_SZ(PIPE_A, 0), D_SKL_PLUS, NULL, pf_write);
+       MMIO_DH(SKL_PS_WIN_SZ(PIPE_A, 1), D_SKL_PLUS, NULL, pf_write);
+       MMIO_DH(SKL_PS_WIN_SZ(PIPE_B, 0), D_SKL_PLUS, NULL, pf_write);
+       MMIO_DH(SKL_PS_WIN_SZ(PIPE_B, 1), D_SKL_PLUS, NULL, pf_write);
+       MMIO_DH(SKL_PS_WIN_SZ(PIPE_C, 0), D_SKL_PLUS, NULL, pf_write);
+       MMIO_DH(SKL_PS_WIN_SZ(PIPE_C, 1), D_SKL_PLUS, NULL, pf_write);
+
+       MMIO_DH(SKL_PS_CTRL(PIPE_A, 0), D_SKL_PLUS, NULL, pf_write);
+       MMIO_DH(SKL_PS_CTRL(PIPE_A, 1), D_SKL_PLUS, NULL, pf_write);
+       MMIO_DH(SKL_PS_CTRL(PIPE_B, 0), D_SKL_PLUS, NULL, pf_write);
+       MMIO_DH(SKL_PS_CTRL(PIPE_B, 1), D_SKL_PLUS, NULL, pf_write);
+       MMIO_DH(SKL_PS_CTRL(PIPE_C, 0), D_SKL_PLUS, NULL, pf_write);
+       MMIO_DH(SKL_PS_CTRL(PIPE_C, 1), D_SKL_PLUS, NULL, pf_write);
+
+       MMIO_DH(PLANE_BUF_CFG(PIPE_A, 0), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_BUF_CFG(PIPE_A, 1), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_BUF_CFG(PIPE_A, 2), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_BUF_CFG(PIPE_A, 3), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(PLANE_BUF_CFG(PIPE_B, 0), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_BUF_CFG(PIPE_B, 1), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_BUF_CFG(PIPE_B, 2), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_BUF_CFG(PIPE_B, 3), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(PLANE_BUF_CFG(PIPE_C, 0), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_BUF_CFG(PIPE_C, 1), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_BUF_CFG(PIPE_C, 2), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_BUF_CFG(PIPE_C, 3), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(CUR_BUF_CFG(PIPE_A), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(CUR_BUF_CFG(PIPE_B), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(CUR_BUF_CFG(PIPE_C), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_F(PLANE_WM(PIPE_A, 0, 0), 4 * 8, 0, 0, 0, D_SKL_PLUS, NULL, NULL);
+       MMIO_F(PLANE_WM(PIPE_A, 1, 0), 4 * 8, 0, 0, 0, D_SKL_PLUS, NULL, NULL);
+       MMIO_F(PLANE_WM(PIPE_A, 2, 0), 4 * 8, 0, 0, 0, D_SKL_PLUS, NULL, NULL);
+
+       MMIO_F(PLANE_WM(PIPE_B, 0, 0), 4 * 8, 0, 0, 0, D_SKL_PLUS, NULL, NULL);
+       MMIO_F(PLANE_WM(PIPE_B, 1, 0), 4 * 8, 0, 0, 0, D_SKL_PLUS, NULL, NULL);
+       MMIO_F(PLANE_WM(PIPE_B, 2, 0), 4 * 8, 0, 0, 0, D_SKL_PLUS, NULL, NULL);
+
+       MMIO_F(PLANE_WM(PIPE_C, 0, 0), 4 * 8, 0, 0, 0, D_SKL_PLUS, NULL, NULL);
+       MMIO_F(PLANE_WM(PIPE_C, 1, 0), 4 * 8, 0, 0, 0, D_SKL_PLUS, NULL, NULL);
+       MMIO_F(PLANE_WM(PIPE_C, 2, 0), 4 * 8, 0, 0, 0, D_SKL_PLUS, NULL, NULL);
+
+       MMIO_F(CUR_WM(PIPE_A, 0), 4 * 8, 0, 0, 0, D_SKL_PLUS, NULL, NULL);
+       MMIO_F(CUR_WM(PIPE_B, 0), 4 * 8, 0, 0, 0, D_SKL_PLUS, NULL, NULL);
+       MMIO_F(CUR_WM(PIPE_C, 0), 4 * 8, 0, 0, 0, D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(PLANE_WM_TRANS(PIPE_A, 0), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_WM_TRANS(PIPE_A, 1), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_WM_TRANS(PIPE_A, 2), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(PLANE_WM_TRANS(PIPE_B, 0), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_WM_TRANS(PIPE_B, 1), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_WM_TRANS(PIPE_B, 2), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(PLANE_WM_TRANS(PIPE_C, 0), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_WM_TRANS(PIPE_C, 1), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_WM_TRANS(PIPE_C, 2), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(CUR_WM_TRANS(PIPE_A), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(CUR_WM_TRANS(PIPE_B), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(CUR_WM_TRANS(PIPE_C), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_A, 0), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_A, 1), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_A, 2), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_A, 3), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_B, 0), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_B, 1), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_B, 2), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_B, 3), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_C, 0), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_C, 1), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_C, 2), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(PLANE_NV12_BUF_CFG(PIPE_C, 3), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(_REG_701C0(PIPE_A, 1), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C0(PIPE_A, 2), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C0(PIPE_A, 3), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C0(PIPE_A, 4), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(_REG_701C0(PIPE_B, 1), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C0(PIPE_B, 2), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C0(PIPE_B, 3), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C0(PIPE_B, 4), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(_REG_701C0(PIPE_C, 1), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C0(PIPE_C, 2), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C0(PIPE_C, 3), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C0(PIPE_C, 4), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(_REG_701C4(PIPE_A, 1), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C4(PIPE_A, 2), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C4(PIPE_A, 3), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C4(PIPE_A, 4), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(_REG_701C4(PIPE_B, 1), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C4(PIPE_B, 2), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C4(PIPE_B, 3), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C4(PIPE_B, 4), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_DH(_REG_701C4(PIPE_C, 1), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C4(PIPE_C, 2), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C4(PIPE_C, 3), D_SKL_PLUS, NULL, NULL);
+       MMIO_DH(_REG_701C4(PIPE_C, 4), D_SKL_PLUS, NULL, NULL);
+
+       MMIO_D(0x70380, D_SKL_PLUS);
+       MMIO_D(0x71380, D_SKL_PLUS);
+       MMIO_D(0x72380, D_SKL_PLUS);
+       MMIO_D(0x7039c, D_SKL_PLUS);
+
+       MMIO_F(0x80000, 0x3000, 0, 0, 0, D_SKL_PLUS, NULL, NULL);
+       MMIO_D(0x8f074, D_SKL | D_KBL);
+       MMIO_D(0x8f004, D_SKL | D_KBL);
+       MMIO_D(0x8f034, D_SKL | D_KBL);
+
+       MMIO_D(0xb11c, D_SKL | D_KBL);
+
+       MMIO_D(0x51000, D_SKL | D_KBL);
+       MMIO_D(0x6c00c, D_SKL_PLUS);
+
+       MMIO_F(0xc800, 0x7f8, F_CMD_ACCESS, 0, 0, D_SKL | D_KBL, NULL, NULL);
+       MMIO_F(0xb020, 0x80, F_CMD_ACCESS, 0, 0, D_SKL | D_KBL, NULL, NULL);
+
+       MMIO_D(0xd08, D_SKL_PLUS);
+       MMIO_DFH(0x20e0, D_SKL_PLUS, F_MODE_MASK, NULL, NULL);
+       MMIO_DFH(0x20ec, D_SKL_PLUS, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 
        /* TRTT */
-       MMIO_DFH(0x4de0, D_SKL, F_CMD_ACCESS, NULL, NULL);
-       MMIO_DFH(0x4de4, D_SKL, F_CMD_ACCESS, NULL, NULL);
-       MMIO_DFH(0x4de8, D_SKL, F_CMD_ACCESS, NULL, NULL);
-       MMIO_DFH(0x4dec, D_SKL, F_CMD_ACCESS, NULL, NULL);
-       MMIO_DFH(0x4df0, D_SKL, F_CMD_ACCESS, NULL, NULL);
-       MMIO_DFH(0x4df4, D_SKL, F_CMD_ACCESS, NULL, gen9_trtte_write);
-       MMIO_DH(0x4dfc, D_SKL, NULL, gen9_trtt_chicken_write);
+       MMIO_DFH(0x4de0, D_SKL | D_KBL, F_CMD_ACCESS, NULL, NULL);
+       MMIO_DFH(0x4de4, D_SKL | D_KBL, F_CMD_ACCESS, NULL, NULL);
+       MMIO_DFH(0x4de8, D_SKL | D_KBL, F_CMD_ACCESS, NULL, NULL);
+       MMIO_DFH(0x4dec, D_SKL | D_KBL, F_CMD_ACCESS, NULL, NULL);
+       MMIO_DFH(0x4df0, D_SKL | D_KBL, F_CMD_ACCESS, NULL, NULL);
+       MMIO_DFH(0x4df4, D_SKL | D_KBL, F_CMD_ACCESS, NULL, gen9_trtte_write);
+       MMIO_DH(0x4dfc, D_SKL | D_KBL, NULL, gen9_trtt_chicken_write);
 
-       MMIO_D(0x45008, D_SKL);
+       MMIO_D(0x45008, D_SKL | D_KBL);
 
-       MMIO_D(0x46430, D_SKL);
+       MMIO_D(0x46430, D_SKL | D_KBL);
 
-       MMIO_D(0x46520, D_SKL);
+       MMIO_D(0x46520, D_SKL | D_KBL);
 
-       MMIO_D(0xc403c, D_SKL);
-       MMIO_D(0xb004, D_SKL);
+       MMIO_D(0xc403c, D_SKL | D_KBL);
+       MMIO_D(0xb004, D_SKL_PLUS);
        MMIO_DH(DMA_CTRL, D_SKL_PLUS, NULL, dma_ctrl_write);
 
-       MMIO_D(0x65900, D_SKL);
-       MMIO_D(0x1082c0, D_SKL);
-       MMIO_D(0x4068, D_SKL);
-       MMIO_D(0x67054, D_SKL);
-       MMIO_D(0x6e560, D_SKL);
-       MMIO_D(0x6e554, D_SKL);
-       MMIO_D(0x2b20, D_SKL);
-       MMIO_D(0x65f00, D_SKL);
-       MMIO_D(0x65f08, D_SKL);
-       MMIO_D(0x320f0, D_SKL);
-
-       MMIO_DFH(_REG_VCS2_EXCC, D_SKL, F_CMD_ACCESS, NULL, NULL);
-       MMIO_D(0x70034, D_SKL);
-       MMIO_D(0x71034, D_SKL);
-       MMIO_D(0x72034, D_SKL);
-
-       MMIO_D(_PLANE_KEYVAL_1(PIPE_A), D_SKL);
-       MMIO_D(_PLANE_KEYVAL_1(PIPE_B), D_SKL);
-       MMIO_D(_PLANE_KEYVAL_1(PIPE_C), D_SKL);
-       MMIO_D(_PLANE_KEYMSK_1(PIPE_A), D_SKL);
-       MMIO_D(_PLANE_KEYMSK_1(PIPE_B), D_SKL);
-       MMIO_D(_PLANE_KEYMSK_1(PIPE_C), D_SKL);
-
-       MMIO_D(0x44500, D_SKL);
+       MMIO_D(0x65900, D_SKL_PLUS);
+       MMIO_D(0x1082c0, D_SKL | D_KBL);
+       MMIO_D(0x4068, D_SKL | D_KBL);
+       MMIO_D(0x67054, D_SKL | D_KBL);
+       MMIO_D(0x6e560, D_SKL | D_KBL);
+       MMIO_D(0x6e554, D_SKL | D_KBL);
+       MMIO_D(0x2b20, D_SKL | D_KBL);
+       MMIO_D(0x65f00, D_SKL | D_KBL);
+       MMIO_D(0x65f08, D_SKL | D_KBL);
+       MMIO_D(0x320f0, D_SKL | D_KBL);
+
+       MMIO_DFH(_REG_VCS2_EXCC, D_SKL_PLUS, F_CMD_ACCESS, NULL, NULL);
+       MMIO_DFH(_REG_VECS_EXCC, D_SKL_PLUS, F_CMD_ACCESS, NULL, NULL);
+       MMIO_D(0x70034, D_SKL_PLUS);
+       MMIO_D(0x71034, D_SKL_PLUS);
+       MMIO_D(0x72034, D_SKL_PLUS);
+
+       MMIO_D(_PLANE_KEYVAL_1(PIPE_A), D_SKL_PLUS);
+       MMIO_D(_PLANE_KEYVAL_1(PIPE_B), D_SKL_PLUS);
+       MMIO_D(_PLANE_KEYVAL_1(PIPE_C), D_SKL_PLUS);
+       MMIO_D(_PLANE_KEYMSK_1(PIPE_A), D_SKL_PLUS);
+       MMIO_D(_PLANE_KEYMSK_1(PIPE_B), D_SKL_PLUS);
+       MMIO_D(_PLANE_KEYMSK_1(PIPE_C), D_SKL_PLUS);
+
+       MMIO_D(0x44500, D_SKL_PLUS);
        MMIO_DFH(GEN9_CSFE_CHICKEN1_RCS, D_SKL_PLUS, F_CMD_ACCESS, NULL, NULL);
-       MMIO_DFH(GEN8_HDC_CHICKEN1, D_SKL, F_MODE_MASK | F_CMD_ACCESS,
+       MMIO_DFH(GEN8_HDC_CHICKEN1, D_SKL | D_KBL, F_MODE_MASK | F_CMD_ACCESS,
                NULL, NULL);
+
+       MMIO_D(0x4ab8, D_KBL);
+       MMIO_D(0x940c, D_SKL_PLUS);
+       MMIO_D(0x2248, D_SKL_PLUS | D_KBL);
+       MMIO_D(0x4ab0, D_SKL | D_KBL);
+       MMIO_D(0x20d4, D_SKL | D_KBL);
+
        return 0;
 }