Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'drm-intel-next-fixes-2018-12-27' of git://anongit.freedesktop.org/drm/drm-intel into drm-next

GVT fixes for v4.21-rc1

Signed-off-by: Dave Airlie <airlied@redhat.com>

From: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/87imzfwh73.fsf@intel.com

+43 -5
+3 -3
drivers/gpu/drm/i915/gvt/cmd_parser.c
··· 1900 1900 1901 1901 {"MI_URB_CLEAR", OP_MI_URB_CLEAR, F_LEN_VAR, R_RCS, D_ALL, 0, 8, NULL}, 1902 1902 1903 - {"ME_SEMAPHORE_SIGNAL", OP_MI_SEMAPHORE_SIGNAL, F_LEN_VAR, R_ALL, 1903 + {"MI_SEMAPHORE_SIGNAL", OP_MI_SEMAPHORE_SIGNAL, F_LEN_VAR, R_ALL, 1904 1904 D_BDW_PLUS, 0, 8, NULL}, 1905 1905 1906 - {"ME_SEMAPHORE_WAIT", OP_MI_SEMAPHORE_WAIT, F_LEN_VAR, R_ALL, D_BDW_PLUS, 1907 - ADDR_FIX_1(2), 8, cmd_handler_mi_semaphore_wait}, 1906 + {"MI_SEMAPHORE_WAIT", OP_MI_SEMAPHORE_WAIT, F_LEN_VAR, R_ALL, 1907 + D_BDW_PLUS, ADDR_FIX_1(2), 8, cmd_handler_mi_semaphore_wait}, 1908 1908 1909 1909 {"MI_STORE_DATA_IMM", OP_MI_STORE_DATA_IMM, F_LEN_VAR, R_ALL, D_BDW_PLUS, 1910 1910 ADDR_FIX_1(1), 10, cmd_handler_mi_store_data_imm},
+1 -1
drivers/gpu/drm/i915/gvt/gvt.c
··· 437 437 438 438 ret = intel_gvt_debugfs_init(gvt); 439 439 if (ret) 440 - gvt_err("debugfs registeration failed, go on.\n"); 440 + gvt_err("debugfs registration failed, go on.\n"); 441 441 442 442 gvt_dbg_core("gvt device initialization is done\n"); 443 443 dev_priv->gvt = gvt;
+4
drivers/gpu/drm/i915/gvt/gvt.h
··· 159 159 struct kmem_cache *workloads; 160 160 atomic_t running_workload_num; 161 161 struct i915_gem_context *shadow_ctx; 162 + union { 163 + u64 i915_context_pml4; 164 + u64 i915_context_pdps[GEN8_3LVL_PDPES]; 165 + }; 162 166 DECLARE_BITMAP(shadow_ctx_desc_updated, I915_NUM_ENGINES); 163 167 DECLARE_BITMAP(tlb_handle_pending, I915_NUM_ENGINES); 164 168 void *ring_scan_buffer[I915_NUM_ENGINES];
+1
drivers/gpu/drm/i915/gvt/handlers.c
··· 475 475 _MMIO(0x7704), 476 476 _MMIO(0x7708), 477 477 _MMIO(0x770c), 478 + _MMIO(0x83a8), 478 479 _MMIO(0xb110), 479 480 GEN8_L3SQCREG4,//_MMIO(0xb118) 480 481 _MMIO(0xe100),
+1 -1
drivers/gpu/drm/i915/gvt/interrupt.c
··· 126 126 [FDI_RX_INTERRUPTS_TRANSCODER_C] = "FDI RX Interrupts Combined C", 127 127 [AUDIO_CP_CHANGE_TRANSCODER_C] = "Audio CP Change Transcoder C", 128 128 [AUDIO_CP_REQUEST_TRANSCODER_C] = "Audio CP Request Transcoder C", 129 - [ERR_AND_DBG] = "South Error and Debug Interupts Combined", 129 + [ERR_AND_DBG] = "South Error and Debug Interrupts Combined", 130 130 [GMBUS] = "Gmbus", 131 131 [SDVO_B_HOTPLUG] = "SDVO B hotplug", 132 132 [CRT_HOTPLUG] = "CRT Hotplug",
+33
drivers/gpu/drm/i915/gvt/scheduler.c
··· 1079 1079 return ret; 1080 1080 } 1081 1081 1082 + static void 1083 + i915_context_ppgtt_root_restore(struct intel_vgpu_submission *s) 1084 + { 1085 + struct i915_hw_ppgtt *i915_ppgtt = s->shadow_ctx->ppgtt; 1086 + int i; 1087 + 1088 + if (i915_vm_is_48bit(&i915_ppgtt->vm)) 1089 + px_dma(&i915_ppgtt->pml4) = s->i915_context_pml4; 1090 + else { 1091 + for (i = 0; i < GEN8_3LVL_PDPES; i++) 1092 + px_dma(i915_ppgtt->pdp.page_directory[i]) = 1093 + s->i915_context_pdps[i]; 1094 + } 1095 + } 1096 + 1082 1097 /** 1083 1098 * intel_vgpu_clean_submission - free submission-related resource for vGPU 1084 1099 * @vgpu: a vGPU ··· 1106 1091 struct intel_vgpu_submission *s = &vgpu->submission; 1107 1092 1108 1093 intel_vgpu_select_submission_ops(vgpu, ALL_ENGINES, 0); 1094 + i915_context_ppgtt_root_restore(s); 1109 1095 i915_gem_context_put(s->shadow_ctx); 1110 1096 kmem_cache_destroy(s->workloads); 1111 1097 } ··· 1132 1116 s->ops->reset(vgpu, engine_mask); 1133 1117 } 1134 1118 1119 + static void 1120 + i915_context_ppgtt_root_save(struct intel_vgpu_submission *s) 1121 + { 1122 + struct i915_hw_ppgtt *i915_ppgtt = s->shadow_ctx->ppgtt; 1123 + int i; 1124 + 1125 + if (i915_vm_is_48bit(&i915_ppgtt->vm)) 1126 + s->i915_context_pml4 = px_dma(&i915_ppgtt->pml4); 1127 + else { 1128 + for (i = 0; i < GEN8_3LVL_PDPES; i++) 1129 + s->i915_context_pdps[i] = 1130 + px_dma(i915_ppgtt->pdp.page_directory[i]); 1131 + } 1132 + } 1133 + 1135 1134 /** 1136 1135 * intel_vgpu_setup_submission - setup submission-related resource for vGPU 1137 1136 * @vgpu: a vGPU ··· 1168 1137 &vgpu->gvt->dev_priv->drm); 1169 1138 if (IS_ERR(s->shadow_ctx)) 1170 1139 return PTR_ERR(s->shadow_ctx); 1140 + 1141 + i915_context_ppgtt_root_save(s); 1171 1142 1172 1143 bitmap_zero(s->shadow_ctx_desc_updated, I915_NUM_ENGINES); 1173 1144