drm/i915/pmu: Transform PMU parking code to be GT based
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
This commit is contained in:
parent
08322dabb5
commit
da5d516728
@ -87,7 +87,7 @@ static int __gt_unpark(struct intel_wakeref *wf)
|
||||
|
||||
intel_rc6_unpark(>->rc6);
|
||||
intel_rps_unpark(>->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(>->rps);
|
||||
intel_rc6_park(>->rc6);
|
||||
|
||||
|
@ -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 = >->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 = >->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 = >->i915->pmu;
|
||||
|
||||
if (!pmu->base.event_init)
|
||||
return;
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user