aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/gvt/handlers.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/gvt/handlers.c b/drivers/gpu/drm/i915/gvt/handlers.c
index b4fc7f95cbe1..edb1416585f5 100644
--- a/drivers/gpu/drm/i915/gvt/handlers.c
+++ b/drivers/gpu/drm/i915/gvt/handlers.c
@@ -1692,8 +1692,22 @@ static int ring_mode_mmio_write(struct intel_vgpu *vgpu, unsigned int offset,
1692 bool enable_execlist; 1692 bool enable_execlist;
1693 int ret; 1693 int ret;
1694 1694
1695 (*(u32 *)p_data) &= ~_MASKED_BIT_ENABLE(1);
1696 if (IS_COFFEELAKE(vgpu->gvt->dev_priv))
1697 (*(u32 *)p_data) &= ~_MASKED_BIT_ENABLE(2);
1695 write_vreg(vgpu, offset, p_data, bytes); 1698 write_vreg(vgpu, offset, p_data, bytes);
1696 1699
1700 if (data & _MASKED_BIT_ENABLE(1)) {
1701 enter_failsafe_mode(vgpu, GVT_FAILSAFE_UNSUPPORTED_GUEST);
1702 return 0;
1703 }
1704
1705 if (IS_COFFEELAKE(vgpu->gvt->dev_priv) &&
1706 data & _MASKED_BIT_ENABLE(2)) {
1707 enter_failsafe_mode(vgpu, GVT_FAILSAFE_UNSUPPORTED_GUEST);
1708 return 0;
1709 }
1710
1697 /* when PPGTT mode enabled, we will check if guest has called 1711 /* when PPGTT mode enabled, we will check if guest has called
1698 * pvinfo, if not, we will treat this guest as non-gvtg-aware 1712 * pvinfo, if not, we will treat this guest as non-gvtg-aware
1699 * guest, and stop emulating its cfg space, mmio, gtt, etc. 1713 * guest, and stop emulating its cfg space, mmio, gtt, etc.