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