Thomas Zimmermann ebf85e
From 90551a1296d4dbe0dccc4c3cb5e57e7f2c929009 Mon Sep 17 00:00:00 2001
Thomas Zimmermann ebf85e
From: Zhenyu Wang <zhenyuw@linux.intel.com>
Thomas Zimmermann ebf85e
Date: Tue, 19 Dec 2017 13:02:51 +0800
Thomas Zimmermann ebf85e
Subject: [PATCH] drm/i915/gvt: cleanup usage for typed mmio reg vs. offset
Thomas Zimmermann ebf85e
Git-commit: 90551a1296d4dbe0dccc4c3cb5e57e7f2c929009
Thomas Zimmermann ebf85e
Patch-mainline: v4.16-rc1
Thomas Zimmermann ebf85e
References: FATE#322643 bsc#1055900
Thomas Zimmermann ebf85e
Thomas Zimmermann ebf85e
We had previous hack that tried to accept either i915_reg_t or offset
Thomas Zimmermann ebf85e
value to access vGPU virtual/shadow regs which broke that purpose to
Thomas Zimmermann ebf85e
be type safe in context. This one trys to explicitly separate the usage
Thomas Zimmermann ebf85e
of typed mmio reg with real offset.
Thomas Zimmermann ebf85e
Thomas Zimmermann ebf85e
Old vgpu_vreg(offset) helper is used only for offset now with new
Thomas Zimmermann ebf85e
vgpu_vreg_t(reg) is used for i915_reg_t only. Convert left usage
Thomas Zimmermann ebf85e
of that to new helper.
Thomas Zimmermann ebf85e
Thomas Zimmermann ebf85e
Also fixed left KASAN warning issues caused by previous hack.
Thomas Zimmermann ebf85e
Thomas Zimmermann ebf85e
V2: rebase, fixup against recent mmio switch change
Thomas Zimmermann ebf85e
Thomas Zimmermann ebf85e
Reviewed-by: Zhi Wang <zhi.a.wang@intel.com>
Thomas Zimmermann ebf85e
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Thomas Zimmermann ebf85e
Acked-by: Takashi Iwai <tiwai@suse.de>
Thomas Zimmermann ebf85e
Thomas Zimmermann ebf85e
---
Thomas Zimmermann ebf85e
 drivers/gpu/drm/i915/gvt/cmd_parser.c   |   20 ++++----
Thomas Zimmermann ebf85e
 drivers/gpu/drm/i915/gvt/display.c      |   78 ++++++++++++++++----------------
Thomas Zimmermann ebf85e
 drivers/gpu/drm/i915/gvt/edid.c         |   22 ++++-----
Thomas Zimmermann ebf85e
 drivers/gpu/drm/i915/gvt/fb_decoder.c   |   30 ++++++------
Thomas Zimmermann ebf85e
 drivers/gpu/drm/i915/gvt/gtt.c          |    4 -
Thomas Zimmermann ebf85e
 drivers/gpu/drm/i915/gvt/gvt.h          |   31 +++++-------
Thomas Zimmermann ebf85e
 drivers/gpu/drm/i915/gvt/handlers.c     |   46 +++++++++---------
Thomas Zimmermann ebf85e
 drivers/gpu/drm/i915/gvt/mmio.c         |    4 -
Thomas Zimmermann ebf85e
 drivers/gpu/drm/i915/gvt/mmio.h         |    7 --
Thomas Zimmermann ebf85e
 drivers/gpu/drm/i915/gvt/mmio_context.c |   20 ++++----
Thomas Zimmermann ebf85e
 drivers/gpu/drm/i915/gvt/vgpu.c         |   24 ++++-----
Thomas Zimmermann ebf85e
 11 files changed, 138 insertions(+), 148 deletions(-)
Thomas Zimmermann ebf85e
Thomas Zimmermann ebf85e
--- a/drivers/gpu/drm/i915/gvt/cmd_parser.c
Thomas Zimmermann ebf85e
+++ b/drivers/gpu/drm/i915/gvt/cmd_parser.c
Thomas Zimmermann ebf85e
@@ -1239,13 +1239,13 @@ static int gen8_check_mi_display_flip(st
Thomas Zimmermann ebf85e
 		return 0;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) {
Thomas Zimmermann ebf85e
-		stride = vgpu_vreg(s->vgpu, info->stride_reg) & GENMASK(9, 0);
Thomas Zimmermann ebf85e
-		tile = (vgpu_vreg(s->vgpu, info->ctrl_reg) &
Thomas Zimmermann ebf85e
+		stride = vgpu_vreg_t(s->vgpu, info->stride_reg) & GENMASK(9, 0);
Thomas Zimmermann ebf85e
+		tile = (vgpu_vreg_t(s->vgpu, info->ctrl_reg) &
Thomas Zimmermann ebf85e
 				GENMASK(12, 10)) >> 10;
Thomas Zimmermann ebf85e
 	} else {
Thomas Zimmermann ebf85e
-		stride = (vgpu_vreg(s->vgpu, info->stride_reg) &
Thomas Zimmermann ebf85e
+		stride = (vgpu_vreg_t(s->vgpu, info->stride_reg) &
Thomas Zimmermann ebf85e
 				GENMASK(15, 6)) >> 6;
Thomas Zimmermann ebf85e
-		tile = (vgpu_vreg(s->vgpu, info->ctrl_reg) & (1 << 10)) >> 10;
Thomas Zimmermann ebf85e
+		tile = (vgpu_vreg_t(s->vgpu, info->ctrl_reg) & (1 << 10)) >> 10;
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (stride != info->stride_val)
Thomas Zimmermann ebf85e
@@ -1264,21 +1264,21 @@ static int gen8_update_plane_mmio_from_m
Thomas Zimmermann ebf85e
 	struct drm_i915_private *dev_priv = s->vgpu->gvt->dev_priv;
Thomas Zimmermann ebf85e
 	struct intel_vgpu *vgpu = s->vgpu;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	set_mask_bits(&vgpu_vreg(vgpu, info->surf_reg), GENMASK(31, 12),
Thomas Zimmermann ebf85e
+	set_mask_bits(&vgpu_vreg_t(vgpu, info->surf_reg), GENMASK(31, 12),
Thomas Zimmermann ebf85e
 		      info->surf_val << 12);
Thomas Zimmermann ebf85e
 	if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) {
Thomas Zimmermann ebf85e
-		set_mask_bits(&vgpu_vreg(vgpu, info->stride_reg), GENMASK(9, 0),
Thomas Zimmermann ebf85e
+		set_mask_bits(&vgpu_vreg_t(vgpu, info->stride_reg), GENMASK(9, 0),
Thomas Zimmermann ebf85e
 			      info->stride_val);
Thomas Zimmermann ebf85e
-		set_mask_bits(&vgpu_vreg(vgpu, info->ctrl_reg), GENMASK(12, 10),
Thomas Zimmermann ebf85e
+		set_mask_bits(&vgpu_vreg_t(vgpu, info->ctrl_reg), GENMASK(12, 10),
Thomas Zimmermann ebf85e
 			      info->tile_val << 10);
Thomas Zimmermann ebf85e
 	} else {
Thomas Zimmermann ebf85e
-		set_mask_bits(&vgpu_vreg(vgpu, info->stride_reg), GENMASK(15, 6),
Thomas Zimmermann ebf85e
+		set_mask_bits(&vgpu_vreg_t(vgpu, info->stride_reg), GENMASK(15, 6),
Thomas Zimmermann ebf85e
 			      info->stride_val << 6);
Thomas Zimmermann ebf85e
-		set_mask_bits(&vgpu_vreg(vgpu, info->ctrl_reg), GENMASK(10, 10),
Thomas Zimmermann ebf85e
+		set_mask_bits(&vgpu_vreg_t(vgpu, info->ctrl_reg), GENMASK(10, 10),
Thomas Zimmermann ebf85e
 			      info->tile_val << 10);
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, PIPE_FRMCOUNT_G4X(info->pipe))++;
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, PIPE_FRMCOUNT_G4X(info->pipe))++;
Thomas Zimmermann ebf85e
 	intel_vgpu_trigger_virtual_event(vgpu, info->event);
Thomas Zimmermann ebf85e
 	return 0;
Thomas Zimmermann ebf85e
 }
Thomas Zimmermann ebf85e
--- a/drivers/gpu/drm/i915/gvt/display.c
Thomas Zimmermann ebf85e
+++ b/drivers/gpu/drm/i915/gvt/display.c
Thomas Zimmermann ebf85e
@@ -59,7 +59,7 @@ static int edp_pipe_is_enabled(struct in
Thomas Zimmermann ebf85e
 {
Thomas Zimmermann ebf85e
 	struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	if (!(vgpu_vreg(vgpu, PIPECONF(_PIPE_EDP)) & PIPECONF_ENABLE))
Thomas Zimmermann ebf85e
+	if (!(vgpu_vreg_t(vgpu, PIPECONF(_PIPE_EDP)) & PIPECONF_ENABLE))
Thomas Zimmermann ebf85e
 		return 0;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (!(vgpu_vreg(vgpu, _TRANS_DDI_FUNC_CTL_EDP) & TRANS_DDI_FUNC_ENABLE))
Thomas Zimmermann ebf85e
@@ -74,7 +74,7 @@ int pipe_is_enabled(struct intel_vgpu *v
Thomas Zimmermann ebf85e
 	if (WARN_ON(pipe < PIPE_A || pipe >= I915_MAX_PIPES))
Thomas Zimmermann ebf85e
 		return -EINVAL;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	if (vgpu_vreg(vgpu, PIPECONF(pipe)) & PIPECONF_ENABLE)
Thomas Zimmermann ebf85e
+	if (vgpu_vreg_t(vgpu, PIPECONF(pipe)) & PIPECONF_ENABLE)
Thomas Zimmermann ebf85e
 		return 1;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (edp_pipe_is_enabled(vgpu) &&
Thomas Zimmermann ebf85e
@@ -169,105 +169,105 @@ static u8 dpcd_fix_data[DPCD_HEADER_SIZE
Thomas Zimmermann ebf85e
 static void emulate_monitor_status_change(struct intel_vgpu *vgpu)
Thomas Zimmermann ebf85e
 {
Thomas Zimmermann ebf85e
 	struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, SDEISR) &= ~(SDE_PORTB_HOTPLUG_CPT |
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, SDEISR) &= ~(SDE_PORTB_HOTPLUG_CPT |
Thomas Zimmermann ebf85e
 			SDE_PORTC_HOTPLUG_CPT |
Thomas Zimmermann ebf85e
 			SDE_PORTD_HOTPLUG_CPT);
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) {
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, SDEISR) &= ~(SDE_PORTA_HOTPLUG_SPT |
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, SDEISR) &= ~(SDE_PORTA_HOTPLUG_SPT |
Thomas Zimmermann ebf85e
 				SDE_PORTE_HOTPLUG_SPT);
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, SKL_FUSE_STATUS) |=
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, SKL_FUSE_STATUS) |=
Thomas Zimmermann ebf85e
 				SKL_FUSE_DOWNLOAD_STATUS |
Thomas Zimmermann ebf85e
 				SKL_FUSE_PG_DIST_STATUS(SKL_PG0) |
Thomas Zimmermann ebf85e
 				SKL_FUSE_PG_DIST_STATUS(SKL_PG1) |
Thomas Zimmermann ebf85e
 				SKL_FUSE_PG_DIST_STATUS(SKL_PG2);
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, LCPLL1_CTL) |=
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, LCPLL1_CTL) |=
Thomas Zimmermann ebf85e
 				LCPLL_PLL_ENABLE |
Thomas Zimmermann ebf85e
 				LCPLL_PLL_LOCK;
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, LCPLL2_CTL) |= LCPLL_PLL_ENABLE;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, LCPLL2_CTL) |= LCPLL_PLL_ENABLE;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (intel_vgpu_has_monitor_on_port(vgpu, PORT_B)) {
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, SFUSE_STRAP) |= SFUSE_STRAP_DDIB_DETECTED;
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) &=
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, SFUSE_STRAP) |= SFUSE_STRAP_DDIB_DETECTED;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) &=
Thomas Zimmermann ebf85e
 			~(TRANS_DDI_BPC_MASK | TRANS_DDI_MODE_SELECT_MASK |
Thomas Zimmermann ebf85e
 			TRANS_DDI_PORT_MASK);
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) |=
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) |=
Thomas Zimmermann ebf85e
 			(TRANS_DDI_BPC_8 | TRANS_DDI_MODE_SELECT_DP_SST |
Thomas Zimmermann ebf85e
 			(PORT_B << TRANS_DDI_PORT_SHIFT) |
Thomas Zimmermann ebf85e
 			TRANS_DDI_FUNC_ENABLE);
