staging: iio: ad9832: replace mlock with driver private lock
The IIO subsystem is redefining iio_dev->mlock to be used by the IIO core only for protecting device operating mode changes. ie. Changes between INDIO_DIRECT_MODE, INDIO_BUFFER_* modes. In this driver, mlock was being used to protect hardware state changes. Replace it with a lock in the devices global data. Signed-off-by: Alison Schofield <amsfield22@gmail.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
parent
0a124e98f4
commit
4b88e516a6
@ -84,6 +84,7 @@
|
||||
* @freq_msg: tuning word spi message
|
||||
* @phase_xfer: tuning word spi transfer
|
||||
* @phase_msg: tuning word spi message
|
||||
* @lock protect sensor state
|
||||
* @data: spi transmit buffer
|
||||
* @phase_data: tuning word spi transmit buffer
|
||||
* @freq_data: tuning word spi transmit buffer
|
||||
@ -103,6 +104,7 @@ struct ad9832_state {
|
||||
struct spi_message freq_msg;
|
||||
struct spi_transfer phase_xfer[2];
|
||||
struct spi_message phase_msg;
|
||||
struct mutex lock; /* protect sensor state */
|
||||
/*
|
||||
* DMA (thus cache coherency maintenance) requires the
|
||||
* transfer buffers to live in their own cache lines.
|
||||
@ -177,7 +179,7 @@ static ssize_t ad9832_write(struct device *dev, struct device_attribute *attr,
|
||||
if (ret)
|
||||
goto error_ret;
|
||||
|
||||
mutex_lock(&indio_dev->mlock);
|
||||
mutex_lock(&st->lock);
|
||||
switch ((u32)this_attr->address) {
|
||||
case AD9832_FREQ0HM:
|
||||
case AD9832_FREQ1HM:
|
||||
@ -238,7 +240,7 @@ static ssize_t ad9832_write(struct device *dev, struct device_attribute *attr,
|
||||
default:
|
||||
ret = -ENODEV;
|
||||
}
|
||||
mutex_unlock(&indio_dev->mlock);
|
||||
mutex_unlock(&st->lock);
|
||||
|
||||
error_ret:
|
||||
return ret ? ret : len;
|
||||
@ -334,6 +336,7 @@ static int ad9832_probe(struct spi_device *spi)
|
||||
|
||||
st->mclk = pdata->mclk;
|
||||
st->spi = spi;
|
||||
mutex_init(&st->lock);
|
||||
|
||||
indio_dev->dev.parent = &spi->dev;
|
||||
indio_dev->name = spi_get_device_id(spi)->name;
|
||||
|
Loading…
Reference in New Issue
Block a user