From ccefc640ac8fa6367835a4caf0ae8f94205ce0dc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net>
Date: Mon, 7 Jan 2019 07:12:19 +0100
Subject: [PATCH] drv_hrt posix: remove unused code and remove locking from
 hrt_absolute_time

---
 platforms/posix/src/px4_layer/drv_hrt.cpp | 75 +----------------------
 src/drivers/drv_hrt.h                     | 19 ------
 2 files changed, 2 insertions(+), 92 deletions(-)

diff --git a/platforms/posix/src/px4_layer/drv_hrt.cpp b/platforms/posix/src/px4_layer/drv_hrt.cpp
index 95edd03710..6ed3744f3d 100644
--- a/platforms/posix/src/px4_layer/drv_hrt.cpp
+++ b/platforms/posix/src/px4_layer/drv_hrt.cpp
@@ -67,11 +67,6 @@ static hrt_abstime px4_timestart_monotonic = 0;
 static int32_t dsp_offset = 0;
 #endif
 
-static hrt_abstime _start_delay_time = 0;
-static hrt_abstime _delay_interval = 0;
-static hrt_abstime max_time = 0;
-static pthread_mutex_t _hrt_mutex = PTHREAD_MUTEX_INITIALIZER;
-
 #if defined(ENABLE_LOCKSTEP_SCHEDULER)
 static LockstepScheduler lockstep_scheduler;
 #endif
@@ -80,7 +75,6 @@ static LockstepScheduler lockstep_scheduler;
 hrt_abstime hrt_absolute_time_offset();
 static void hrt_call_reschedule();
 static void hrt_call_invoke();
-static hrt_abstime _hrt_absolute_time_internal();
 __EXPORT hrt_abstime hrt_reset();
 
 hrt_abstime hrt_absolute_time_offset()
@@ -158,7 +152,7 @@ uint64_t hrt_system_time()
 /*
  * Get absolute time.
  */
-hrt_abstime _hrt_absolute_time_internal()
+hrt_abstime hrt_absolute_time()
 {
 	struct timespec ts;
 	px4_clock_gettime(CLOCK_MONOTONIC, &ts);
@@ -177,42 +171,12 @@ int hrt_set_absolute_time_offset(int32_t time_diff_us)
 }
 #endif
 
-/*
- * Get absolute time.
- */
-hrt_abstime hrt_absolute_time()
-{
-	pthread_mutex_lock(&_hrt_mutex);
-
-	hrt_abstime ret;
-
-	if (_start_delay_time > 0) {
-		ret = _start_delay_time;
-
-	} else {
-		ret = _hrt_absolute_time_internal();
-	}
-
-	ret -= _delay_interval;
-
-	if (ret < max_time) {
-		PX4_ERR("WARNING! TIME IS NEGATIVE! %d vs %d", (int)ret, (int)max_time);
-		ret = max_time;
-	}
-
-	max_time = ret;
-	pthread_mutex_unlock(&_hrt_mutex);
-
-	return ret;
-}
-
 hrt_abstime hrt_reset()
 {
 #ifndef __PX4_QURT
 	px4_timestart_monotonic = 0;
 #endif
-	max_time = 0;
-	return _hrt_absolute_time_internal();
+	return hrt_absolute_time();
 }
 
 /*
@@ -317,41 +281,6 @@ void	hrt_init()
 	memset(&_hrt_work, 0, sizeof(_hrt_work));
 }
 
-void	hrt_start_delay()
-{
-	pthread_mutex_lock(&_hrt_mutex);
-	_start_delay_time = _hrt_absolute_time_internal();
-	pthread_mutex_unlock(&_hrt_mutex);
-}
-
-void	hrt_stop_delay_delta(hrt_abstime delta)
-{
-	pthread_mutex_lock(&_hrt_mutex);
-
-	uint64_t delta_measured = _hrt_absolute_time_internal() - _start_delay_time;
-
-	if (delta_measured < delta) {
-		delta = delta_measured;
-	}
-
-	_delay_interval += delta;
-	_start_delay_time = 0;
-
-	pthread_mutex_unlock(&_hrt_mutex);
-
-}
-
-void	hrt_stop_delay()
-{
-	pthread_mutex_lock(&_hrt_mutex);
-	uint64_t delta = _hrt_absolute_time_internal() - _start_delay_time;
-	_delay_interval += delta;
-	_start_delay_time = 0;
-
-	pthread_mutex_unlock(&_hrt_mutex);
-
-}
-
 static void
 hrt_call_enter(struct hrt_call *entry)
 {
diff --git a/src/drivers/drv_hrt.h b/src/drivers/drv_hrt.h
index c50494afce..19e2456b12 100644
--- a/src/drivers/drv_hrt.h
+++ b/src/drivers/drv_hrt.h
@@ -173,25 +173,6 @@ __EXPORT extern void	hrt_init(void);
 
 #ifdef __PX4_POSIX
 
-/**
- * Start to delay the HRT return value.
- *
- * Until hrt_stop_delay() is called the HRT calls will return the timestamp
- * at the instance then hrt_start_delay() was called.
- */
-__EXPORT extern	void	hrt_start_delay(void);
-
-/**
- * Stop to delay the HRT.
- */
-__EXPORT extern void	hrt_stop_delay(void);
-
-/**
- * Stop to delay the HRT, but with an exact delta time.
- */
-__EXPORT extern void	hrt_stop_delay_delta(hrt_abstime delta);
-
-
 __EXPORT extern hrt_abstime hrt_reset(void);
 
 __EXPORT extern hrt_abstime hrt_absolute_time_offset(void);
-- 
GitLab