|
@@ -244,6 +244,34 @@ void intel_vgpu_reset_mmio(struct intel_vgpu *vgpu, bool dmlr)
|
|
|
|
|
|
/* set the bit 0:2(Core C-State ) to C0 */
|
|
|
vgpu_vreg_t(vgpu, GEN6_GT_CORE_STATUS) = 0;
|
|
|
+
|
|
|
+ if (IS_BROXTON(vgpu->gvt->dev_priv)) {
|
|
|
+ vgpu_vreg_t(vgpu, BXT_P_CR_GT_DISP_PWRON) &=
|
|
|
+ ~(BIT(0) | BIT(1));
|
|
|
+ vgpu_vreg_t(vgpu, BXT_PORT_CL1CM_DW0(DPIO_PHY0)) &=
|
|
|
+ ~PHY_POWER_GOOD;
|
|
|
+ vgpu_vreg_t(vgpu, BXT_PORT_CL1CM_DW0(DPIO_PHY1)) &=
|
|
|
+ ~PHY_POWER_GOOD;
|
|
|
+ vgpu_vreg_t(vgpu, BXT_PHY_CTL_FAMILY(DPIO_PHY0)) &=
|
|
|
+ ~BIT(30);
|
|
|
+ vgpu_vreg_t(vgpu, BXT_PHY_CTL_FAMILY(DPIO_PHY1)) &=
|
|
|
+ ~BIT(30);
|
|
|
+ vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_A)) &=
|
|
|
+ ~BXT_PHY_LANE_ENABLED;
|
|
|
+ vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_A)) |=
|
|
|
+ BXT_PHY_CMNLANE_POWERDOWN_ACK |
|
|
|
+ BXT_PHY_LANE_POWERDOWN_ACK;
|
|
|
+ vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_B)) &=
|
|
|
+ ~BXT_PHY_LANE_ENABLED;
|
|
|
+ vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_B)) |=
|
|
|
+ BXT_PHY_CMNLANE_POWERDOWN_ACK |
|
|
|
+ BXT_PHY_LANE_POWERDOWN_ACK;
|
|
|
+ vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_C)) &=
|
|
|
+ ~BXT_PHY_LANE_ENABLED;
|
|
|
+ vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_C)) |=
|
|
|
+ BXT_PHY_CMNLANE_POWERDOWN_ACK |
|
|
|
+ BXT_PHY_LANE_POWERDOWN_ACK;
|
|
|
+ }
|
|
|
} else {
|
|
|
#define GVT_GEN8_MMIO_RESET_OFFSET (0x44200)
|
|
|
/* only reset the engine related, so starting with 0x44200
|