clear-pkgs-linux-iot-lts2018/1243-drm-i915-gvt-don-t-upd...

34 lines
1.3 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Liu Xinyun <xinyun.liu@intel.com>
Date: Thu, 31 Oct 2019 19:44:40 +0800
Subject: [PATCH] drm/i915/gvt: don't update invalid surface address
Normally 0 belongs to SOS, if plane/pipe is not disabled, SOS screen
content will be shown on the display screen which is assigned to UOS
Tracked-On: projectacrn/acrn-hypervisor#3979
Signed-off-by: Liu Xinyun <xinyun.liu@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
---
drivers/gpu/drm/i915/gvt/handlers.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/gvt/handlers.c b/drivers/gpu/drm/i915/gvt/handlers.c
index 9edf8c456dbb..b1cf1ef40ce5 100644
--- a/drivers/gpu/drm/i915/gvt/handlers.c
+++ b/drivers/gpu/drm/i915/gvt/handlers.c
@@ -2975,7 +2975,8 @@ static int skl_plane_surf_write(struct intel_vgpu *vgpu, unsigned int offset,
vgpu_vreg_t(vgpu, reg_1ac) = vgpu_vreg(vgpu, offset);
if ((vgpu_vreg_t(vgpu, PIPECONF(pipe)) & I965_PIPECONF_ACTIVE) &&
- (vgpu->gvt->pipe_info[pipe].plane_owner[plane] == vgpu->id)) {
+ (vgpu->gvt->pipe_info[pipe].plane_owner[plane] == vgpu->id) &&
+ (*(u32 *)p_data != 0)) {
I915_WRITE(_MMIO(offset), vgpu_vreg(vgpu, offset));
}
--
https://clearlinux.org