aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/ms5611/ms5611_spi.cpp
diff options
context:
space:
mode:
authorpx4dev <px4@purgatory.org>2013-07-24 22:51:27 -0700
committerpx4dev <px4@purgatory.org>2013-07-24 22:51:27 -0700
commitd57d12818a3c79cc992ff70e765734e7145603d0 (patch)
tree3bcb7e737acbe24e1ddf198a6f75ca24181bf211 /src/drivers/ms5611/ms5611_spi.cpp
parent31ded04c80f68bd071840770d49eb93d2d9c9fe2 (diff)
downloadpx4-firmware-d57d12818a3c79cc992ff70e765734e7145603d0.tar.gz
px4-firmware-d57d12818a3c79cc992ff70e765734e7145603d0.tar.bz2
px4-firmware-d57d12818a3c79cc992ff70e765734e7145603d0.zip
Revert "Disable interrupts during ms5611 SPI transactions to prevent interruption by sensor drivers polling other sensors from interrupt context."
This reverts commit 31ded04c80f68bd071840770d49eb93d2d9c9fe2.
Diffstat (limited to 'src/drivers/ms5611/ms5611_spi.cpp')
-rw-r--r--src/drivers/ms5611/ms5611_spi.cpp28
1 files changed, 4 insertions, 24 deletions
diff --git a/src/drivers/ms5611/ms5611_spi.cpp b/src/drivers/ms5611/ms5611_spi.cpp
index 1ea698922..156832a61 100644
--- a/src/drivers/ms5611/ms5611_spi.cpp
+++ b/src/drivers/ms5611/ms5611_spi.cpp
@@ -103,14 +103,6 @@ private:
* @param reg The register to read.
*/
uint16_t _reg16(unsigned reg);
-
- /**
- * Wrapper around transfer() that prevents interrupt-context transfers
- * from pre-empting us. The sensor may (does) share a bus with sensors
- * that are polled from interrupt context (or we may be pre-empted)
- * so we need to guarantee that transfers complete without interruption.
- */
- int _transfer(uint8_t *send, uint8_t *recv, unsigned len);
};
device::Device *
@@ -169,7 +161,7 @@ MS5611_SPI::read(unsigned offset, void *data, unsigned count)
/* read the most recent measurement */
buf[0] = 0 | DIR_WRITE;
- int ret = _transfer(&buf[0], &buf[0], sizeof(buf));
+ int ret = transfer(&buf[0], &buf[0], sizeof(buf));
if (ret == OK) {
/* fetch the raw value */
@@ -214,7 +206,7 @@ MS5611_SPI::_reset()
{
uint8_t cmd = ADDR_RESET_CMD | DIR_WRITE;
- return _transfer(&cmd, nullptr, 1);
+ return transfer(&cmd, nullptr, 1);
}
int
@@ -222,7 +214,7 @@ MS5611_SPI::_measure(unsigned addr)
{
uint8_t cmd = addr | DIR_WRITE;
- return _transfer(&cmd, nullptr, 1);
+ return transfer(&cmd, nullptr, 1);
}
@@ -252,21 +244,9 @@ MS5611_SPI::_reg16(unsigned reg)
cmd[0] = reg | DIR_READ;
- _transfer(cmd, cmd, sizeof(cmd));
+ transfer(cmd, cmd, sizeof(cmd));
return (uint16_t)(cmd[1] << 8) | cmd[2];
}
-int
-MS5611_SPI::_transfer(uint8_t *send, uint8_t *recv, unsigned len)
-{
- irqstate_t flags = irqsave();
-
- int ret = transfer(send, recv, len);
-
- irqrestore(flags);
-
- return ret;
-}
-
#endif /* PX4_SPIDEV_BARO */