Thomas Zimmermann ebf85e
 		if (IS_BROADWELL(dev_priv)) {
Thomas Zimmermann ebf85e
-			vgpu_vreg(vgpu, PORT_CLK_SEL(PORT_B)) &=
Thomas Zimmermann ebf85e
+			vgpu_vreg_t(vgpu, PORT_CLK_SEL(PORT_B)) &=
Thomas Zimmermann ebf85e
 				~PORT_CLK_SEL_MASK;
Thomas Zimmermann ebf85e
-			vgpu_vreg(vgpu, PORT_CLK_SEL(PORT_B)) |=
Thomas Zimmermann ebf85e
+			vgpu_vreg_t(vgpu, PORT_CLK_SEL(PORT_B)) |=
Thomas Zimmermann ebf85e
 				PORT_CLK_SEL_LCPLL_810;
Thomas Zimmermann ebf85e
 		}
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, DDI_BUF_CTL(PORT_B)) |= DDI_BUF_CTL_ENABLE;
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, DDI_BUF_CTL(PORT_B)) &= ~DDI_BUF_IS_IDLE;
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, SDEISR) |= SDE_PORTB_HOTPLUG_CPT;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_B)) |= DDI_BUF_CTL_ENABLE;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_B)) &= ~DDI_BUF_IS_IDLE;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, SDEISR) |= SDE_PORTB_HOTPLUG_CPT;
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (intel_vgpu_has_monitor_on_port(vgpu, PORT_C)) {
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, SDEISR) |= SDE_PORTC_HOTPLUG_CPT;
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) &=
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, SDEISR) |= SDE_PORTC_HOTPLUG_CPT;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) &=
Thomas Zimmermann ebf85e
 			~(TRANS_DDI_BPC_MASK | TRANS_DDI_MODE_SELECT_MASK |
Thomas Zimmermann ebf85e
 			TRANS_DDI_PORT_MASK);
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) |=
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) |=
Thomas Zimmermann ebf85e
 			(TRANS_DDI_BPC_8 | TRANS_DDI_MODE_SELECT_DP_SST |
Thomas Zimmermann ebf85e
 			(PORT_C << TRANS_DDI_PORT_SHIFT) |
Thomas Zimmermann ebf85e
 			TRANS_DDI_FUNC_ENABLE);
Thomas Zimmermann ebf85e
 		if (IS_BROADWELL(dev_priv)) {
Thomas Zimmermann ebf85e
-			vgpu_vreg(vgpu, PORT_CLK_SEL(PORT_C)) &=
Thomas Zimmermann ebf85e
+			vgpu_vreg_t(vgpu, PORT_CLK_SEL(PORT_C)) &=
Thomas Zimmermann ebf85e
 				~PORT_CLK_SEL_MASK;
Thomas Zimmermann ebf85e
-			vgpu_vreg(vgpu, PORT_CLK_SEL(PORT_C)) |=
Thomas Zimmermann ebf85e
+			vgpu_vreg_t(vgpu, PORT_CLK_SEL(PORT_C)) |=
Thomas Zimmermann ebf85e
 				PORT_CLK_SEL_LCPLL_810;
Thomas Zimmermann ebf85e
 		}
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, DDI_BUF_CTL(PORT_C)) |= DDI_BUF_CTL_ENABLE;
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, DDI_BUF_CTL(PORT_C)) &= ~DDI_BUF_IS_IDLE;
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, SFUSE_STRAP) |= SFUSE_STRAP_DDIC_DETECTED;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_C)) |= DDI_BUF_CTL_ENABLE;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_C)) &= ~DDI_BUF_IS_IDLE;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, SFUSE_STRAP) |= SFUSE_STRAP_DDIC_DETECTED;
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (intel_vgpu_has_monitor_on_port(vgpu, PORT_D)) {
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, SDEISR) |= SDE_PORTD_HOTPLUG_CPT;
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) &=
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, SDEISR) |= SDE_PORTD_HOTPLUG_CPT;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) &=
Thomas Zimmermann ebf85e
 			~(TRANS_DDI_BPC_MASK | TRANS_DDI_MODE_SELECT_MASK |
Thomas Zimmermann ebf85e
 			TRANS_DDI_PORT_MASK);
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) |=
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) |=
Thomas Zimmermann ebf85e
 			(TRANS_DDI_BPC_8 | TRANS_DDI_MODE_SELECT_DP_SST |
Thomas Zimmermann ebf85e
 			(PORT_D << TRANS_DDI_PORT_SHIFT) |
Thomas Zimmermann ebf85e
 			TRANS_DDI_FUNC_ENABLE);
