Commit 08969366 authored by Himanshi Jain's avatar Himanshi Jain Committed by Jonathan Cameron

staging: iio: ade7753: replace mlock with driver private lock

Replace driver usage of mlock with driver private lock to meet the new
model where usage of iio_dev->mlock is being redefined as protecting
operating mode changes(changes between BUFFER* and DIRECT modes).
Signed-off-by: default avatarHimanshi Jain <himshijain.hj@gmail.com>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent f8b7b30f
...@@ -81,10 +81,12 @@ ...@@ -81,10 +81,12 @@
* @tx: transmit buffer * @tx: transmit buffer
* @rx: receive buffer * @rx: receive buffer
* @buf_lock: mutex to protect tx and rx * @buf_lock: mutex to protect tx and rx
* @lock: protect sensor data
**/ **/
struct ade7753_state { struct ade7753_state {
struct spi_device *us; struct spi_device *us;
struct mutex buf_lock; struct mutex buf_lock;
struct mutex lock; /* protect sensor data */
u8 tx[ADE7753_MAX_TX] ____cacheline_aligned; u8 tx[ADE7753_MAX_TX] ____cacheline_aligned;
u8 rx[ADE7753_MAX_RX]; u8 rx[ADE7753_MAX_RX];
}; };
...@@ -483,7 +485,7 @@ static ssize_t ade7753_write_frequency(struct device *dev, ...@@ -483,7 +485,7 @@ static ssize_t ade7753_write_frequency(struct device *dev,
if (!val) if (!val)
return -EINVAL; return -EINVAL;
mutex_lock(&indio_dev->mlock); mutex_lock(&st->lock);
t = 27900 / val; t = 27900 / val;
if (t > 0) if (t > 0)
...@@ -504,7 +506,7 @@ static ssize_t ade7753_write_frequency(struct device *dev, ...@@ -504,7 +506,7 @@ static ssize_t ade7753_write_frequency(struct device *dev,
ret = ade7753_spi_write_reg_16(dev, ADE7753_MODE, reg); ret = ade7753_spi_write_reg_16(dev, ADE7753_MODE, reg);
out: out:
mutex_unlock(&indio_dev->mlock); mutex_unlock(&st->lock);
return ret ? ret : len; return ret ? ret : len;
} }
...@@ -579,6 +581,7 @@ static int ade7753_probe(struct spi_device *spi) ...@@ -579,6 +581,7 @@ static int ade7753_probe(struct spi_device *spi)
st = iio_priv(indio_dev); st = iio_priv(indio_dev);
st->us = spi; st->us = spi;
mutex_init(&st->buf_lock); mutex_init(&st->buf_lock);
mutex_init(&st->lock);
indio_dev->name = spi->dev.driver->name; indio_dev->name = spi->dev.driver->name;
indio_dev->dev.parent = &spi->dev; indio_dev->dev.parent = &spi->dev;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment