diff options
| -rw-r--r-- | drivers/gpu/drm/i915/gvt/handlers.c | 14 |
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. |
