aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTina Zhang <tina.zhang@intel.com>2020-03-05 21:15:59 +0800
committerZhenyu Wang <zhenyuw@linux.intel.com>2020-03-06 09:35:30 +0800
commit2fa7e15c5f466fdd0c0b196b1dc4a65d191efd96 (patch)
tree081c25efab36a3f4ae9de2bb49f5ee7fc2be0221
parentdrm/i915/gvt: Fix unnecessary schedule timer when no vGPU exits (diff)
downloadlinux-dev-2fa7e15c5f466fdd0c0b196b1dc4a65d191efd96.tar.xz
linux-dev-2fa7e15c5f466fdd0c0b196b1dc4a65d191efd96.zip
drm/i915/gvt: Fix emulated vbt size issue
The emulated vbt doesn't tell its size correctly. According to the intel_vbt_defs.h, vbt_header.vbt_size should the size of VBT (VBT Header, BDB Header and data blocks), and bdb_header.bdb_size should be the size of BDB (BDB Header and data blocks). This patch fixes the issue and lets vbt provided by GVT-g pass the guest i915's sanity test. v2: refine the commit message. (Zhenyu) Signed-off-by: Tina Zhang <tina.zhang@intel.com> Reviewed-by: Zhenyu Wang <zhenyuw@linux.intel.com> Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20200305131600.29640-1-tina.zhang@intel.com
-rw-r--r--drivers/gpu/drm/i915/gvt/opregion.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/gvt/opregion.c b/drivers/gpu/drm/i915/gvt/opregion.c
index 867e7629025b..33569b910ed5 100644
--- a/drivers/gpu/drm/i915/gvt/opregion.c
+++ b/drivers/gpu/drm/i915/gvt/opregion.c
@@ -147,15 +147,14 @@ static void virt_vbt_generation(struct vbt *v)
/* there's features depending on version! */
v->header.version = 155;
v->header.header_size = sizeof(v->header);
- v->header.vbt_size = sizeof(struct vbt) - sizeof(v->header);
+ v->header.vbt_size = sizeof(struct vbt);
v->header.bdb_offset = offsetof(struct vbt, bdb_header);
strcpy(&v->bdb_header.signature[0], "BIOS_DATA_BLOCK");
v->bdb_header.version = 186; /* child_dev_size = 33 */
v->bdb_header.header_size = sizeof(v->bdb_header);
- v->bdb_header.bdb_size = sizeof(struct vbt) - sizeof(struct vbt_header)
- - sizeof(struct bdb_header);
+ v->bdb_header.bdb_size = sizeof(struct vbt) - sizeof(struct vbt_header);
/* general features */
v->general_features_header.id = BDB_GENERAL_FEATURES;