drivers: adc: lmp90xxx: prevent SPI transactions from ISR context

Add checks to prevent SPI transactions from being run in ISR
context. This affects both the LMP90xxx ADC and GPIO drivers.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
This commit is contained in:
Henrik Brix Andersen 2020-03-26 13:00:41 +01:00 committed by Kumar Gala
commit 3de3ad0ffc

View file

@ -193,6 +193,11 @@ static int lmp90xxx_read_reg(struct device *dev, u8_t addr, u8_t *dptr,
return -EINVAL; return -EINVAL;
} }
if (k_is_in_isr()) {
/* Prevent SPI transactions from an ISR */
return -EWOULDBLOCK;
}
k_mutex_lock(&data->ura_lock, K_FOREVER); k_mutex_lock(&data->ura_lock, K_FOREVER);
if (ura != data->ura) { if (ura != data->ura) {
@ -259,6 +264,11 @@ static int lmp90xxx_write_reg(struct device *dev, u8_t addr, u8_t *dptr,
return -EINVAL; return -EINVAL;
} }
if (k_is_in_isr()) {
/* Prevent SPI transactions from an ISR */
return -EWOULDBLOCK;
}
k_mutex_lock(&data->ura_lock, K_FOREVER); k_mutex_lock(&data->ura_lock, K_FOREVER);
if (ura != data->ura) { if (ura != data->ura) {