forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/drivers/gpu/drm/i915/gvt/interrupt.c
....@@ -126,7 +126,7 @@
126126 [FDI_RX_INTERRUPTS_TRANSCODER_C] = "FDI RX Interrupts Combined C",
127127 [AUDIO_CP_CHANGE_TRANSCODER_C] = "Audio CP Change Transcoder C",
128128 [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",
130130 [GMBUS] = "Gmbus",
131131 [SDVO_B_HOTPLUG] = "SDVO B hotplug",
132132 [CRT_HOTPLUG] = "CRT Hotplug",
....@@ -245,6 +245,7 @@
245245 unsigned int reg, void *p_data, unsigned int bytes)
246246 {
247247 struct intel_gvt *gvt = vgpu->gvt;
248
+ struct drm_i915_private *i915 = gvt->gt->i915;
248249 struct intel_gvt_irq_ops *ops = gvt->irq.ops;
249250 struct intel_gvt_irq_info *info;
250251 u32 ier = *(u32 *)p_data;
....@@ -255,7 +256,7 @@
255256 vgpu_vreg(vgpu, reg) = ier;
256257
257258 info = regbase_to_irq_info(gvt, ier_to_regbase(reg));
258
- if (WARN_ON(!info))
259
+ if (drm_WARN_ON(&i915->drm, !info))
259260 return -EINVAL;
260261
261262 if (info->has_upstream_irq)
....@@ -282,6 +283,7 @@
282283 int intel_vgpu_reg_iir_handler(struct intel_vgpu *vgpu, unsigned int reg,
283284 void *p_data, unsigned int bytes)
284285 {
286
+ struct drm_i915_private *i915 = vgpu->gvt->gt->i915;
285287 struct intel_gvt_irq_info *info = regbase_to_irq_info(vgpu->gvt,
286288 iir_to_regbase(reg));
287289 u32 iir = *(u32 *)p_data;
....@@ -289,7 +291,7 @@
289291 trace_write_ir(vgpu->id, "IIR", reg, iir, vgpu_vreg(vgpu, reg),
290292 (vgpu_vreg(vgpu, reg) ^ iir));
291293
292
- if (WARN_ON(!info))
294
+ if (drm_WARN_ON(&i915->drm, !info))
293295 return -EINVAL;
294296
295297 vgpu_vreg(vgpu, reg) &= ~iir;
....@@ -319,6 +321,7 @@
319321 static void update_upstream_irq(struct intel_vgpu *vgpu,
320322 struct intel_gvt_irq_info *info)
321323 {
324
+ struct drm_i915_private *i915 = vgpu->gvt->gt->i915;
322325 struct intel_gvt_irq *irq = &vgpu->gvt->irq;
323326 struct intel_gvt_irq_map *map = irq->irq_map;
324327 struct intel_gvt_irq_info *up_irq_info = NULL;
....@@ -340,7 +343,8 @@
340343 if (!up_irq_info)
341344 up_irq_info = irq->info[map->up_irq_group];
342345 else
343
- WARN_ON(up_irq_info != irq->info[map->up_irq_group]);
346
+ drm_WARN_ON(&i915->drm, up_irq_info !=
347
+ irq->info[map->up_irq_group]);
344348
345349 bit = map->up_irq_bit;
346350
....@@ -350,7 +354,7 @@
350354 clear_bits |= (1 << bit);
351355 }
352356
353
- if (WARN_ON(!up_irq_info))
357
+ if (drm_WARN_ON(&i915->drm, !up_irq_info))
354358 return;
355359
356360 if (up_irq_info->group == INTEL_GVT_IRQ_INFO_MASTER) {
....@@ -536,7 +540,7 @@
536540 SET_BIT_INFO(irq, 4, VCS_MI_FLUSH_DW, INTEL_GVT_IRQ_INFO_GT1);
537541 SET_BIT_INFO(irq, 8, VCS_AS_CONTEXT_SWITCH, INTEL_GVT_IRQ_INFO_GT1);
538542
539
- if (HAS_BSD2(gvt->dev_priv)) {
543
+ if (HAS_ENGINE(gvt->gt, VCS1)) {
540544 SET_BIT_INFO(irq, 16, VCS2_MI_USER_INTERRUPT,
541545 INTEL_GVT_IRQ_INFO_GT1);
542546 SET_BIT_INFO(irq, 20, VCS2_MI_FLUSH_DW,
....@@ -568,7 +572,7 @@
568572 SET_BIT_INFO(irq, 22, DP_C_HOTPLUG, INTEL_GVT_IRQ_INFO_PCH);
569573 SET_BIT_INFO(irq, 23, DP_D_HOTPLUG, INTEL_GVT_IRQ_INFO_PCH);
570574
571
- if (IS_BROADWELL(gvt->dev_priv)) {
575
+ if (IS_BROADWELL(gvt->gt->i915)) {
572576 SET_BIT_INFO(irq, 25, AUX_CHANNEL_B, INTEL_GVT_IRQ_INFO_PCH);
573577 SET_BIT_INFO(irq, 26, AUX_CHANNEL_C, INTEL_GVT_IRQ_INFO_PCH);
574578 SET_BIT_INFO(irq, 27, AUX_CHANNEL_D, INTEL_GVT_IRQ_INFO_PCH);
....@@ -581,9 +585,7 @@
581585
582586 SET_BIT_INFO(irq, 4, PRIMARY_C_FLIP_DONE, INTEL_GVT_IRQ_INFO_DE_PIPE_C);
583587 SET_BIT_INFO(irq, 5, SPRITE_C_FLIP_DONE, INTEL_GVT_IRQ_INFO_DE_PIPE_C);
584
- } else if (IS_SKYLAKE(gvt->dev_priv)
585
- || IS_KABYLAKE(gvt->dev_priv)
586
- || IS_BROXTON(gvt->dev_priv)) {
588
+ } else if (INTEL_GEN(gvt->gt->i915) >= 9) {
587589 SET_BIT_INFO(irq, 25, AUX_CHANNEL_B, INTEL_GVT_IRQ_INFO_DE_PORT);
588590 SET_BIT_INFO(irq, 26, AUX_CHANNEL_C, INTEL_GVT_IRQ_INFO_DE_PORT);
589591 SET_BIT_INFO(irq, 27, AUX_CHANNEL_D, INTEL_GVT_IRQ_INFO_DE_PORT);
....@@ -620,13 +622,14 @@
620622 void intel_vgpu_trigger_virtual_event(struct intel_vgpu *vgpu,
621623 enum intel_gvt_event_type event)
622624 {
625
+ struct drm_i915_private *i915 = vgpu->gvt->gt->i915;
623626 struct intel_gvt *gvt = vgpu->gvt;
624627 struct intel_gvt_irq *irq = &gvt->irq;
625628 gvt_event_virt_handler_t handler;
626629 struct intel_gvt_irq_ops *ops = gvt->irq.ops;
627630
628631 handler = get_event_virt_handler(irq, event);
629
- WARN_ON(!handler);
632
+ drm_WARN_ON(&i915->drm, !handler);
630633
631634 handler(irq, event, vgpu);
632635
....@@ -674,7 +677,7 @@
674677 hrtimer_cancel(&irq->vblank_timer.timer);
675678 }
676679
677
-#define VBLNAK_TIMER_PERIOD 16000000
680
+#define VBLANK_TIMER_PERIOD 16000000
678681
679682 /**
680683 * intel_gvt_init_irq - initialize GVT-g IRQ emulation subsystem
....@@ -706,7 +709,7 @@
706709
707710 hrtimer_init(&vblank_timer->timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
708711 vblank_timer->timer.function = vblank_timer_fn;
709
- vblank_timer->period = VBLNAK_TIMER_PERIOD;
712
+ vblank_timer->period = VBLANK_TIMER_PERIOD;
710713
711714 return 0;
712715 }