Thomas Zimmermann ebf85e
 		if (IS_BROADWELL(dev_priv)) {
Thomas Zimmermann ebf85e
-			vgpu_vreg(vgpu, PORT_CLK_SEL(PORT_D)) &=
Thomas Zimmermann ebf85e
+			vgpu_vreg_t(vgpu, PORT_CLK_SEL(PORT_D)) &=
Thomas Zimmermann ebf85e
 				~PORT_CLK_SEL_MASK;
Thomas Zimmermann ebf85e
-			vgpu_vreg(vgpu, PORT_CLK_SEL(PORT_D)) |=
Thomas Zimmermann ebf85e
+			vgpu_vreg_t(vgpu, PORT_CLK_SEL(PORT_D)) |=
Thomas Zimmermann ebf85e
 				PORT_CLK_SEL_LCPLL_810;
Thomas Zimmermann ebf85e
 		}
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, DDI_BUF_CTL(PORT_D)) |= DDI_BUF_CTL_ENABLE;
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, DDI_BUF_CTL(PORT_D)) &= ~DDI_BUF_IS_IDLE;
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, SFUSE_STRAP) |= SFUSE_STRAP_DDID_DETECTED;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_D)) |= DDI_BUF_CTL_ENABLE;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_D)) &= ~DDI_BUF_IS_IDLE;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, SFUSE_STRAP) |= SFUSE_STRAP_DDID_DETECTED;
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if ((IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) &&
Thomas Zimmermann ebf85e
 			intel_vgpu_has_monitor_on_port(vgpu, PORT_E)) {
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, SDEISR) |= SDE_PORTE_HOTPLUG_SPT;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, SDEISR) |= SDE_PORTE_HOTPLUG_SPT;
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (intel_vgpu_has_monitor_on_port(vgpu, PORT_A)) {
Thomas Zimmermann ebf85e
 		if (IS_BROADWELL(dev_priv))
Thomas Zimmermann ebf85e
-			vgpu_vreg(vgpu, GEN8_DE_PORT_ISR) |=
Thomas Zimmermann ebf85e
+			vgpu_vreg_t(vgpu, GEN8_DE_PORT_ISR) |=
Thomas Zimmermann ebf85e
 				GEN8_PORT_DP_A_HOTPLUG;
Thomas Zimmermann ebf85e
 		else
Thomas Zimmermann ebf85e
-			vgpu_vreg(vgpu, SDEISR) |= SDE_PORTA_HOTPLUG_SPT;
Thomas Zimmermann ebf85e
+			vgpu_vreg_t(vgpu, SDEISR) |= SDE_PORTA_HOTPLUG_SPT;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, DDI_BUF_CTL(PORT_A)) |= DDI_INIT_DISPLAY_DETECTED;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_A)) |= DDI_INIT_DISPLAY_DETECTED;
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	/* Clear host CRT status, so guest couldn't detect this host CRT. */
Thomas Zimmermann ebf85e
 	if (IS_BROADWELL(dev_priv))
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, PCH_ADPA) &= ~ADPA_CRT_HOTPLUG_MONITOR_MASK;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, PCH_ADPA) &= ~ADPA_CRT_HOTPLUG_MONITOR_MASK;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, PIPECONF(PIPE_A)) |= PIPECONF_ENABLE;
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, PIPECONF(PIPE_A)) |= PIPECONF_ENABLE;
Thomas Zimmermann ebf85e
 }
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 static void clean_virtual_dp_monitor(struct intel_vgpu *vgpu, int port_num)
Thomas Zimmermann ebf85e
@@ -369,12 +369,12 @@ static void emulate_vblank_on_pipe(struc
Thomas Zimmermann ebf85e
 		if (!pipe_is_enabled(vgpu, pipe))
Thomas Zimmermann ebf85e
 			continue;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, PIPE_FLIPCOUNT_G4X(pipe))++;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, PIPE_FLIPCOUNT_G4X(pipe))++;
Thomas Zimmermann ebf85e
 		intel_vgpu_trigger_virtual_event(vgpu, event);
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (pipe_is_enabled(vgpu, pipe)) {
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, PIPE_FRMCOUNT_G4X(pipe))++;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, PIPE_FRMCOUNT_G4X(pipe))++;
Thomas Zimmermann ebf85e
 		intel_vgpu_trigger_virtual_event(vgpu, vblank_event[pipe]);
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 }
Thomas Zimmermann ebf85e
--- a/drivers/gpu/drm/i915/gvt/edid.c
Thomas Zimmermann ebf85e
+++ b/drivers/gpu/drm/i915/gvt/edid.c
Thomas Zimmermann ebf85e
@@ -95,9 +95,9 @@ static inline int get_port_from_gmbus0(u
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 static void reset_gmbus_controller(struct intel_vgpu *vgpu)
Thomas Zimmermann ebf85e
 {
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, PCH_GMBUS2) = GMBUS_HW_RDY;
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, PCH_GMBUS2) = GMBUS_HW_RDY;
Thomas Zimmermann ebf85e
 	if (!vgpu->display.i2c_edid.edid_available)
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, PCH_GMBUS2) |= GMBUS_SATOER;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, PCH_GMBUS2) |= GMBUS_SATOER;
Thomas Zimmermann ebf85e
 	vgpu->display.i2c_edid.gmbus.phase = GMBUS_IDLE_PHASE;
Thomas Zimmermann ebf85e
 }
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
@@ -123,16 +123,16 @@ static int gmbus0_mmio_write(struct inte
Thomas Zimmermann ebf85e
 	vgpu->display.i2c_edid.state = I2C_GMBUS;
Thomas Zimmermann ebf85e
 	vgpu->display.i2c_edid.gmbus.phase = GMBUS_IDLE_PHASE;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, PCH_GMBUS2) &= ~GMBUS_ACTIVE;
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, PCH_GMBUS2) |= GMBUS_HW_RDY | GMBUS_HW_WAIT_PHASE;
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, PCH_GMBUS2) &= ~GMBUS_ACTIVE;
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, PCH_GMBUS2) |= GMBUS_HW_RDY | GMBUS_HW_WAIT_PHASE;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (intel_vgpu_has_monitor_on_port(vgpu, port) &&
Thomas Zimmermann ebf85e
 			!intel_vgpu_port_is_dp(vgpu, port)) {
Thomas Zimmermann ebf85e
 		vgpu->display.i2c_edid.port = port;
Thomas Zimmermann ebf85e
 		vgpu->display.i2c_edid.edid_available = true;
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, PCH_GMBUS2) &= ~GMBUS_SATOER;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, PCH_GMBUS2) &= ~GMBUS_SATOER;
Thomas Zimmermann ebf85e
 	} else
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, PCH_GMBUS2) |= GMBUS_SATOER;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, PCH_GMBUS2) |= GMBUS_SATOER;
Thomas Zimmermann ebf85e
 	return 0;
Thomas Zimmermann ebf85e
 }
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
@@ -159,8 +159,8 @@ static int gmbus1_mmio_write(struct inte
Thomas Zimmermann ebf85e
 		 * 2) HW_RDY bit asserted
Thomas Zimmermann ebf85e
 		 */
Thomas Zimmermann ebf85e
 		if (wvalue & GMBUS_SW_CLR_INT) {
Thomas Zimmermann ebf85e
-			vgpu_vreg(vgpu, PCH_GMBUS2) &= ~GMBUS_INT;
Thomas Zimmermann ebf85e
-			vgpu_vreg(vgpu, PCH_GMBUS2) |= GMBUS_HW_RDY;
Thomas Zimmermann ebf85e
+			vgpu_vreg_t(vgpu, PCH_GMBUS2) &= ~GMBUS_INT;
Thomas Zimmermann ebf85e
+			vgpu_vreg_t(vgpu, PCH_GMBUS2) |= GMBUS_HW_RDY;
Thomas Zimmermann ebf85e
 		}
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 		/* For virtualization, we suppose that HW is always ready,
Thomas Zimmermann ebf85e
@@ -208,7 +208,7 @@ static int gmbus1_mmio_write(struct inte
Thomas Zimmermann ebf85e
 				 * visible in gmbus interface)
Thomas Zimmermann ebf85e
 				 */
