* [PATCH] iio: ad9523: replace core mlock with local lock
@ 2018-06-25 7:28 Alexandru Ardelean
2018-06-25 7:35 ` Lars-Peter Clausen
0 siblings, 1 reply; 3+ messages in thread
From: Alexandru Ardelean @ 2018-06-25 7:28 UTC (permalink / raw)
To: linux-iio, lars, Michael.Hennerich, jic23
From: Lars-Peter Clausen <lars@metafoo.de>
This is part of a long term effort to make the use of mlock opaque and
single purpose.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
drivers/iio/frequency/ad9523.c | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/drivers/iio/frequency/ad9523.c b/drivers/iio/frequency/ad9523.c
index ddb6a334ae68..1b70e8a13338 100644
--- a/drivers/iio/frequency/ad9523.c
+++ b/drivers/iio/frequency/ad9523.c
@@ -274,6 +274,8 @@ struct ad9523_state {
unsigned long vco_out_freq[AD9523_NUM_CLK_SRC];
unsigned char vco_out_map[AD9523_NUM_CHAN_ALT_CLK_SRC];
+ struct mutex lock;
+
/*
* DMA (thus cache coherency maintenance) requires the
* transfer buffers to live in their own cache lines.
@@ -500,6 +502,7 @@ static ssize_t ad9523_store(struct device *dev,
{
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
+ struct ad9523_state *st = iio_priv(indio_dev);
bool state;
int ret;
@@ -510,7 +513,7 @@ static ssize_t ad9523_store(struct device *dev,
if (!state)
return 0;
- mutex_lock(&indio_dev->mlock);
+ mutex_lock(&st->lock);
switch ((u32)this_attr->address) {
case AD9523_SYNC:
ret = ad9523_sync(indio_dev);
@@ -521,7 +524,7 @@ static ssize_t ad9523_store(struct device *dev,
default:
ret = -ENODEV;
}
- mutex_unlock(&indio_dev->mlock);
+ mutex_unlock(&st->lock);
return ret ? ret : len;
}
@@ -532,15 +535,16 @@ static ssize_t ad9523_show(struct device *dev,
{
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
+ struct ad9523_state *st = iio_priv(indio_dev);
int ret;
- mutex_lock(&indio_dev->mlock);
+ mutex_lock(&st->lock);
ret = ad9523_read(indio_dev, AD9523_READBACK_0);
if (ret >= 0) {
ret = sprintf(buf, "%d\n", !!(ret & (1 <<
(u32)this_attr->address)));
}
- mutex_unlock(&indio_dev->mlock);
+ mutex_unlock(&st->lock);
return ret;
}
@@ -623,9 +627,9 @@ static int ad9523_read_raw(struct iio_dev *indio_dev,
unsigned int code;
int ret;
- mutex_lock(&indio_dev->mlock);
+ mutex_lock(&st->lock);
ret = ad9523_read(indio_dev, AD9523_CHANNEL_CLOCK_DIST(chan->channel));
- mutex_unlock(&indio_dev->mlock);
+ mutex_unlock(&st->lock);
if (ret < 0)
return ret;
@@ -659,7 +663,7 @@ static int ad9523_write_raw(struct iio_dev *indio_dev,
unsigned int reg;
int ret, tmp, code;
- mutex_lock(&indio_dev->mlock);
+ mutex_lock(&st->lock);
ret = ad9523_read(indio_dev, AD9523_CHANNEL_CLOCK_DIST(chan->channel));
if (ret < 0)
goto out;
@@ -705,7 +709,7 @@ static int ad9523_write_raw(struct iio_dev *indio_dev,
ad9523_io_update(indio_dev);
out:
- mutex_unlock(&indio_dev->mlock);
+ mutex_unlock(&st->lock);
return ret;
}
@@ -713,9 +717,10 @@ static int ad9523_reg_access(struct iio_dev *indio_dev,
unsigned int reg, unsigned int writeval,
unsigned int *readval)
{
+ struct ad9523_state *st = iio_priv(indio_dev);
int ret;
- mutex_lock(&indio_dev->mlock);
+ mutex_lock(&st->lock);
if (readval == NULL) {
ret = ad9523_write(indio_dev, reg | AD9523_R1B, writeval);
ad9523_io_update(indio_dev);
@@ -728,7 +733,7 @@ static int ad9523_reg_access(struct iio_dev *indio_dev,
}
out_unlock:
- mutex_unlock(&indio_dev->mlock);
+ mutex_unlock(&st->lock);
return ret;
}
@@ -967,6 +972,8 @@ static int ad9523_probe(struct spi_device *spi)
st = iio_priv(indio_dev);
+ mutex_init(&st->lock);
+
st->reg = devm_regulator_get(&spi->dev, "vcc");
if (!IS_ERR(st->reg)) {
ret = regulator_enable(st->reg);
--
2.17.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] iio: ad9523: replace core mlock with local lock
2018-06-25 7:28 [PATCH] iio: ad9523: replace core mlock with local lock Alexandru Ardelean
@ 2018-06-25 7:35 ` Lars-Peter Clausen
2018-06-25 7:57 ` Ardelean, Alexandru
0 siblings, 1 reply; 3+ messages in thread
From: Lars-Peter Clausen @ 2018-06-25 7:35 UTC (permalink / raw)
To: Alexandru Ardelean, linux-iio, Michael.Hennerich, jic23
On 06/25/2018 09:28 AM, Alexandru Ardelean wrote:
> From: Lars-Peter Clausen <lars@metafoo.de>
>
> This is part of a long term effort to make the use of mlock opaque and
> single purpose.
>
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
When you send a patch you need to sign off on it.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] iio: ad9523: replace core mlock with local lock
2018-06-25 7:35 ` Lars-Peter Clausen
@ 2018-06-25 7:57 ` Ardelean, Alexandru
0 siblings, 0 replies; 3+ messages in thread
From: Ardelean, Alexandru @ 2018-06-25 7:57 UTC (permalink / raw)
To: lars@metafoo.de, linux-iio@vger.kernel.org, Hennerich, Michael,
jic23@kernel.org
T24gTW9uLCAyMDE4LTA2LTI1IGF0IDA5OjM1ICswMjAwLCBMYXJzLVBldGVyIENsYXVzZW4gd3Jv
dGU6DQo+IE9uIDA2LzI1LzIwMTggMDk6MjggQU0sIEFsZXhhbmRydSBBcmRlbGVhbiB3cm90ZToN
Cj4gPiBGcm9tOiBMYXJzLVBldGVyIENsYXVzZW4gPGxhcnNAbWV0YWZvby5kZT4NCj4gPiANCj4g
PiBUaGlzIGlzIHBhcnQgb2YgYSBsb25nIHRlcm0gZWZmb3J0IHRvIG1ha2UgdGhlIHVzZSBvZiBt
bG9jayBvcGFxdWUgYW5kDQo+ID4gc2luZ2xlIHB1cnBvc2UuDQo+ID4gDQo+ID4gU2lnbmVkLW9m
Zi1ieTogTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+DQo+IA0KPiBXaGVuIHlv
dSBzZW5kIGEgcGF0Y2ggeW91IG5lZWQgdG8gc2lnbiBvZmYgb24gaXQuDQo+IA0KQWNrLg0KDQpX
aWxsIHJlLXNlbmQ=
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-06-25 7:57 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-25 7:28 [PATCH] iio: ad9523: replace core mlock with local lock Alexandru Ardelean
2018-06-25 7:35 ` Lars-Peter Clausen
2018-06-25 7:57 ` Ardelean, Alexandru
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).