linux_dsm_epyc7002/drivers/gpu/drm/i915/gvt
Weinan Li cd7e61b93d drm/i915/gvt: init mmio by lri command in vgpu inhibit context
There is one issue relates to Coarse Power Gating(CPG) on KBL NUC in GVT-g,
vgpu can't get the correct default context by updating the registers before
inhibit context submission. It always get back the hardware default value
unless the inhibit context submission happened before the 1st time
forcewake put. With this wrong default context, vgpu will run with
incorrect state and meet unknown issues.

The solution is initialize these mmios by adding lri command in ring buffer
of the inhibit context, then gpu hardware has no chance to go down RC6 when
lri commands are right being executed, and then vgpu can get correct
default context for further use.

v3:
- fix code fault, use 'for' to loop through mmio render list(Zhenyu)

v4:
- save the count of engine mmio need to be restored for inhibit context and
  refine some comments. (Kevin)

v5:
- code rebase

Cc: Kevin Tian <kevin.tian@intel.com>
Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Weinan Li <weinan.z.li@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
2018-03-06 13:19:23 +08:00
..
aperture_gm.c drm/i915: Add interface to reserve fence registers for vGPU 2017-09-04 16:34:59 +01:00
cfg_space.c drm/i915/gvt: Fix aperture read/write emulation when enable x-no-mmap=on 2018-02-06 11:41:27 -08:00
cmd_parser.c Linux 4.15-rc8 2018-01-18 09:32:15 +10:00
cmd_parser.h drm/i915/gvt: Factor out scan and shadow from workload dispatch 2017-08-10 10:26:06 +08:00
debug.h drm/i915/gvt: Make gvt_vgpu_err use pr_err 2017-11-16 11:48:34 +08:00
debugfs.c drm/i915/gvt: Add new debugfs tool mmio_diff 2017-11-16 11:48:32 +08:00
display.c drm/i915/gvt: cleanup usage for typed mmio reg vs. offset 2017-12-22 16:33:03 +08:00
display.h drm/i915/gvt: Add framebuffer decoder support 2017-12-04 11:24:33 +08:00
dmabuf.c Merge tag 'drm-intel-next-2018-02-21' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2018-03-01 14:07:22 +10:00
dmabuf.h drm/i915/gvt: Dmabuf support for GVT-g 2017-12-04 11:24:33 +08:00
edid.c drm/i915/gvt: cleanup usage for typed mmio reg vs. offset 2017-12-22 16:33:03 +08:00
edid.h
execlist.c drm/i915/gvt: refine intel_vgpu_submission_ops as per engine ops 2018-02-06 11:40:59 -08:00
execlist.h drm/i915/gvt: Make elsp_dwords in the right order 2017-11-16 11:46:07 +08:00
fb_decoder.c drm/i915/gvt: cleanup usage for typed mmio reg vs. offset 2017-12-22 16:33:03 +08:00
fb_decoder.h drm/i915/gvt: Add framebuffer decoder support 2017-12-04 11:24:33 +08:00
firmware.c drm/i915/gvt: Add mmio iterator intel_gvt_for_each_tracked_mmio() 2017-11-16 11:48:32 +08:00
gtt.c drm/i915/gvt: Define PTE addr mask with GENMASK_ULL 2018-03-06 13:19:21 +08:00
gtt.h drm/i915/gvt: Manage shadow pages with radix tree 2018-03-06 13:19:21 +08:00
gvt.c drm/i915/gvt: Provide generic page_track infrastructure for write-protected page 2018-03-06 13:19:20 +08:00
gvt.h drm/i915/gvt: init mmio by lri command in vgpu inhibit context 2018-03-06 13:19:23 +08:00
handlers.c drm/i915/gvt: Factor out intel_vgpu_{get, put}_ppgtt_mm interface 2018-03-06 13:19:16 +08:00
hypercall.h drm/i915/gvt: Rename mpt api {set, unset}_wp_page to {enable, disable}_page_track 2018-03-06 13:19:19 +08:00
interrupt.c drm/i915/gvt: Change flood gvt dmesg into trace 2017-06-08 13:59:16 +08:00
interrupt.h
kvmgt.c drm/i915/gvt: Rename mpt api {set, unset}_wp_page to {enable, disable}_page_track 2018-03-06 13:19:19 +08:00
Makefile drm/i915/gvt: Provide generic page_track infrastructure for write-protected page 2018-03-06 13:19:20 +08:00
mmio_context.c drm/i915/gvt: init mmio by lri command in vgpu inhibit context 2018-03-06 13:19:23 +08:00
mmio_context.h drm/i915/gvt: init mmio by lri command in vgpu inhibit context 2018-03-06 13:19:23 +08:00
mmio.c drm/i915/gvt: Rename ggtt related functions to be more specific 2018-03-06 13:19:16 +08:00
mmio.h drm/i915/gvt: cleanup usage for typed mmio reg vs. offset 2017-12-22 16:33:03 +08:00
mpt.h drm/i915/gvt: Don't extend page_track to mpt layer 2018-03-06 13:19:20 +08:00
opregion.c drm/i915/gvt: Use KVM r/w to access guest opregion 2018-02-06 11:41:34 -08:00
page_track.c drm/i915/gvt: Provide generic page_track infrastructure for write-protected page 2018-03-06 13:19:20 +08:00
page_track.h drm/i915/gvt: Provide generic page_track infrastructure for write-protected page 2018-03-06 13:19:20 +08:00
reg.h drm/i915/gvt: Use I915_GTT_PAGE_SIZE 2017-11-16 11:48:22 +08:00
sched_policy.c drm/i915/gvt: only reset execlist state of one engine during VM engine reset 2018-02-06 11:41:16 -08:00
sched_policy.h drm/i915/gvt: Kick scheduler when new workload queued 2017-12-04 11:24:35 +08:00
scheduler.c drm/i915/gvt: init mmio by lri command in vgpu inhibit context 2018-03-06 13:19:23 +08:00
scheduler.h Merge drm-next into drm-intel-next-queued (this time for real) 2018-03-01 11:14:24 +02:00
trace_points.c
trace.h drm/i915/gvt: Rework shadow page management code 2018-03-06 13:19:18 +08:00
vgpu.c drm/i915/gvt: Provide generic page_track infrastructure for write-protected page 2018-03-06 13:19:20 +08:00