diff --git a/libraries/AP_Compass/AP_Compass_AK09916.cpp b/libraries/AP_Compass/AP_Compass_AK09916.cpp index 67a2e37db2..b844a1abdf 100644 --- a/libraries/AP_Compass/AP_Compass_AK09916.cpp +++ b/libraries/AP_Compass/AP_Compass_AK09916.cpp @@ -104,9 +104,7 @@ AP_Compass_Backend *AP_Compass_AK09916::probe_ICM20948(AP_HAL::OwnPtrget_semaphore()->take(HAL_SEMAPHORE_BLOCK_FOREVER)) { - return nullptr; - } + dev->get_semaphore()->take_blocking(); /* Allow ICM20x48 to shortcut auxiliary bus and host bus */ uint8_t rval; @@ -192,9 +190,10 @@ bool AP_Compass_AK09916::init() { AP_HAL::Semaphore *bus_sem = _bus->get_semaphore(); - if (!bus_sem || !_bus->get_semaphore()->take(HAL_SEMAPHORE_BLOCK_FOREVER)) { + if (!bus_sem) { return false; } + _bus->get_semaphore()->take_blocking(); if (!_bus->configure()) { hal.console->printf("AK09916: Could not configure the bus\n"); diff --git a/libraries/AP_Compass/AP_Compass_AK8963.cpp b/libraries/AP_Compass/AP_Compass_AK8963.cpp index b94698fbe1..a7e7f93f75 100644 --- a/libraries/AP_Compass/AP_Compass_AK8963.cpp +++ b/libraries/AP_Compass/AP_Compass_AK8963.cpp @@ -122,10 +122,11 @@ bool AP_Compass_AK8963::init() { AP_HAL::Semaphore *bus_sem = _bus->get_semaphore(); - if (!bus_sem || !_bus->get_semaphore()->take(HAL_SEMAPHORE_BLOCK_FOREVER)) { + if (!bus_sem) { hal.console->printf("AK8963: Unable to get bus semaphore\n"); return false; } + _bus->get_semaphore()->take_blocking(); if (!_bus->configure()) { hal.console->printf("AK8963: Could not configure the bus\n"); diff --git a/libraries/AP_Compass/AP_Compass_BMM150.cpp b/libraries/AP_Compass/AP_Compass_BMM150.cpp index 75bd068e7a..98d237e3d8 100644 --- a/libraries/AP_Compass/AP_Compass_BMM150.cpp +++ b/libraries/AP_Compass/AP_Compass_BMM150.cpp @@ -142,10 +142,7 @@ bool AP_Compass_BMM150::init() uint8_t val = 0; bool ret; - if (!_dev->get_semaphore()->take(HAL_SEMAPHORE_BLOCK_FOREVER)) { - hal.console->printf("BMM150: Unable to get bus semaphore\n"); - return false; - } + _dev->get_semaphore()->take_blocking(); // 10 retries for init _dev->set_retries(10); diff --git a/libraries/AP_Compass/AP_Compass_HMC5843.cpp b/libraries/AP_Compass/AP_Compass_HMC5843.cpp index 7684c88f01..d8842841c3 100644 --- a/libraries/AP_Compass/AP_Compass_HMC5843.cpp +++ b/libraries/AP_Compass/AP_Compass_HMC5843.cpp @@ -152,10 +152,11 @@ bool AP_Compass_HMC5843::init() { AP_HAL::Semaphore *bus_sem = _bus->get_semaphore(); - if (!bus_sem || !bus_sem->take(HAL_SEMAPHORE_BLOCK_FOREVER)) { + if (!bus_sem) { hal.console->printf("HMC5843: Unable to get bus semaphore\n"); return false; } + bus_sem->take_blocking(); // high retries for init _bus->set_retries(10); diff --git a/libraries/AP_Compass/AP_Compass_IST8308.cpp b/libraries/AP_Compass/AP_Compass_IST8308.cpp index c90aa7a8db..a48c0a2439 100644 --- a/libraries/AP_Compass/AP_Compass_IST8308.cpp +++ b/libraries/AP_Compass/AP_Compass_IST8308.cpp @@ -109,9 +109,7 @@ bool AP_Compass_IST8308::init() { uint8_t reset_count = 0; - if (!_dev->get_semaphore()->take(HAL_SEMAPHORE_BLOCK_FOREVER)) { - return false; - } + _dev->get_semaphore()->take_blocking(); // high retries for init _dev->set_retries(10); diff --git a/libraries/AP_Compass/AP_Compass_IST8310.cpp b/libraries/AP_Compass/AP_Compass_IST8310.cpp index 7adc0eee80..351a6b2d2c 100644 --- a/libraries/AP_Compass/AP_Compass_IST8310.cpp +++ b/libraries/AP_Compass/AP_Compass_IST8310.cpp @@ -105,9 +105,7 @@ bool AP_Compass_IST8310::init() { uint8_t reset_count = 0; - if (!_dev->get_semaphore()->take(HAL_SEMAPHORE_BLOCK_FOREVER)) { - return false; - } + _dev->get_semaphore()->take_blocking(); // high retries for init _dev->set_retries(10); diff --git a/libraries/AP_Compass/AP_Compass_LIS3MDL.cpp b/libraries/AP_Compass/AP_Compass_LIS3MDL.cpp index 8d9e28c40a..859ba327f4 100644 --- a/libraries/AP_Compass/AP_Compass_LIS3MDL.cpp +++ b/libraries/AP_Compass/AP_Compass_LIS3MDL.cpp @@ -75,9 +75,7 @@ AP_Compass_LIS3MDL::AP_Compass_LIS3MDL(AP_HAL::OwnPtr _dev, bool AP_Compass_LIS3MDL::init() { - if (!dev->get_semaphore()->take(HAL_SEMAPHORE_BLOCK_FOREVER)) { - return false; - } + dev->get_semaphore()->take_blocking(); if (dev->bus_type() == AP_HAL::Device::BUS_TYPE_SPI) { dev->set_read_flag(0xC0); diff --git a/libraries/AP_Compass/AP_Compass_LSM303D.cpp b/libraries/AP_Compass/AP_Compass_LSM303D.cpp index b6e7375893..3eb8cde8a0 100644 --- a/libraries/AP_Compass/AP_Compass_LSM303D.cpp +++ b/libraries/AP_Compass/AP_Compass_LSM303D.cpp @@ -282,9 +282,7 @@ bool AP_Compass_LSM303D::init(enum Rotation rotation) bool AP_Compass_LSM303D::_hardware_init() { - if (!_dev->get_semaphore()->take(HAL_SEMAPHORE_BLOCK_FOREVER)) { - AP_HAL::panic("LSM303D: Unable to get semaphore"); - } + _dev->get_semaphore()->take_blocking(); // initially run the bus at low speed _dev->set_speed(AP_HAL::Device::SPEED_LOW); diff --git a/libraries/AP_Compass/AP_Compass_LSM9DS1.cpp b/libraries/AP_Compass/AP_Compass_LSM9DS1.cpp index 073332f983..18094fa389 100644 --- a/libraries/AP_Compass/AP_Compass_LSM9DS1.cpp +++ b/libraries/AP_Compass/AP_Compass_LSM9DS1.cpp @@ -83,10 +83,11 @@ bool AP_Compass_LSM9DS1::init() { AP_HAL::Semaphore *bus_sem = _dev->get_semaphore(); - if (!bus_sem || !bus_sem->take(HAL_SEMAPHORE_BLOCK_FOREVER)) { + if (!bus_sem) { hal.console->printf("LSM9DS1: Unable to get bus semaphore\n"); return false; } + bus_sem->take_blocking(); if (!_check_id()) { hal.console->printf("LSM9DS1: Could not check id\n"); diff --git a/libraries/AP_Compass/AP_Compass_MAG3110.cpp b/libraries/AP_Compass/AP_Compass_MAG3110.cpp index 780de585ff..343c98121f 100644 --- a/libraries/AP_Compass/AP_Compass_MAG3110.cpp +++ b/libraries/AP_Compass/AP_Compass_MAG3110.cpp @@ -135,9 +135,7 @@ bool AP_Compass_MAG3110::_hardware_init() { AP_HAL::Semaphore *bus_sem = _dev->get_semaphore(); - if (!bus_sem->take(HAL_SEMAPHORE_BLOCK_FOREVER)) { - AP_HAL::panic("MAG3110: Unable to get semaphore"); - } + bus_sem->take_blocking(); // initially run the bus at low speed _dev->set_speed(AP_HAL::Device::SPEED_LOW); diff --git a/libraries/AP_Compass/AP_Compass_MMC3416.cpp b/libraries/AP_Compass/AP_Compass_MMC3416.cpp index 71a22b4e40..9dd110327c 100644 --- a/libraries/AP_Compass/AP_Compass_MMC3416.cpp +++ b/libraries/AP_Compass/AP_Compass_MMC3416.cpp @@ -68,9 +68,7 @@ AP_Compass_MMC3416::AP_Compass_MMC3416(AP_HAL::OwnPtr _dev, bool AP_Compass_MMC3416::init() { - if (!dev->get_semaphore()->take(HAL_SEMAPHORE_BLOCK_FOREVER)) { - return false; - } + dev->get_semaphore()->take_blocking(); dev->set_retries(10); diff --git a/libraries/AP_Compass/AP_Compass_QMC5883L.cpp b/libraries/AP_Compass/AP_Compass_QMC5883L.cpp index 4097fc1357..3dfd10069d 100644 --- a/libraries/AP_Compass/AP_Compass_QMC5883L.cpp +++ b/libraries/AP_Compass/AP_Compass_QMC5883L.cpp @@ -85,9 +85,7 @@ AP_Compass_QMC5883L::AP_Compass_QMC5883L(AP_HAL::OwnPtr dev, bool AP_Compass_QMC5883L::init() { - if (!_dev->get_semaphore()->take(HAL_SEMAPHORE_BLOCK_FOREVER)) { - return false; - } + _dev->get_semaphore()->take_blocking(); _dev->set_retries(10); diff --git a/libraries/AP_Compass/AP_Compass_RM3100.cpp b/libraries/AP_Compass/AP_Compass_RM3100.cpp index aa8745705d..ddcc87f702 100644 --- a/libraries/AP_Compass/AP_Compass_RM3100.cpp +++ b/libraries/AP_Compass/AP_Compass_RM3100.cpp @@ -93,9 +93,7 @@ AP_Compass_RM3100::AP_Compass_RM3100(AP_HAL::OwnPtr _dev, bool AP_Compass_RM3100::init() { - if (!dev->get_semaphore()->take(HAL_SEMAPHORE_BLOCK_FOREVER)) { - return false; - } + dev->get_semaphore()->take_blocking(); if (dev->bus_type() == AP_HAL::Device::BUS_TYPE_SPI) { // read has high bit set for SPI