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: Himanshi Jain <himshijain.hj@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
Himanshi Jain 2017-09-18 12:29:52 +05:30 committed by Jonathan Cameron
parent f8b7b30fb4
commit 08969366af

View File

@ -81,10 +81,12 @@
* @tx: transmit buffer
* @rx: receive buffer
* @buf_lock: mutex to protect tx and rx
* @lock: protect sensor data
**/
struct ade7753_state {
struct spi_device *us;
struct mutex buf_lock;
struct mutex lock; /* protect sensor data */
u8 tx[ADE7753_MAX_TX] ____cacheline_aligned;
u8 rx[ADE7753_MAX_RX];
};
@ -483,7 +485,7 @@ static ssize_t ade7753_write_frequency(struct device *dev,
if (!val)
return -EINVAL;
mutex_lock(&indio_dev->mlock);
mutex_lock(&st->lock);
t = 27900 / val;
if (t > 0)
@ -504,7 +506,7 @@ static ssize_t ade7753_write_frequency(struct device *dev,
ret = ade7753_spi_write_reg_16(dev, ADE7753_MODE, reg);
out:
mutex_unlock(&indio_dev->mlock);
mutex_unlock(&st->lock);
return ret ? ret : len;
}
@ -579,6 +581,7 @@ static int ade7753_probe(struct spi_device *spi)
st = iio_priv(indio_dev);
st->us = spi;
mutex_init(&st->buf_lock);
mutex_init(&st->lock);
indio_dev->name = spi->dev.driver->name;
indio_dev->dev.parent = &spi->dev;