linux_dsm_epyc7002/drivers/gpu/drm/i915/gvt
Tina Zhang 3eb55e6f75 drm/i915/gvt: Separate display reset from ALL_ENGINES reset
ALL_ENGINES reset doesn't clobber display with the current gvt-g
supported platforms. Thus ALL_ENGINES reset shouldn't reset the
display engine registers emulated by gvt-g.

This fixes guest warning like

[ 14.622026] [drm] Initialized i915 1.6.0 20200114 for 0000:00:03.0 on minor 0
[ 14.967917] fbcon: i915drmfb (fb0) is primary device
[ 25.100188] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] E RROR [CRTC:51:pipe A] flip_done timed out
[ 25.100860] -----------[ cut here ]-----------
[ 25.100861] pll on state mismatch (expected 0, found 1)
[ 25.101024] WARNING: CPU: 1 PID: 30 at drivers/gpu/drm/i915/display/intel_dis play.c:14382 verify_single_dpll_state.isra.115+0x28f/0x320 [i915]
[ 25.101025] Modules linked in: intel_rapl_msr intel_rapl_common kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel i915 aesni_intel cr ypto_simd cryptd glue_helper cec rc_core video drm_kms_helper joydev drm input_l eds i2c_algo_bit serio_raw fb_sys_fops syscopyarea sysfillrect sysimgblt mac_hid qemu_fw_cfg sch_fq_codel parport_pc ppdev lp parport ip_tables x_tables autofs4 e1000 psmouse i2c_piix4 pata_acpi floppy
[ 25.101052] CPU: 1 PID: 30 Comm: kworker/u4:1 Not tainted 5.5.0+ #1
[ 25.101053] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1 .12.1-0-ga5cab58 04/01/2014
[ 25.101055] Workqueue: events_unbound async_run_entry_fn
[ 25.101092] RIP: 0010:verify_single_dpll_state.isra.115+0x28f/0x320 [i915]
[ 25.101093] Code: e0 d9 ff e9 a3 fe ff ff 80 3d e9 c2 11 00 00 44 89 f6 48 c7 c7 c0 9d 88 c0 75 3b e8 eb df d9 ff e9 c7 fe ff ff e8 d1 e0 ae c4 <0f> 0b e9 7a fe ff ff 80 3d c0 c2 11 00 00 8d 71 41 89 c2 48 c7 c7
[ 25.101093] RSP: 0018:ffffb1de80107878 EFLAGS: 00010286
[ 25.101094] RAX: 0000000000000000 RBX: ffffb1de80107884 RCX: 0000000000000007
[ 25.101095] RDX: 0000000000000000 RSI: 0000000000000002 RDI: ffff94fdfdd19740
[ 25.101095] RBP: ffffb1de80107938 R08: 0000000d6bfdc7b4 R09: 000000000000002b
[ 25.101096] R10: ffff94fdf82dc000 R11: 0000000000000225 R12: 00000000000001f8
[ 25.101096] R13: ffff94fdb3ca6a90 R14: ffff94fdb3ca0000 R15: 0000000000000000
[ 25.101097] FS: 0000000000000000(0000) GS:ffff94fdfdd00000(0000) knlGS:00000 00000000000
[ 25.101098] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 25.101098] CR2: 00007fbc3e2be9c8 CR3: 000000003339a003 CR4: 0000000000360ee0
[ 25.101101] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 25.101101] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 25.101102] Call Trace:
[ 25.101139] intel_atomic_commit_tail+0xde4/0x1520 [i915]
[ 25.101141] ? flush_workqueue_prep_pwqs+0xfa/0x130
[ 25.101142] ? flush_workqueue+0x198/0x3c0
[ 25.101174] intel_atomic_commit+0x2ad/0x320 [i915]
[ 25.101209] drm_atomic_commit+0x4a/0x50 [drm]
[ 25.101220] drm_client_modeset_commit_atomic+0x1c4/0x200 [drm]
[ 25.101231] drm_client_modeset_commit_force+0x47/0x170 [drm]
[ 25.101250] drm_fb_helper_restore_fbdev_mode_unlocked+0x4e/0xa0 [drm_kms_hel per]
[ 25.101255] drm_fb_helper_set_par+0x2d/0x60 [drm_kms_helper]
[ 25.101287] intel_fbdev_set_par+0x1a/0x40 [i915]
[ 25.101289] ? con_is_visible+0x2e/0x60
[ 25.101290] fbcon_init+0x378/0x600
[ 25.101292] visual_init+0xd5/0x130
[ 25.101296] do_bind_con_driver+0x217/0x430
[ 25.101297] do_take_over_console+0x7d/0x1b0
[ 25.101298] do_fbcon_takeover+0x5c/0xb0
[ 25.101299] fbcon_fb_registered+0x199/0x1a0
[ 25.101301] register_framebuffer+0x22c/0x330
[ 25.101306] __drm_fb_helper_initial_config_and_unlock+0x31a/0x520 [drm_kms_h elper]
[ 25.101311] drm_fb_helper_initial_config+0x35/0x40 [drm_kms_helper]
[ 25.101341] intel_fbdev_initial_config+0x18/0x30 [i915]
[ 25.101342] async_run_entry_fn+0x3c/0x150
[ 25.101343] process_one_work+0x1fd/0x3f0
[ 25.101344] worker_thread+0x34/0x410
[ 25.101346] kthread+0x121/0x140
[ 25.101346] ? process_one_work+0x3f0/0x3f0
[ 25.101347] ? kthread_park+0x90/0x90
[ 25.101350] ret_from_fork+0x35/0x40
[ 25.101351] --[ end trace b5b47d44cd998ba1 ]--

