mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 01:54:09 +08:00
iio: imu: adis: rename txrx_lock -> state_lock
The lock can be extended a bit to protect other elements that are not particular to just TX/RX. Another idea would have been to just add a new `state_lock`, but that would mean 2 locks which would be redundant, and probably cause more potential for dead-locks. What will be done in the next patches, will be to add some unlocked versions for read/write_reg functions. Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
a33db9475a
commit
6a9afcb198
@ -70,7 +70,7 @@ int adis_write_reg(struct adis *adis, unsigned int reg,
|
||||
},
|
||||
};
|
||||
|
||||
mutex_lock(&adis->txrx_lock);
|
||||
mutex_lock(&adis->state_lock);
|
||||
|
||||
spi_message_init(&msg);
|
||||
|
||||
@ -114,7 +114,7 @@ int adis_write_reg(struct adis *adis, unsigned int reg,
|
||||
}
|
||||
|
||||
out_unlock:
|
||||
mutex_unlock(&adis->txrx_lock);
|
||||
mutex_unlock(&adis->state_lock);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -166,7 +166,7 @@ int adis_read_reg(struct adis *adis, unsigned int reg,
|
||||
},
|
||||
};
|
||||
|
||||
mutex_lock(&adis->txrx_lock);
|
||||
mutex_lock(&adis->state_lock);
|
||||
spi_message_init(&msg);
|
||||
|
||||
if (adis->current_page != page) {
|
||||
@ -211,7 +211,7 @@ int adis_read_reg(struct adis *adis, unsigned int reg,
|
||||
}
|
||||
|
||||
out_unlock:
|
||||
mutex_unlock(&adis->txrx_lock);
|
||||
mutex_unlock(&adis->state_lock);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -438,7 +438,7 @@ EXPORT_SYMBOL_GPL(adis_single_conversion);
|
||||
int adis_init(struct adis *adis, struct iio_dev *indio_dev,
|
||||
struct spi_device *spi, const struct adis_data *data)
|
||||
{
|
||||
mutex_init(&adis->txrx_lock);
|
||||
mutex_init(&adis->state_lock);
|
||||
adis->spi = spi;
|
||||
adis->data = data;
|
||||
iio_device_set_drvdata(indio_dev, adis);
|
||||
|
@ -129,7 +129,7 @@ static irqreturn_t adis_trigger_handler(int irq, void *p)
|
||||
return -ENOMEM;
|
||||
|
||||
if (adis->data->has_paging) {
|
||||
mutex_lock(&adis->txrx_lock);
|
||||
mutex_lock(&adis->state_lock);
|
||||
if (adis->current_page != 0) {
|
||||
adis->tx[0] = ADIS_WRITE_REG(ADIS_REG_PAGE_ID);
|
||||
adis->tx[1] = 0;
|
||||
@ -144,7 +144,7 @@ static irqreturn_t adis_trigger_handler(int irq, void *p)
|
||||
|
||||
if (adis->data->has_paging) {
|
||||
adis->current_page = 0;
|
||||
mutex_unlock(&adis->txrx_lock);
|
||||
mutex_unlock(&adis->state_lock);
|
||||
}
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, adis->buffer,
|
||||
|
@ -61,7 +61,7 @@ struct adis {
|
||||
const struct adis_data *data;
|
||||
struct adis_burst *burst;
|
||||
|
||||
struct mutex txrx_lock;
|
||||
struct mutex state_lock;
|
||||
struct spi_message msg;
|
||||
struct spi_transfer *xfer;
|
||||
unsigned int current_page;
|
||||
|
Loading…
Reference in New Issue
Block a user