drm/i915/gvt: update vreg on inhibit context lri command
authorHang Yuan <hang.yuan@linux.intel.com>
Tue, 3 Jul 2018 09:31:17 +0000 (17:31 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Thu, 5 Jul 2018 07:33:37 +0000 (15:33 +0800)
commit6cef21a1964933b77c855c55bac2723053cc676d
treebdf2e1fe62316d01c8fb44d1bae88e0b87cdb583
parenta4cae23cc05ccec749c2fc70fa9d8cda7c582319
drm/i915/gvt: update vreg on inhibit context lri command

Commit cd7e 61b9"init mmio by lri command in vgpu inhibit context"
initializes registers saved/restored in context with its vreg value
through lri command in ring buffer. It relies on vreg got updated
on every guest access. There is a case found that Linux guest uses
lri command in inhibit-ctx to update the register. This patch adds
vreg update on this case.

v2: move mmio_attribute functions to gvt.h (Zhenyu)
v3: use mask_mmio_write in vreg update
v4: refine codes and add more comments (Zhenyu)

Fixes: cd7e61b9("drm/i915/gvt: init mmio by lri command in vgpu inhibit context")
Signed-off-by: Hang Yuan <hang.yuan@linux.intel.com>
Signed-off-by: Weinan Li <weinan.z.li@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
drivers/gpu/drm/i915/gvt/cmd_parser.c
drivers/gpu/drm/i915/gvt/gvt.h
drivers/gpu/drm/i915/gvt/handlers.c
drivers/gpu/drm/i915/gvt/mmio.h
drivers/gpu/drm/i915/gvt/mmio_context.c