Fixes: 6294b61ba7 ("drm/i915/gvt: add missing display part reset for vGPU reset")
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/20200221023234.28635-1-tina.zhang@intel.com
2020-02-24 17:55:27 +08:00
..
aperture_gm.c drm/i915: Store i915_ggtt as the backpointer on fence registers 2019-10-16 19:41:36 +01:00
cfg_space.c
cmd_parser.c drm/i915/gvt: Fix cmd length check for MI_ATOMIC 2019-12-02 11:06:49 +08:00
cmd_parser.h
debug.h
debugfs.c drm/i915/gvt: no need to check return value of debugfs_create functions 2019-08-13 17:55:06 +08:00
display.c
display.h
dmabuf.c drm/i915/gvt: Pin vgpu dma address before using 2019-12-13 11:24:01 +08:00
dmabuf.h
edid.c
edid.h
execlist.c drm/i915: Make for_each_engine_masked work on intel_gt 2019-10-18 00:06:25 +01:00
execlist.h
fb_decoder.c drm/i915/gvt: Don't use ggtt_validdate_range() with size=0 2019-07-30 14:29:48 +08:00
fb_decoder.h
firmware.c drm/i915/gvt: fix high-order allocation failure on late load 2020-02-10 10:04:21 +08:00
gtt.c drm/i915/gvt: more locking for ppgtt mm LRU list 2020-02-10 10:04:34 +08:00
gtt.h drm/i915: Drop extern qualifiers from header function prototypes 2019-07-12 13:04:54 +01:00
gvt.c drm/i915/gvt: no need to check return value of debugfs_create functions 2019-08-13 17:55:06 +08:00
gvt.h drm/i915/gvt: factor out tlb and mocs register offset table 2019-08-13 17:55:06 +08:00
handlers.c drm/i915/gvt: Fix guest boot warning 2019-12-17 11:19:58 +08:00
hypercall.h drm/i915/gvt: Pin vgpu dma address before using 2019-12-13 11:24:01 +08:00
interrupt.c drm/i915/gvt: Fix typo of VBLANK_TIMER_PERIOD 2019-08-13 17:54:41 +08:00
interrupt.h
kvmgt.c drm/i915/gvt: Pin vgpu dma address before using 2019-12-13 11:24:01 +08:00
Makefile
mmio_context.c drm/i915/gt: Split intel_ring_submission 2019-10-24 12:14:21 +01:00
mmio_context.h
mmio.c
mmio.h
mpt.h drm/i915/gvt: Pin vgpu dma address before using 2019-12-13 11:24:01 +08:00
opregion.c drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
page_track.c
page_track.h
reg.h drm/i915/gvt: save RING_HEAD into vreg when vgpu switched out 2019-06-03 13:18:36 +08:00
sched_policy.c drm/i915: update rpm_get/put to use the rpm structure 2019-06-14 15:58:33 +01:00
sched_policy.h
scheduler.c drm/i915: drop lrc header page 2019-10-31 16:47:22 +00:00
scheduler.h drm/i915/gvt: save RING_HEAD into vreg when vgpu switched out 2019-06-03 13:18:36 +08:00
trace_points.c drm/i915/gvt: remove duplicate include of trace.h 2019-07-30 14:26:30 +08:00
trace.h
vgpu.c drm/i915/gvt: Separate display reset from ALL_ENGINES reset 2020-02-24 17:55:27 +08:00