aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/gt
diff options
context:
space:
mode:
authorUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>2022-04-26 17:35:15 -0700
committerJohn Harrison <John.C.Harrison@Intel.com>2022-04-28 12:30:32 -0700
commitad6ade8e34df62e8b876ca40509bfa2ca8ad3262 (patch)
tree9fa3d6bbe10b03e9141b2cb0b2f32269ab588a38 /drivers/gpu/drm/i915/gt
parentdrm/i915/dg2: Define GuC firmware version for DG2 (diff)
downloadlinux-dev-ad6ade8e34df62e8b876ca40509bfa2ca8ad3262.tar.xz
linux-dev-ad6ade8e34df62e8b876ca40509bfa2ca8ad3262.zip
drm/i915/pmu: Use existing uncore helper to read gpm_timestamp
Use intel_uncore_read64_2x32 to read upper and lower fields of the GPM timestamp. v2: Fix compile error Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Signed-off-by: John Harrison <John.C.Harrison@Intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220427003515.3944267-1-umesh.nerlige.ramappa@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/gt')
-rw-r--r--drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c17
1 files changed, 2 insertions, 15 deletions
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
index 61a6f2424e24..33e695adfd6a 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
@@ -1200,20 +1200,6 @@ static u32 gpm_timestamp_shift(struct intel_gt *gt)
return 3 - shift;
}
-static u64 gpm_timestamp(struct intel_gt *gt)
-{
- u32 lo, hi, old_hi, loop = 0;
-
- hi = intel_uncore_read(gt->uncore, MISC_STATUS1);
- do {
- lo = intel_uncore_read(gt->uncore, MISC_STATUS0);
- old_hi = hi;
- hi = intel_uncore_read(gt->uncore, MISC_STATUS1);
- } while (old_hi != hi && loop++ < 2);
-
- return ((u64)hi << 32) | lo;
-}
-
static void guc_update_pm_timestamp(struct intel_guc *guc, ktime_t *now)
{
struct intel_gt *gt = guc_to_gt(guc);
@@ -1223,7 +1209,8 @@ static void guc_update_pm_timestamp(struct intel_guc *guc, ktime_t *now)
lockdep_assert_held(&guc->timestamp.lock);
gt_stamp_hi = upper_32_bits(guc->timestamp.gt_stamp);
- gpm_ts = gpm_timestamp(gt) >> guc->timestamp.shift;
+ gpm_ts = intel_uncore_read64_2x32(gt->uncore, MISC_STATUS0,
+ MISC_STATUS1) >> guc->timestamp.shift;
gt_stamp_lo = lower_32_bits(gpm_ts);
*now = ktime_get();