Thomas Zimmermann ebf85e
 				i2c_edid->gmbus.phase = GMBUS_IDLE_PHASE;
Thomas Zimmermann ebf85e
-				vgpu_vreg(vgpu, PCH_GMBUS2) &= ~GMBUS_ACTIVE;
Thomas Zimmermann ebf85e
+				vgpu_vreg_t(vgpu, PCH_GMBUS2) &= ~GMBUS_ACTIVE;
Thomas Zimmermann ebf85e
 			}
Thomas Zimmermann ebf85e
 			break;
Thomas Zimmermann ebf85e
 		case NIDX_NS_W:
Thomas Zimmermann ebf85e
@@ -220,7 +220,7 @@ static int gmbus1_mmio_write(struct inte
Thomas Zimmermann ebf85e
 			 * START (-->INDEX) -->DATA
Thomas Zimmermann ebf85e
 			 */
Thomas Zimmermann ebf85e
 			i2c_edid->gmbus.phase = GMBUS_DATA_PHASE;
Thomas Zimmermann ebf85e
-			vgpu_vreg(vgpu, PCH_GMBUS2) |= GMBUS_ACTIVE;
Thomas Zimmermann ebf85e
+			vgpu_vreg_t(vgpu, PCH_GMBUS2) |= GMBUS_ACTIVE;
Thomas Zimmermann ebf85e
 			break;
Thomas Zimmermann ebf85e
 		default:
Thomas Zimmermann ebf85e
 			gvt_vgpu_err("Unknown/reserved GMBUS cycle detected!\n");
Thomas Zimmermann ebf85e
@@ -256,7 +256,7 @@ static int gmbus3_mmio_read(struct intel
Thomas Zimmermann ebf85e
 	u32 reg_data = 0;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	/* Data can only be recevied if previous settings correct */
Thomas Zimmermann ebf85e
-	if (vgpu_vreg(vgpu, PCH_GMBUS1) & GMBUS_SLAVE_READ) {
Thomas Zimmermann ebf85e
+	if (vgpu_vreg_t(vgpu, PCH_GMBUS1) & GMBUS_SLAVE_READ) {
Thomas Zimmermann ebf85e
 		if (byte_left <= 0) {
Thomas Zimmermann ebf85e
 			memcpy(p_data, &vgpu_vreg(vgpu, offset), bytes);
Thomas Zimmermann ebf85e
 			return 0;
Thomas Zimmermann ebf85e
--- a/drivers/gpu/drm/i915/gvt/fb_decoder.c
Thomas Zimmermann ebf85e
+++ b/drivers/gpu/drm/i915/gvt/fb_decoder.c
Thomas Zimmermann ebf85e
@@ -147,7 +147,7 @@ static u32 intel_vgpu_get_stride(struct
Thomas Zimmermann ebf85e
 {
Thomas Zimmermann ebf85e
 	struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	u32 stride_reg = vgpu_vreg(vgpu, DSPSTRIDE(pipe)) & stride_mask;
Thomas Zimmermann ebf85e
+	u32 stride_reg = vgpu_vreg_t(vgpu, DSPSTRIDE(pipe)) & stride_mask;
Thomas Zimmermann ebf85e
 	u32 stride = stride_reg;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (IS_SKYLAKE(dev_priv)) {
Thomas Zimmermann ebf85e
@@ -209,7 +209,7 @@ int intel_vgpu_decode_primary_plane(stru
Thomas Zimmermann ebf85e
 	if (pipe >= I915_MAX_PIPES)
Thomas Zimmermann ebf85e
 		return -ENODEV;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	val = vgpu_vreg(vgpu, DSPCNTR(pipe));
Thomas Zimmermann ebf85e
+	val = vgpu_vreg_t(vgpu, DSPCNTR(pipe));
Thomas Zimmermann ebf85e
 	plane->enabled = !!(val & DISPLAY_PLANE_ENABLE);
Thomas Zimmermann ebf85e
 	if (!plane->enabled)
Thomas Zimmermann ebf85e
 		return -ENODEV;
Thomas Zimmermann ebf85e
@@ -244,7 +244,7 @@ int intel_vgpu_decode_primary_plane(stru
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	plane->hw_format = fmt;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	plane->base = vgpu_vreg(vgpu, DSPSURF(pipe)) & I915_GTT_PAGE_MASK;
Thomas Zimmermann ebf85e
+	plane->base = vgpu_vreg_t(vgpu, DSPSURF(pipe)) & I915_GTT_PAGE_MASK;
Thomas Zimmermann ebf85e
 	if (!intel_gvt_ggtt_validate_range(vgpu, plane->base, 0)) {
Thomas Zimmermann ebf85e
 		gvt_vgpu_err("invalid gma address: %lx\n",
Thomas Zimmermann ebf85e
 			     (unsigned long)plane->base);
Thomas Zimmermann ebf85e
@@ -262,14 +262,14 @@ int intel_vgpu_decode_primary_plane(stru
Thomas Zimmermann ebf85e
 		(IS_SKYLAKE(dev_priv)) ? (_PRI_PLANE_STRIDE_MASK >> 6) :
Thomas Zimmermann ebf85e
 		_PRI_PLANE_STRIDE_MASK, plane->bpp);
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	plane->width = (vgpu_vreg(vgpu, PIPESRC(pipe)) & _PIPE_H_SRCSZ_MASK) >>
Thomas Zimmermann ebf85e
+	plane->width = (vgpu_vreg_t(vgpu, PIPESRC(pipe)) & _PIPE_H_SRCSZ_MASK) >>
Thomas Zimmermann ebf85e
 		_PIPE_H_SRCSZ_SHIFT;
Thomas Zimmermann ebf85e
 	plane->width += 1;
Thomas Zimmermann ebf85e
-	plane->height = (vgpu_vreg(vgpu, PIPESRC(pipe)) &
Thomas Zimmermann ebf85e
+	plane->height = (vgpu_vreg_t(vgpu, PIPESRC(pipe)) &
Thomas Zimmermann ebf85e
 			_PIPE_V_SRCSZ_MASK) >> _PIPE_V_SRCSZ_SHIFT;
Thomas Zimmermann ebf85e
 	plane->height += 1;	/* raw height is one minus the real value */
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	val = vgpu_vreg(vgpu, DSPTILEOFF(pipe));
Thomas Zimmermann ebf85e
+	val = vgpu_vreg_t(vgpu, DSPTILEOFF(pipe));
Thomas Zimmermann ebf85e
 	plane->x_offset = (val & _PRI_PLANE_X_OFF_MASK) >>
Thomas Zimmermann ebf85e
 		_PRI_PLANE_X_OFF_SHIFT;
Thomas Zimmermann ebf85e
 	plane->y_offset = (val & _PRI_PLANE_Y_OFF_MASK) >>
Thomas Zimmermann ebf85e
@@ -343,7 +343,7 @@ int intel_vgpu_decode_cursor_plane(struc
Thomas Zimmermann ebf85e
 	if (pipe >= I915_MAX_PIPES)
Thomas Zimmermann ebf85e
 		return -ENODEV;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	val = vgpu_vreg(vgpu, CURCNTR(pipe));
Thomas Zimmermann ebf85e
+	val = vgpu_vreg_t(vgpu, CURCNTR(pipe));
Thomas Zimmermann ebf85e
 	mode = val & CURSOR_MODE;
Thomas Zimmermann ebf85e
 	plane->enabled = (mode != CURSOR_MODE_DISABLE);
Thomas Zimmermann ebf85e
 	if (!plane->enabled)
Thomas Zimmermann ebf85e
@@ -369,7 +369,7 @@ int intel_vgpu_decode_cursor_plane(struc
Thomas Zimmermann ebf85e
 		gvt_dbg_core("alpha_plane=0x%x, alpha_force=0x%x\n",
Thomas Zimmermann ebf85e
 			alpha_plane, alpha_force);
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	plane->base = vgpu_vreg(vgpu, CURBASE(pipe)) & I915_GTT_PAGE_MASK;
Thomas Zimmermann ebf85e
+	plane->base = vgpu_vreg_t(vgpu, CURBASE(pipe)) & I915_GTT_PAGE_MASK;
Thomas Zimmermann ebf85e
 	if (!intel_gvt_ggtt_validate_range(vgpu, plane->base, 0)) {
Thomas Zimmermann ebf85e
 		gvt_vgpu_err("invalid gma address: %lx\n",
Thomas Zimmermann ebf85e
 			     (unsigned long)plane->base);
Thomas Zimmermann ebf85e
@@ -383,7 +383,7 @@ int intel_vgpu_decode_cursor_plane(struc
Thomas Zimmermann ebf85e
 		return  -EINVAL;
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	val = vgpu_vreg(vgpu, CURPOS(pipe));
Thomas Zimmermann ebf85e
+	val = vgpu_vreg_t(vgpu, CURPOS(pipe));
Thomas Zimmermann ebf85e
 	plane->x_pos = (val & _CURSOR_POS_X_MASK) >> _CURSOR_POS_X_SHIFT;
Thomas Zimmermann ebf85e
 	plane->x_sign = (val & _CURSOR_SIGN_X_MASK) >> _CURSOR_SIGN_X_SHIFT;
Thomas Zimmermann ebf85e
 	plane->y_pos = (val & _CURSOR_POS_Y_MASK) >> _CURSOR_POS_Y_SHIFT;
Thomas Zimmermann ebf85e
@@ -423,7 +423,7 @@ int intel_vgpu_decode_sprite_plane(struc
Thomas Zimmermann ebf85e
 	if (pipe >= I915_MAX_PIPES)
Thomas Zimmermann ebf85e
 		return -ENODEV;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	val = vgpu_vreg(vgpu, SPRCTL(pipe));
Thomas Zimmermann ebf85e
+	val = vgpu_vreg_t(vgpu, SPRCTL(pipe));
Thomas Zimmermann ebf85e
 	plane->enabled = !!(val & SPRITE_ENABLE);
Thomas Zimmermann ebf85e
 	if (!plane->enabled)
Thomas Zimmermann ebf85e
 		return -ENODEV;
Thomas Zimmermann ebf85e
@@ -474,7 +474,7 @@ int intel_vgpu_decode_sprite_plane(struc
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	plane->drm_format = drm_format;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	plane->base = vgpu_vreg(vgpu, SPRSURF(pipe)) & I915_GTT_PAGE_MASK;
Thomas Zimmermann ebf85e
+	plane->base = vgpu_vreg_t(vgpu, SPRSURF(pipe)) & I915_GTT_PAGE_MASK;
Thomas Zimmermann ebf85e
 	if (!intel_gvt_ggtt_validate_range(vgpu, plane->base, 0)) {
Thomas Zimmermann ebf85e
 		gvt_vgpu_err("invalid gma address: %lx\n",
Thomas Zimmermann ebf85e
 			     (unsigned long)plane->base);
Thomas Zimmermann ebf85e
@@ -488,10 +488,10 @@ int intel_vgpu_decode_sprite_plane(struc
Thomas Zimmermann ebf85e
 		return  -EINVAL;
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	plane->stride = vgpu_vreg(vgpu, SPRSTRIDE(pipe)) &
Thomas Zimmermann ebf85e
+	plane->stride = vgpu_vreg_t(vgpu, SPRSTRIDE(pipe)) &
Thomas Zimmermann ebf85e
 				_SPRITE_STRIDE_MASK;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	val = vgpu_vreg(vgpu, SPRSIZE(pipe));
Thomas Zimmermann ebf85e
+	val = vgpu_vreg_t(vgpu, SPRSIZE(pipe));
Thomas Zimmermann ebf85e
 	plane->height = (val & _SPRITE_SIZE_HEIGHT_MASK) >>
Thomas Zimmermann ebf85e
 		_SPRITE_SIZE_HEIGHT_SHIFT;
Thomas Zimmermann ebf85e
 	plane->width = (val & _SPRITE_SIZE_WIDTH_MASK) >>
Thomas Zimmermann ebf85e
@@ -499,11 +499,11 @@ int intel_vgpu_decode_sprite_plane(struc
Thomas Zimmermann ebf85e
 	plane->height += 1;	/* raw height is one minus the real value */
Thomas Zimmermann ebf85e
 	plane->width += 1;	/* raw width is one minus the real value */
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	val = vgpu_vreg(vgpu, SPRPOS(pipe));
Thomas Zimmermann ebf85e
+	val = vgpu_vreg_t(vgpu, SPRPOS(pipe));
Thomas Zimmermann ebf85e
 	plane->x_pos = (val & _SPRITE_POS_X_MASK) >> _SPRITE_POS_X_SHIFT;
Thomas Zimmermann ebf85e
 	plane->y_pos = (val & _SPRITE_POS_Y_MASK) >> _SPRITE_POS_Y_SHIFT;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	val = vgpu_vreg(vgpu, SPROFFSET(pipe));
Thomas Zimmermann ebf85e
+	val = vgpu_vreg_t(vgpu, SPROFFSET(pipe));
Thomas Zimmermann ebf85e
 	plane->x_offset = (val & _SPRITE_OFFSET_START_X_MASK) >>
Thomas Zimmermann ebf85e
 			   _SPRITE_OFFSET_START_X_SHIFT;
Thomas Zimmermann ebf85e
 	plane->y_offset = (val & _SPRITE_OFFSET_START_Y_MASK) >>
Thomas Zimmermann ebf85e
--- a/drivers/gpu/drm/i915/gvt/gtt.c
Thomas Zimmermann ebf85e
+++ b/drivers/gpu/drm/i915/gvt/gtt.c
Thomas Zimmermann ebf85e
@@ -2244,7 +2244,7 @@ struct intel_vgpu_mm *intel_vgpu_find_pp
Thomas Zimmermann ebf85e
 int intel_vgpu_g2v_create_ppgtt_mm(struct intel_vgpu *vgpu,
Thomas Zimmermann ebf85e
 		int page_table_level)
Thomas Zimmermann ebf85e
 {
Thomas Zimmermann ebf85e
-	u64 *pdp = (u64 *)&vgpu_vreg64(vgpu, vgtif_reg(pdp[0]));
Thomas Zimmermann ebf85e
+	u64 *pdp = (u64 *)&vgpu_vreg64_t(vgpu, vgtif_reg(pdp[0]));
Thomas Zimmermann ebf85e
 	struct intel_vgpu_mm *mm;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (WARN_ON((page_table_level != 4) && (page_table_level != 3)))
Thomas Zimmermann ebf85e
@@ -2279,7 +2279,7 @@ int intel_vgpu_g2v_create_ppgtt_mm(struc
Thomas Zimmermann ebf85e
 int intel_vgpu_g2v_destroy_ppgtt_mm(struct intel_vgpu *vgpu,
Thomas Zimmermann ebf85e
 		int page_table_level)
Thomas Zimmermann ebf85e
 {
Thomas Zimmermann ebf85e
-	u64 *pdp = (u64 *)&vgpu_vreg64(vgpu, vgtif_reg(pdp[0]));
Thomas Zimmermann ebf85e
+	u64 *pdp = (u64 *)&vgpu_vreg64_t(vgpu, vgtif_reg(pdp[0]));
Thomas Zimmermann ebf85e
 	struct intel_vgpu_mm *mm;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (WARN_ON((page_table_level != 4) && (page_table_level != 3)))
Thomas Zimmermann ebf85e
--- a/drivers/gpu/drm/i915/gvt/gvt.h
Thomas Zimmermann ebf85e
+++ b/drivers/gpu/drm/i915/gvt/gvt.h
Thomas Zimmermann ebf85e
@@ -403,23 +403,20 @@ void intel_vgpu_free_resource(struct int
Thomas Zimmermann ebf85e
 void intel_vgpu_write_fence(struct intel_vgpu *vgpu,
Thomas Zimmermann ebf85e
 	u32 fence, u64 value);
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-/* Macros for easily accessing vGPU virtual/shadow register */
Thomas Zimmermann ebf85e
-#define vgpu_vreg(vgpu, reg) \
Thomas Zimmermann ebf85e
-	(*(u32 *)(vgpu->mmio.vreg + INTEL_GVT_MMIO_OFFSET(reg)))
Thomas Zimmermann ebf85e
-#define vgpu_vreg8(vgpu, reg) \
Thomas Zimmermann ebf85e
-	(*(u8 *)(vgpu->mmio.vreg + INTEL_GVT_MMIO_OFFSET(reg)))
Thomas Zimmermann ebf85e
-#define vgpu_vreg16(vgpu, reg) \
Thomas Zimmermann ebf85e
-	(*(u16 *)(vgpu->mmio.vreg + INTEL_GVT_MMIO_OFFSET(reg)))
Thomas Zimmermann ebf85e
-#define vgpu_vreg64(vgpu, reg) \
Thomas Zimmermann ebf85e
-	(*(u64 *)(vgpu->mmio.vreg + INTEL_GVT_MMIO_OFFSET(reg)))
Thomas Zimmermann ebf85e
-#define vgpu_sreg(vgpu, reg) \
Thomas Zimmermann ebf85e
-	(*(u32 *)(vgpu->mmio.sreg + INTEL_GVT_MMIO_OFFSET(reg)))
Thomas Zimmermann ebf85e
-#define vgpu_sreg8(vgpu, reg) \
Thomas Zimmermann ebf85e
-	(*(u8 *)(vgpu->mmio.sreg + INTEL_GVT_MMIO_OFFSET(reg)))
Thomas Zimmermann ebf85e
-#define vgpu_sreg16(vgpu, reg) \
Thomas Zimmermann ebf85e
-	(*(u16 *)(vgpu->mmio.sreg + INTEL_GVT_MMIO_OFFSET(reg)))
Thomas Zimmermann ebf85e
-#define vgpu_sreg64(vgpu, reg) \
Thomas Zimmermann ebf85e
-	(*(u64 *)(vgpu->mmio.sreg + INTEL_GVT_MMIO_OFFSET(reg)))
Thomas Zimmermann ebf85e
+/* Macros for easily accessing vGPU virtual/shadow register.
Thomas Zimmermann ebf85e
+   Explicitly seperate use for typed MMIO reg or real offset.*/
Thomas Zimmermann ebf85e
+#define vgpu_vreg_t(vgpu, reg) \
Thomas Zimmermann ebf85e
+	(*(u32 *)(vgpu->mmio.vreg + i915_mmio_reg_offset(reg)))
Thomas Zimmermann ebf85e
+#define vgpu_vreg(vgpu, offset) \
Thomas Zimmermann ebf85e
+	(*(u32 *)(vgpu->mmio.vreg + (offset)))
Thomas Zimmermann ebf85e
+#define vgpu_vreg64_t(vgpu, reg) \
Thomas Zimmermann ebf85e
+	(*(u64 *)(vgpu->mmio.vreg + i915_mmio_reg_offset(reg)))
Thomas Zimmermann ebf85e
+#define vgpu_vreg64(vgpu, offset) \
Thomas Zimmermann ebf85e
+	(*(u64 *)(vgpu->mmio.vreg + (offset)))
Thomas Zimmermann ebf85e
+#define vgpu_sreg_t(vgpu, reg) \
Thomas Zimmermann ebf85e
+	(*(u32 *)(vgpu->mmio.sreg + i915_mmio_reg_offset(reg)))
Thomas Zimmermann ebf85e
+#define vgpu_sreg(vgpu, offset) \
Thomas Zimmermann ebf85e
+	(*(u32 *)(vgpu->mmio.sreg + (offset)))
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 #define for_each_active_vgpu(gvt, vgpu, id) \
Thomas Zimmermann ebf85e
 	idr_for_each_entry((&(gvt)->vgpu_idr), (vgpu), (id)) \
Thomas Zimmermann ebf85e
--- a/drivers/gpu/drm/i915/gvt/handlers.c
Thomas Zimmermann ebf85e
+++ b/drivers/gpu/drm/i915/gvt/handlers.c
Thomas Zimmermann ebf85e
@@ -343,13 +343,13 @@ static int pch_pp_control_mmio_write(str
Thomas Zimmermann ebf85e
 	write_vreg(vgpu, offset, p_data, bytes);
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (vgpu_vreg(vgpu, offset) & PANEL_POWER_ON) {
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, PCH_PP_STATUS) |= PP_ON;
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, PCH_PP_STATUS) |= PP_SEQUENCE_STATE_ON_IDLE;
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, PCH_PP_STATUS) &= ~PP_SEQUENCE_POWER_DOWN;
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, PCH_PP_STATUS) &= ~PP_CYCLE_DELAY_ACTIVE;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, PCH_PP_STATUS) |= PP_ON;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, PCH_PP_STATUS) |= PP_SEQUENCE_STATE_ON_IDLE;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, PCH_PP_STATUS) &= ~PP_SEQUENCE_POWER_DOWN;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, PCH_PP_STATUS) &= ~PP_CYCLE_DELAY_ACTIVE;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	} else
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, PCH_PP_STATUS) &=
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, PCH_PP_STATUS) &=
Thomas Zimmermann ebf85e
 			~(PP_ON | PP_SEQUENCE_POWER_DOWN
Thomas Zimmermann ebf85e
 					| PP_CYCLE_DELAY_ACTIVE);
Thomas Zimmermann ebf85e
 	return 0;
Thomas Zimmermann ebf85e
@@ -503,7 +503,7 @@ static int ddi_buf_ctl_mmio_write(struct
Thomas Zimmermann ebf85e
 	} else {
Thomas Zimmermann ebf85e
 		vgpu_vreg(vgpu, offset) |= DDI_BUF_IS_IDLE;
Thomas Zimmermann ebf85e
 		if (offset == i915_mmio_reg_offset(DDI_BUF_CTL(PORT_E)))
Thomas Zimmermann ebf85e
-			vgpu_vreg(vgpu, DP_TP_STATUS(PORT_E))
Thomas Zimmermann ebf85e
+			vgpu_vreg_t(vgpu, DP_TP_STATUS(PORT_E))
Thomas Zimmermann ebf85e
 				&= ~DP_TP_STATUS_AUTOTRAIN_DONE;
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 	return 0;
Thomas Zimmermann ebf85e
@@ -521,9 +521,9 @@ static int fdi_rx_iir_mmio_write(struct
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 static int fdi_auto_training_started(struct intel_vgpu *vgpu)
Thomas Zimmermann ebf85e
 {
Thomas Zimmermann ebf85e
-	u32 ddi_buf_ctl = vgpu_vreg(vgpu, DDI_BUF_CTL(PORT_E));
Thomas Zimmermann ebf85e
+	u32 ddi_buf_ctl = vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_E));
Thomas Zimmermann ebf85e
 	u32 rx_ctl = vgpu_vreg(vgpu, _FDI_RXA_CTL);
Thomas Zimmermann ebf85e
-	u32 tx_ctl = vgpu_vreg(vgpu, DP_TP_CTL(PORT_E));
Thomas Zimmermann ebf85e
+	u32 tx_ctl = vgpu_vreg_t(vgpu, DP_TP_CTL(PORT_E));
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if ((ddi_buf_ctl & DDI_BUF_CTL_ENABLE) &&
Thomas Zimmermann ebf85e
 			(rx_ctl & FDI_RX_ENABLE) &&
Thomas Zimmermann ebf85e
@@ -564,12 +564,12 @@ static int check_fdi_rx_train_status(str
Thomas Zimmermann ebf85e
 	fdi_tx_check_bits = FDI_TX_ENABLE | fdi_tx_train_bits;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	/* If imr bit has been masked */
Thomas Zimmermann ebf85e
-	if (vgpu_vreg(vgpu, fdi_rx_imr) & fdi_iir_check_bits)
Thomas Zimmermann ebf85e
+	if (vgpu_vreg_t(vgpu, fdi_rx_imr) & fdi_iir_check_bits)
Thomas Zimmermann ebf85e
 		return 0;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	if (((vgpu_vreg(vgpu, fdi_tx_ctl) & fdi_tx_check_bits)
Thomas Zimmermann ebf85e
+	if (((vgpu_vreg_t(vgpu, fdi_tx_ctl) & fdi_tx_check_bits)
Thomas Zimmermann ebf85e
 			== fdi_tx_check_bits)
Thomas Zimmermann ebf85e
-		&& ((vgpu_vreg(vgpu, fdi_rx_ctl) & fdi_rx_check_bits)
Thomas Zimmermann ebf85e
+		&& ((vgpu_vreg_t(vgpu, fdi_rx_ctl) & fdi_rx_check_bits)
Thomas Zimmermann ebf85e
 			== fdi_rx_check_bits))
Thomas Zimmermann ebf85e
 		return 1;
Thomas Zimmermann ebf85e
 	else
Thomas Zimmermann ebf85e
@@ -626,17 +626,17 @@ static int update_fdi_rx_iir_status(stru
Thomas Zimmermann ebf85e
 	if (ret < 0)
Thomas Zimmermann ebf85e
 		return ret;
Thomas Zimmermann ebf85e
 	if (ret)
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, fdi_rx_iir) |= FDI_RX_BIT_LOCK;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, fdi_rx_iir) |= FDI_RX_BIT_LOCK;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	ret = check_fdi_rx_train_status(vgpu, index, FDI_LINK_TRAIN_PATTERN2);
Thomas Zimmermann ebf85e
 	if (ret < 0)
Thomas Zimmermann ebf85e
 		return ret;
Thomas Zimmermann ebf85e
 	if (ret)
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, fdi_rx_iir) |= FDI_RX_SYMBOL_LOCK;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, fdi_rx_iir) |= FDI_RX_SYMBOL_LOCK;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	if (offset == _FDI_RXA_CTL)
Thomas Zimmermann ebf85e
 		if (fdi_auto_training_started(vgpu))
Thomas Zimmermann ebf85e
-			vgpu_vreg(vgpu, DP_TP_STATUS(PORT_E)) |=
Thomas Zimmermann ebf85e
+			vgpu_vreg_t(vgpu, DP_TP_STATUS(PORT_E)) |=
Thomas Zimmermann ebf85e
 				DP_TP_STATUS_AUTOTRAIN_DONE;
Thomas Zimmermann ebf85e
 	return 0;
Thomas Zimmermann ebf85e
 }
Thomas Zimmermann ebf85e
@@ -657,7 +657,7 @@ static int dp_tp_ctl_mmio_write(struct i
Thomas Zimmermann ebf85e
 	data = (vgpu_vreg(vgpu, offset) & GENMASK(10, 8)) >> 8;
Thomas Zimmermann ebf85e
 	if (data == 0x2) {
Thomas Zimmermann ebf85e
 		status_reg = DP_TP_STATUS(index);
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, status_reg) |= (1 << 25);
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, status_reg) |= (1 << 25);
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 	return 0;
Thomas Zimmermann ebf85e
 }
Thomas Zimmermann ebf85e
@@ -721,7 +721,7 @@ static int pri_surf_mmio_write(struct in
Thomas Zimmermann ebf85e
 	};
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	write_vreg(vgpu, offset, p_data, bytes);
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, surflive_reg) = vgpu_vreg(vgpu, offset);
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, surflive_reg) = vgpu_vreg(vgpu, offset);
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	set_bit(flip_event[index], vgpu->irq.flip_done_event[index]);
Thomas Zimmermann ebf85e
 	return 0;
Thomas Zimmermann ebf85e
@@ -742,7 +742,7 @@ static int spr_surf_mmio_write(struct in
Thomas Zimmermann ebf85e
 	};
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	write_vreg(vgpu, offset, p_data, bytes);
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, surflive_reg) = vgpu_vreg(vgpu, offset);
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, surflive_reg) = vgpu_vreg(vgpu, offset);
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	set_bit(flip_event[index], vgpu->irq.flip_done_event[index]);
Thomas Zimmermann ebf85e
 	return 0;
Thomas Zimmermann ebf85e
@@ -1064,9 +1064,9 @@ static void write_virtual_sbi_register(s
Thomas Zimmermann ebf85e
 static int sbi_data_mmio_read(struct intel_vgpu *vgpu, unsigned int offset,
Thomas Zimmermann ebf85e
 		void *p_data, unsigned int bytes)
Thomas Zimmermann ebf85e
 {
Thomas Zimmermann ebf85e
-	if (((vgpu_vreg(vgpu, SBI_CTL_STAT) & SBI_OPCODE_MASK) >>
Thomas Zimmermann ebf85e
+	if (((vgpu_vreg_t(vgpu, SBI_CTL_STAT) & SBI_OPCODE_MASK) >>
Thomas Zimmermann ebf85e
 				SBI_OPCODE_SHIFT) == SBI_CMD_CRRD) {
Thomas Zimmermann ebf85e
-		unsigned int sbi_offset = (vgpu_vreg(vgpu, SBI_ADDR) &
Thomas Zimmermann ebf85e
+		unsigned int sbi_offset = (vgpu_vreg_t(vgpu, SBI_ADDR) &
Thomas Zimmermann ebf85e
 				SBI_ADDR_OFFSET_MASK) >> SBI_ADDR_OFFSET_SHIFT;
Thomas Zimmermann ebf85e
 		vgpu_vreg(vgpu, offset) = read_virtual_sbi_register(vgpu,
Thomas Zimmermann ebf85e
 				sbi_offset);
Thomas Zimmermann ebf85e
@@ -1091,13 +1091,13 @@ static int sbi_ctl_mmio_write(struct int
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	vgpu_vreg(vgpu, offset) = data;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	if (((vgpu_vreg(vgpu, SBI_CTL_STAT) & SBI_OPCODE_MASK) >>
Thomas Zimmermann ebf85e
+	if (((vgpu_vreg_t(vgpu, SBI_CTL_STAT) & SBI_OPCODE_MASK) >>
Thomas Zimmermann ebf85e
 				SBI_OPCODE_SHIFT) == SBI_CMD_CRWR) {
Thomas Zimmermann ebf85e
-		unsigned int sbi_offset = (vgpu_vreg(vgpu, SBI_ADDR) &
Thomas Zimmermann ebf85e
+		unsigned int sbi_offset = (vgpu_vreg_t(vgpu, SBI_ADDR) &
Thomas Zimmermann ebf85e
 				SBI_ADDR_OFFSET_MASK) >> SBI_ADDR_OFFSET_SHIFT;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 		write_virtual_sbi_register(vgpu, sbi_offset,
Thomas Zimmermann ebf85e
-				vgpu_vreg(vgpu, SBI_DATA));
Thomas Zimmermann ebf85e
+					   vgpu_vreg_t(vgpu, SBI_DATA));
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 	return 0;
Thomas Zimmermann ebf85e
 }
Thomas Zimmermann ebf85e
@@ -1343,7 +1343,7 @@ static int mailbox_write(struct intel_vg
Thomas Zimmermann ebf85e
 {
Thomas Zimmermann ebf85e
 	u32 value = *(u32 *)p_data;
Thomas Zimmermann ebf85e
 	u32 cmd = value & 0xff;
Thomas Zimmermann ebf85e
-	u32 *data0 = &vgpu_vreg(vgpu, GEN6_PCODE_DATA);
Thomas Zimmermann ebf85e
+	u32 *data0 = &vgpu_vreg_t(vgpu, GEN6_PCODE_DATA);
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	switch (cmd) {
Thomas Zimmermann ebf85e
 	case GEN9_PCODE_READ_MEM_LATENCY:
Thomas Zimmermann ebf85e
--- a/drivers/gpu/drm/i915/gvt/mmio.c
Thomas Zimmermann ebf85e
+++ b/drivers/gpu/drm/i915/gvt/mmio.c
Thomas Zimmermann ebf85e
@@ -336,10 +336,10 @@ void intel_vgpu_reset_mmio(struct intel_
Thomas Zimmermann ebf85e
 		memcpy(vgpu->mmio.vreg, mmio, info->mmio_size);
Thomas Zimmermann ebf85e
 		memcpy(vgpu->mmio.sreg, mmio, info->mmio_size);
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, GEN6_GT_THREAD_STATUS_REG) = 0;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, GEN6_GT_THREAD_STATUS_REG) = 0;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 		/* set the bit 0:2(Core C-State ) to C0 */
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, GEN6_GT_CORE_STATUS) = 0;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, GEN6_GT_CORE_STATUS) = 0;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 		vgpu->mmio.disable_warn_untrack = false;
Thomas Zimmermann ebf85e
 	} else {
Thomas Zimmermann ebf85e
--- a/drivers/gpu/drm/i915/gvt/mmio.h
Thomas Zimmermann ebf85e
+++ b/drivers/gpu/drm/i915/gvt/mmio.h
Thomas Zimmermann ebf85e
@@ -76,13 +76,6 @@ int intel_gvt_for_each_tracked_mmio(stru
Thomas Zimmermann ebf85e
 	int (*handler)(struct intel_gvt *gvt, u32 offset, void *data),
Thomas Zimmermann ebf85e
 	void *data);
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-
Thomas Zimmermann ebf85e
-#define INTEL_GVT_MMIO_OFFSET(reg) ({ \
Thomas Zimmermann ebf85e
-	typeof(reg) __reg = reg; \
Thomas Zimmermann ebf85e
-	u32 *offset = (u32 *)&__reg; \
Thomas Zimmermann ebf85e
-	*offset; \
Thomas Zimmermann ebf85e
-})
Thomas Zimmermann ebf85e
-
Thomas Zimmermann ebf85e
 int intel_vgpu_init_mmio(struct intel_vgpu *vgpu);
Thomas Zimmermann ebf85e
 void intel_vgpu_reset_mmio(struct intel_vgpu *vgpu, bool dmlr);
Thomas Zimmermann ebf85e
 void intel_vgpu_clean_mmio(struct intel_vgpu *vgpu);
Thomas Zimmermann ebf85e
--- a/drivers/gpu/drm/i915/gvt/mmio_context.c
Thomas Zimmermann ebf85e
+++ b/drivers/gpu/drm/i915/gvt/mmio_context.c
Thomas Zimmermann ebf85e
@@ -224,7 +224,7 @@ static void handle_tlb_pending_event(str
Thomas Zimmermann ebf85e
 	if (wait_for_atomic((I915_READ_FW(reg) == 0), 50))
Thomas Zimmermann ebf85e
 		gvt_vgpu_err("timeout in invalidate ring (%d) tlb\n", ring_id);
Thomas Zimmermann ebf85e
 	else
Thomas Zimmermann ebf85e
-		vgpu_vreg(vgpu, regs[ring_id]) = 0;
Thomas Zimmermann ebf85e
+		vgpu_vreg_t(vgpu, reg) = 0;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	intel_uncore_forcewake_put(dev_priv, fw);
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
@@ -257,11 +257,11 @@ static void switch_mocs(struct intel_vgp
Thomas Zimmermann ebf85e
 	offset.reg = regs[ring_id];
Thomas Zimmermann ebf85e
 	for (i = 0; i < 64; i++) {
Thomas Zimmermann ebf85e
 		if (pre)
Thomas Zimmermann ebf85e
-			old_v = vgpu_vreg(pre, offset);
Thomas Zimmermann ebf85e
+			old_v = vgpu_vreg_t(pre, offset);
Thomas Zimmermann ebf85e
 		else
Thomas Zimmermann ebf85e
 			old_v = gen9_render_mocs.control_table[ring_id][i];
Thomas Zimmermann ebf85e
 		if (next)
Thomas Zimmermann ebf85e
-			new_v = vgpu_vreg(next, offset);
Thomas Zimmermann ebf85e
+			new_v = vgpu_vreg_t(next, offset);
Thomas Zimmermann ebf85e
 		else
Thomas Zimmermann ebf85e
 			new_v = gen9_render_mocs.control_table[ring_id][i];
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
@@ -275,11 +275,11 @@ static void switch_mocs(struct intel_vgp
Thomas Zimmermann ebf85e
 		l3_offset.reg = 0xb020;
Thomas Zimmermann ebf85e
 		for (i = 0; i < 32; i++) {
Thomas Zimmermann ebf85e
 			if (pre)
Thomas Zimmermann ebf85e
-				old_v = vgpu_vreg(pre, l3_offset);
Thomas Zimmermann ebf85e
+				old_v = vgpu_vreg_t(pre, l3_offset);
Thomas Zimmermann ebf85e
 			else
Thomas Zimmermann ebf85e
 				old_v = gen9_render_mocs.l3cc_table[i];
Thomas Zimmermann ebf85e
 			if (next)
Thomas Zimmermann ebf85e
-				new_v = vgpu_vreg(next, l3_offset);
Thomas Zimmermann ebf85e
+				new_v = vgpu_vreg_t(next, l3_offset);
Thomas Zimmermann ebf85e
 			else
Thomas Zimmermann ebf85e
 				new_v = gen9_render_mocs.l3cc_table[i];
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
@@ -316,11 +316,11 @@ static void switch_mmio(struct intel_vgp
Thomas Zimmermann ebf85e
 			continue;
Thomas Zimmermann ebf85e
 		// save
Thomas Zimmermann ebf85e
 		if (pre) {
Thomas Zimmermann ebf85e
-			vgpu_vreg(pre, mmio->reg) = I915_READ_FW(mmio->reg);
Thomas Zimmermann ebf85e
+			vgpu_vreg_t(pre, mmio->reg) = I915_READ_FW(mmio->reg);
Thomas Zimmermann ebf85e
 			if (mmio->mask)
Thomas Zimmermann ebf85e
-				vgpu_vreg(pre, mmio->reg) &=
Thomas Zimmermann ebf85e
+				vgpu_vreg_t(pre, mmio->reg) &=
Thomas Zimmermann ebf85e
 						~(mmio->mask << 16);
Thomas Zimmermann ebf85e
-			old_v = vgpu_vreg(pre, mmio->reg);
Thomas Zimmermann ebf85e
+			old_v = vgpu_vreg_t(pre, mmio->reg);
Thomas Zimmermann ebf85e
 		} else
Thomas Zimmermann ebf85e
 			old_v = mmio->value = I915_READ_FW(mmio->reg);
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
@@ -340,10 +340,10 @@ static void switch_mmio(struct intel_vgp
Thomas Zimmermann ebf85e
 				continue;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 			if (mmio->mask)
Thomas Zimmermann ebf85e
-				new_v = vgpu_vreg(next, mmio->reg) |
Thomas Zimmermann ebf85e
+				new_v = vgpu_vreg_t(next, mmio->reg) |
Thomas Zimmermann ebf85e
 							(mmio->mask << 16);
Thomas Zimmermann ebf85e
 			else
Thomas Zimmermann ebf85e
-				new_v = vgpu_vreg(next, mmio->reg);
Thomas Zimmermann ebf85e
+				new_v = vgpu_vreg_t(next, mmio->reg);
Thomas Zimmermann ebf85e
 		} else {
Thomas Zimmermann ebf85e
 			if (mmio->in_context)
Thomas Zimmermann ebf85e
 				continue;
Thomas Zimmermann ebf85e
--- a/drivers/gpu/drm/i915/gvt/vgpu.c
Thomas Zimmermann ebf85e
+++ b/drivers/gpu/drm/i915/gvt/vgpu.c
Thomas Zimmermann ebf85e
@@ -38,25 +38,25 @@
Thomas Zimmermann ebf85e
 void populate_pvinfo_page(struct intel_vgpu *vgpu)
Thomas Zimmermann ebf85e
 {
Thomas Zimmermann ebf85e
 	/* setup the ballooning information */
Thomas Zimmermann ebf85e
-	vgpu_vreg64(vgpu, vgtif_reg(magic)) = VGT_MAGIC;
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, vgtif_reg(version_major)) = 1;
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, vgtif_reg(version_minor)) = 0;
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, vgtif_reg(display_ready)) = 0;
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, vgtif_reg(vgt_id)) = vgpu->id;
Thomas Zimmermann ebf85e
+	vgpu_vreg64_t(vgpu, vgtif_reg(magic)) = VGT_MAGIC;
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, vgtif_reg(version_major)) = 1;
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, vgtif_reg(version_minor)) = 0;
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, vgtif_reg(display_ready)) = 0;
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, vgtif_reg(vgt_id)) = vgpu->id;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, vgtif_reg(vgt_caps)) = VGT_CAPS_FULL_48BIT_PPGTT;
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, vgtif_reg(vgt_caps)) |= VGT_CAPS_HWSP_EMULATION;
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, vgtif_reg(vgt_caps)) = VGT_CAPS_FULL_48BIT_PPGTT;
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, vgtif_reg(vgt_caps)) |= VGT_CAPS_HWSP_EMULATION;
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, vgtif_reg(avail_rs.mappable_gmadr.base)) =
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, vgtif_reg(avail_rs.mappable_gmadr.base)) =
Thomas Zimmermann ebf85e
 		vgpu_aperture_gmadr_base(vgpu);
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, vgtif_reg(avail_rs.mappable_gmadr.size)) =
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, vgtif_reg(avail_rs.mappable_gmadr.size)) =
Thomas Zimmermann ebf85e
 		vgpu_aperture_sz(vgpu);
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, vgtif_reg(avail_rs.nonmappable_gmadr.base)) =
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, vgtif_reg(avail_rs.nonmappable_gmadr.base)) =
Thomas Zimmermann ebf85e
 		vgpu_hidden_gmadr_base(vgpu);
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, vgtif_reg(avail_rs.nonmappable_gmadr.size)) =
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, vgtif_reg(avail_rs.nonmappable_gmadr.size)) =
Thomas Zimmermann ebf85e
 		vgpu_hidden_sz(vgpu);
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
-	vgpu_vreg(vgpu, vgtif_reg(avail_rs.fence_num)) = vgpu_fence_sz(vgpu);
Thomas Zimmermann ebf85e
+	vgpu_vreg_t(vgpu, vgtif_reg(avail_rs.fence_num)) = vgpu_fence_sz(vgpu);
Thomas Zimmermann ebf85e
 
Thomas Zimmermann ebf85e
 	gvt_dbg_core("Populate PVINFO PAGE for vGPU %d\n", vgpu->id);
Thomas Zimmermann ebf85e
 	gvt_dbg_core("aperture base [GMADR] 0x%llx size 0x%llx\n",