Replace mlock with private lock and remove unnecessary goto
Subsystems (4)
v4 cover Replace mlock with private lock and remove unnecessary goto
The patch set replaces mlock with private lock for driver ad9834 and removes unnecessary goto.
sayli karnik (2):
staging: iio: ad9834: Use private driver lock instead of mlock
staging: iio: ad9834: Remove unnecessary goto statement
drivers/staging/iio/frequency/ad9834.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-)
Signature · 1 line
2.7.4
PATCH v4 1/2 staging: iio: ad9834: Use private driver lock instead of mlock
iio_dev->mlock should be used by the IIO core only for protecting device operating mode changes. ie. Changes between INDIO_DIRECT_MODE, INDIO_BUFFER_* modes.
Replace mlock with a lock in the device's global data to protect hardware state changes.
---
v4:
Initialised the lock with mutex_init() and sent as a patchset v2:
Fixed mistake by changing mutex_lock() to mutex_unlock()
drivers/staging/iio/frequency/ad9834.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
drivers/staging/iio/frequency/ad9834.c +7 -4
@@ -63,6 +63,7 @@* @msg: default spi message * @freq_xfer: tuning word spi transfer * @freq_msg: tuning word spi message +* @lock: protect sensor state * @data: spi transmit buffer * @freq_data: tuning word spi transmit buffer */
@@ -77,6 +78,7 @@ struct ad9834_state {struct spi_message msg;struct spi_transfer freq_xfer[2 ];struct spi_message freq_msg; +struct mutex lock;/* protect sensor state */ /* * DMA (thus cache coherency maintenance) requires the
@@ -149,7 +151,7 @@ static ssize_t ad9834_write(struct device *dev,if (ret) goto error_ret; -mutex_lock (&indio_dev->mlock); +mutex_lock (&st->lock);switch ((u32 )this_attr->address) {case AD9834_REG_FREQ0 :case AD9834_REG_FREQ1 :
@@ -207,7 +209,7 @@ static ssize_t ad9834_write(struct device *dev,default : ret = -ENODEV ; } -mutex_unlock (&indio_dev->mlock); +mutex_unlock (&st->lock); error_ret:return ret ? ret : len;
@@ -224,7 +226,7 @@ static ssize_t ad9834_store_wavetype(struct device *dev,int ret =0 ;bool is_ad9833_7 = (st->devid ==ID_AD9833 ) || (st->devid ==ID_AD9837 ); -mutex_lock (&indio_dev->mlock); +mutex_lock (&st->lock);switch ((u32 )this_attr->address) {case 0 :
@@ -267,7 +269,7 @@ static ssize_t ad9834_store_wavetype(struct device *dev, st->data =cpu_to_be16 (AD9834_REG_CMD | st->control); ret =spi_sync (st->spi, &st->msg); } -mutex_unlock (&indio_dev->mlock); +mutex_unlock (&st->lock);return ret ? ret : len; }
@@ -418,6 +420,7 @@ static int ad9834_probe(struct spi_device *spi) }spi_set_drvdata (spi, indio_dev); st =iio_priv (indio_dev); +mutex_init (&st->lock); st->mclk = pdata->mclk; st->spi = spi; st->devid =spi_get_device_id (spi)->driver_data;
Signature · 1 line
2.7.4
PATCH v4 2/2 staging: iio: ad9834: Remove unnecessary goto statement
In reply to sayli karnikThe patch removes unnecessary use of goto statement.
---
v3:
Uncompressed return logic to avoid calling the function twice
drivers/staging/iio/frequency/ad9834.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/staging/iio/frequency/ad9834.c +1 -2
@@ -149,7 +149,7 @@ static ssize_t ad9834_write(struct device *dev, ret =kstrtoul (buf,10 , &val);if (ret) - goto error_ret; +return ret;mutex_lock (&st->lock);switch ((u32 )this_attr->address) {
@@ -211,7 +211,6 @@ static ssize_t ad9834_write(struct device *dev, }mutex_unlock (&st->lock); -error_ret:return ret ? ret : len; }
Signature · 1 line
2.7.4
Re: [PATCH v4 2/2] staging: iio: ad9834: Remove unnecessary goto statement
Quoted 3 lines · sayli karnik
The patch removes unnecessary use of goto statement.
Signed-off-by sayli karnik <[email protected]>
Applied. Thanks,
Jonathan
Quoted 29 lines
---
v3:
Uncompressed return logic to avoid calling the function twicedrivers/staging/iio/frequency/ad9834.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)drivers/staging/iio/frequency/ad9834.c +1
-2@@ -149,7 +149,7 @@ static ssize_t ad9834_write(struct device *dev, ret =kstrtoul (buf,10 , &val);if (ret) - goto error_ret; +return ret;mutex_lock (&st->lock);switch ((u32 )this_attr->address) {@@ -211,7 +211,6 @@ static ssize_t ad9834_write(struct device *dev, }mutex_unlock (&st->lock); -error_ret:return ret ? ret : len; }