From d76cc7ff9d28310abfcd0ab346aa94888ab0186a Mon Sep 17 00:00:00 2001
From: koalo <koalo@koalo.de>
Date: Thu, 22 Aug 2019 16:45:32 +0200
Subject: [PATCH] feat(bhi160): Cleanup

---
 epicardium/modules/bhi.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/epicardium/modules/bhi.c b/epicardium/modules/bhi.c
index 658c4b19..16021494 100644
--- a/epicardium/modules/bhi.c
+++ b/epicardium/modules/bhi.c
@@ -417,7 +417,8 @@ void vBhi160Task(void *pvParameters)
 
 	int lockret = hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(100));
 	if (lockret < 0) {
-		return;
+		LOG_CRIT("bhi160", "Failed to acquire I2C lock!");
+		vTaskDelay(portMAX_DELAY);
 	}
 
 	/* Take Mutex during initialization, just in case */
@@ -447,9 +448,14 @@ void vBhi160Task(void *pvParameters)
 		vTaskDelay(portMAX_DELAY);
 	}
 
-	/* Wait for first two interrupts */
-	ulTaskNotifyTake(pdTRUE, pdMS_TO_TICKS(100));
+	/* Wait for first interrupt */
+	hwlock_release(HWLOCK_I2C);
 	ulTaskNotifyTake(pdTRUE, pdMS_TO_TICKS(100));
+	lockret = hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(100));
+	if (lockret < 0) {
+		LOG_CRIT("bhi160", "Failed to acquire I2C lock!");
+		vTaskDelay(portMAX_DELAY);
+	}
 
 	/* Remap axes to match card10 layout */
 	bhy_mapping_matrix_set(
-- 
GitLab