From 69837a8956979fbf0b924e5c8206faa99174f147 Mon Sep 17 00:00:00 2001 From: ajesh Date: Fri, 16 Aug 2019 10:33:17 +0530 Subject: [PATCH] gpu: nvgpu: fix posix hr timestamp Fix the high reslution timestamp API in posix timer unit to return arch specific high resolution counter value. For userspace, continue using the timer based implementaion. BUG 2677936 Change-Id: I1b2015668089e6a80ee1fe4e5fa460ee896a8cec Signed-off-by: ajesh Reviewed-on: https://git-master.nvidia.com/r/2176484 Reviewed-by: svc-mobile-coverity Reviewed-by: svc-mobile-misra GVS: Gerrit_Virtual_Submit Reviewed-by: Shashank Singh Reviewed-by: Vaibhav Kachore Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/include/nvgpu/soc.h | 1 + drivers/gpu/nvgpu/os/posix/soc.c | 5 +++++ drivers/gpu/nvgpu/os/posix/timers.c | 6 +----- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/nvgpu/include/nvgpu/soc.h b/drivers/gpu/nvgpu/include/nvgpu/soc.h index a5ccf765c..e4a040f23 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/soc.h +++ b/drivers/gpu/nvgpu/include/nvgpu/soc.h @@ -35,4 +35,5 @@ bool nvgpu_is_soc_t194_a01(struct gk20a *g); int nvgpu_init_soc_vars(struct gk20a *g); void nvgpu_delay_usecs(unsigned int usecs); u64 nvgpu_us_counter(void); +u64 nvgpu_get_cycles(void); #endif /* NVGPU_SOC_H */ diff --git a/drivers/gpu/nvgpu/os/posix/soc.c b/drivers/gpu/nvgpu/os/posix/soc.c index 4b955188f..a5d41cc7c 100644 --- a/drivers/gpu/nvgpu/os/posix/soc.c +++ b/drivers/gpu/nvgpu/os/posix/soc.c @@ -61,3 +61,8 @@ u64 nvgpu_us_counter(void) { return (u64)nvgpu_current_time_us(); } + +u64 nvgpu_get_cycles(void) +{ + return (u64)nvgpu_current_time_us(); +} diff --git a/drivers/gpu/nvgpu/os/posix/timers.c b/drivers/gpu/nvgpu/os/posix/timers.c index 4f006899a..d4fb601bc 100644 --- a/drivers/gpu/nvgpu/os/posix/timers.c +++ b/drivers/gpu/nvgpu/os/posix/timers.c @@ -249,11 +249,7 @@ s64 nvgpu_current_time_ns(void) u64 nvgpu_hr_timestamp(void) { - s64 count; - - count = nvgpu_current_time_us(); - - return nvgpu_safe_cast_s64_to_u64(count); + return nvgpu_get_cycles(); } u64 nvgpu_hr_timestamp_us(void)