clear-pkgs-linux-iot-lts2018/0589-drm-i915-gvt-Add-the-s...

59 lines
2.0 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Zhao Yakui <yakui.zhao@intel.com>
Date: Thu, 22 Mar 2018 17:01:07 +0800
Subject: [PATCH] drm/i915/gvt: Add the support of HUC_STATUS2 reg emulation
for Guest VGPU
The HUC_STATUS2 reg is used to indicate whether the Huc FW is loaded. Only
when it is loaded successfully, the user-space driver on guest can use the
Huc to do the expected operation. This provides the support of HUC_STATUS2
trap for guest VGPU.
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
---
drivers/gpu/drm/i915/gvt/handlers.c | 2 ++
drivers/gpu/drm/i915/gvt/mmio.c | 7 +++++++
2 files changed, 9 insertions(+)
diff --git a/drivers/gpu/drm/i915/gvt/handlers.c b/drivers/gpu/drm/i915/gvt/handlers.c
index 495d6a298924..91fe0a44367d 100644
--- a/drivers/gpu/drm/i915/gvt/handlers.c
+++ b/drivers/gpu/drm/i915/gvt/handlers.c
@@ -3017,6 +3017,8 @@ static int init_skl_mmio_info(struct intel_gvt *gvt)
MMIO_D(_MMIO(0x4ab8), D_KBL);
MMIO_D(_MMIO(0x2248), D_KBL | D_SKL);
+ MMIO_D(HUC_STATUS2, D_SKL_PLUS);
+
return 0;
}
diff --git a/drivers/gpu/drm/i915/gvt/mmio.c b/drivers/gpu/drm/i915/gvt/mmio.c
index 4149eae235b5..878a8a1f5ff5 100644
--- a/drivers/gpu/drm/i915/gvt/mmio.c
+++ b/drivers/gpu/drm/i915/gvt/mmio.c
@@ -235,6 +235,7 @@ void intel_vgpu_reset_mmio(struct intel_vgpu *vgpu, bool dmlr)
struct intel_gvt *gvt = vgpu->gvt;
const struct intel_gvt_device_info *info = &gvt->device_info;
void *mmio = gvt->firmware.mmio;
+ struct drm_i915_private *dev_priv = gvt->dev_priv;
if (dmlr) {
memcpy(vgpu->mmio.vreg, mmio, info->mmio_size);
@@ -291,6 +292,12 @@ void intel_vgpu_reset_mmio(struct intel_vgpu *vgpu, bool dmlr)
vgpu_vreg(vgpu, 0xe681c) = 1 << 17;
vgpu_vreg(vgpu, 0xe6c04) = 3;
vgpu_vreg(vgpu, 0xe6e1c) = 0x2f << 16;
+
+ if (HAS_HUC_UCODE(dev_priv)) {
+ mmio_hw_access_pre(dev_priv);
+ vgpu_vreg_t(vgpu, HUC_STATUS2) = I915_READ(HUC_STATUS2);
+ mmio_hw_access_post(dev_priv);
+ }
}
/**
--
https://clearlinux.org