On Wed, 26 Aug 2020 09:40:28 +0300 Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> wrote: > From: Sergiu Cuciurean <sergiu.cuciurean@xxxxxxxxxx> > > As part of the general cleanup of indio_dev->mlock, this change replaces > it with a local lock on the device's state structure. > > Signed-off-by: Sergiu Cuciurean <sergiu.cuciurean@xxxxxxxxxx> > Signed-off-by: Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> > --- > drivers/iio/dac/ti-dac7612.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/dac/ti-dac7612.c b/drivers/iio/dac/ti-dac7612.c > index 07c9f39d54f1..34c2aec204ef 100644 > --- a/drivers/iio/dac/ti-dac7612.c > +++ b/drivers/iio/dac/ti-dac7612.c > @@ -21,6 +21,7 @@ struct dac7612 { > struct spi_device *spi; > struct gpio_desc *loaddacs; > uint16_t cache[2]; > + struct mutex lock; Looks fine with the exception of my usual request for a comment explaining lock scope. Thanks, Jonathan > > /* > * DMA (thus cache coherency maintenance) requires the > @@ -101,9 +102,9 @@ static int dac7612_write_raw(struct iio_dev *iio_dev, > if (val == priv->cache[chan->channel]) > return 0; > > - mutex_lock(&iio_dev->mlock); > + mutex_lock(&priv->lock); > ret = dac7612_cmd_single(priv, chan->channel, val); > - mutex_unlock(&iio_dev->mlock); > + mutex_unlock(&priv->lock); > > return ret; > } > @@ -145,6 +146,8 @@ static int dac7612_probe(struct spi_device *spi) > iio_dev->num_channels = ARRAY_SIZE(priv->cache); > iio_dev->name = spi_get_device_id(spi)->name; > > + mutex_init(&priv->lock); > + > for (i = 0; i < ARRAY_SIZE(priv->cache); i++) { > ret = dac7612_cmd_single(priv, i, 0); > if (ret)