drm/i915/pmu: Transform PMU parking code to be GT based
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>
Fri, 19 May 2023 15:49:43 +0000 (08:49 -0700)
committerUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Mon, 22 May 2023 18:07:50 +0000 (11:07 -0700)
Trivial prep work for full multi-tile enablement later.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230519154946.3751971-5-umesh.nerlige.ramappa@intel.com
drivers/gpu/drm/i915/gt/intel_gt_pm.c
drivers/gpu/drm/i915/i915_pmu.c
drivers/gpu/drm/i915/i915_pmu.h

index e02cb90..c2e69ba 100644 (file)
@@ -87,7 +87,7 @@ static int __gt_unpark(struct intel_wakeref *wf)
 
        intel_rc6_unpark(&gt->rc6);
        intel_rps_unpark(&gt->rps);
-       i915_pmu_gt_unparked(i915);
+       i915_pmu_gt_unparked(gt);
        intel_guc_busyness_unpark(gt);
 
        intel_gt_unpark_requests(gt);
@@ -109,7 +109,7 @@ static int __gt_park(struct intel_wakeref *wf)
 
        intel_guc_busyness_park(gt);
        i915_vma_parked(gt);
-       i915_pmu_gt_parked(i915);
+       i915_pmu_gt_parked(gt);
        intel_rps_park(&gt->rps);
        intel_rc6_park(&gt->rc6);
 
index 6d594f6..890693f 100644 (file)
@@ -228,11 +228,11 @@ static void init_rc6(struct i915_pmu *pmu)
        }
 }
 
-static void park_rc6(struct drm_i915_private *i915)
+static void park_rc6(struct intel_gt *gt)
 {
-       struct i915_pmu *pmu = &i915->pmu;
+       struct i915_pmu *pmu = &gt->i915->pmu;
 
-       pmu->sample[__I915_SAMPLE_RC6].cur = __get_rc6(to_gt(i915));
+       pmu->sample[__I915_SAMPLE_RC6].cur = __get_rc6(gt);
        pmu->sleep_last = ktime_get_raw();
 }
 
@@ -247,16 +247,16 @@ static void __i915_pmu_maybe_start_timer(struct i915_pmu *pmu)
        }
 }
 
-void i915_pmu_gt_parked(struct drm_i915_private *i915)
+void i915_pmu_gt_parked(struct intel_gt *gt)
 {
-       struct i915_pmu *pmu = &i915->pmu;
+       struct i915_pmu *pmu = &gt->i915->pmu;
 
        if (!pmu->base.event_init)
                return;
 
        spin_lock_irq(&pmu->lock);
 
-       park_rc6(i915);
+       park_rc6(gt);
 
        /*
         * Signal sampling timer to stop if only engine events are enabled and
@@ -267,9 +267,9 @@ void i915_pmu_gt_parked(struct drm_i915_private *i915)
        spin_unlock_irq(&pmu->lock);
 }
 
-void i915_pmu_gt_unparked(struct drm_i915_private *i915)
+void i915_pmu_gt_unparked(struct intel_gt *gt)
 {
-       struct i915_pmu *pmu = &i915->pmu;
+       struct i915_pmu *pmu = &gt->i915->pmu;
 
        if (!pmu->base.event_init)
                return;
index c30f433..a686fd7 100644 (file)
@@ -13,6 +13,7 @@
 #include <uapi/drm/i915_drm.h>
 
 struct drm_i915_private;
+struct intel_gt;
 
 /*
  * Non-engine events that we need to track enabled-disabled transition and
@@ -151,15 +152,15 @@ int i915_pmu_init(void);
 void i915_pmu_exit(void);
 void i915_pmu_register(struct drm_i915_private *i915);
 void i915_pmu_unregister(struct drm_i915_private *i915);
-void i915_pmu_gt_parked(struct drm_i915_private *i915);
-void i915_pmu_gt_unparked(struct drm_i915_private *i915);
+void i915_pmu_gt_parked(struct intel_gt *gt);
+void i915_pmu_gt_unparked(struct intel_gt *gt);
 #else
 static inline int i915_pmu_init(void) { return 0; }
 static inline void i915_pmu_exit(void) {}
 static inline void i915_pmu_register(struct drm_i915_private *i915) {}
 static inline void i915_pmu_unregister(struct drm_i915_private *i915) {}
-static inline void i915_pmu_gt_parked(struct drm_i915_private *i915) {}
-static inline void i915_pmu_gt_unparked(struct drm_i915_private *i915) {}
+static inline void i915_pmu_gt_parked(struct intel_gt *gt) {}
+static inline void i915_pmu_gt_unparked(struct intel_gt *gt) {}
 #endif
 
 #endif