#include "gt/intel_engine_pm.h"
 #include "gt/intel_engine_regs.h"
 #include "gt/intel_engine_user.h"
+#include "gt/intel_gt.h"
 #include "gt/intel_gt_pm.h"
 #include "gt/intel_gt_regs.h"
 #include "gt/intel_rc6.h"
        struct drm_i915_private *i915 =
                container_of(hrtimer, struct drm_i915_private, pmu.timer);
        struct i915_pmu *pmu = &i915->pmu;
-       struct intel_gt *gt = to_gt(i915);
        unsigned int period_ns;
+       struct intel_gt *gt;
+       unsigned int i;
        ktime_t now;
 
        if (!READ_ONCE(pmu->timer_enabled))
         * grabbing the forcewake. However the potential error from timer call-
         * back delay greatly dominates this so we keep it simple.
         */
-       engines_sample(gt, period_ns);
-       frequency_sample(gt, period_ns);
+
+       for_each_gt(gt, i915, i) {
+               engines_sample(gt, period_ns);
+
+               if (i == 0) /* FIXME */
+                       frequency_sample(gt, period_ns);
+       }
 
        hrtimer_forward(hrtimer, now, ns_to_ktime(PERIOD));