iio: light: isl29125: use iio helper function to guarantee direct mode
PATCH 1/1 iio: light: isl29125: use iio helper function to guarantee direct mode
Replace the code that guarantees the device stays in direct mode with iio_device_claim_direct_mode() which does same. This allows removal of an unused lock in the device private global data.
--- drivers/iio/light/isl29125.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
drivers/iio/light/isl29125.c +4 -6
@@ -50,7 +50,6 @@struct isl29125_data {struct i2c_client *client; -struct mutex lock;u8 conf1;u16 buffer[8 ];/* 3x 16-bit, padding, 8 bytes timestamp */ };
@@ -128,11 +127,11 @@ static int isl29125_read_raw(struct iio_dev *indio_dev,switch (mask) {case IIO_CHAN_INFO_RAW : -if (iio_buffer_enabled (indio_dev)) -return -EBUSY ; -mutex_lock (&data->lock); + ret =iio_device_claim_direct_mode (indio_dev); +if (ret) +return ret; ret =isl29125_read_data (data, chan->scan_index); -mutex_unlock (&data->lock); +iio_device_release_direct_mode (indio_dev);if (ret <0 )return ret; *val = ret;
@@ -259,7 +258,6 @@ static int isl29125_probe(struct i2c_client *client, data =iio_priv (indio_dev);i2c_set_clientdata (client, indio_dev); data->client = client; -mutex_init (&data->lock); indio_dev->dev.parent = &client->dev; indio_dev->info = &isl29125_info;
Signature · 1 line
2.1.4
Quoted 4 lines
Replace the code that guarantees the device stays in direct mode with
iio_device_claim_direct_mode()which does same. This allows removal of an unused lock in the device private global data.
nice!
Quoted 43 lines
Signed-off-by Alison Schofield <[email protected]>Cc Daniel Baluta <[email protected]>--- drivers/iio/light/isl29125.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)drivers/iio/light/isl29125.c +4
-6@@ -50,7 +50,6 @@struct isl29125_data {struct i2c_client *client; -struct mutex lock;u8 conf1;u16 buffer[8 ];/* 3x 16-bit, padding, 8 bytes timestamp */ };@@ -128,11 +127,11 @@ static int isl29125_read_raw(struct iio_dev *indio_dev,switch (mask) {case IIO_CHAN_INFO_RAW : -if (iio_buffer_enabled (indio_dev)) -return -EBUSY ; -mutex_lock (&data->lock); + ret =iio_device_claim_direct_mode (indio_dev); +if (ret) +return ret; ret =isl29125_read_data (data, chan->scan_index); -mutex_unlock (&data->lock); +iio_device_release_direct_mode (indio_dev);if (ret <0 )return ret; *val = ret;@@ -259,7 +258,6 @@ static int isl29125_probe(struct i2c_client *client, data =iio_priv (indio_dev);i2c_set_clientdata (client, indio_dev); data->client = client; -mutex_init (&data->lock); indio_dev->dev.parent = &client->dev; indio_dev->info = &isl29125_info;
Signature · 2 lines
Peter Meerwald-Stadler +43-664-2444418 (mobile)
Jonathan Cameron
maintainerQuoted 7 lines · Peter Meerwald-Stadler
Quoted 4 lines
Replace the code that guarantees the device stays in direct mode with
iio_device_claim_direct_mode()which does same. This allows removal of an unused lock in the device private global data.nice!
Applied and pushed out as testing for the autobuilders to play with it.
Thanks,
Jonathan
Quoted 45 lines
Quoted 44 lines
Signed-off-by Alison Schofield <[email protected]>Cc Daniel Baluta <[email protected]>--- drivers/iio/light/isl29125.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)drivers/iio/light/isl29125.c +4
-6@@ -50,7 +50,6 @@struct isl29125_data {struct i2c_client *client; -struct mutex lock;u8 conf1;u16 buffer[8 ];/* 3x 16-bit, padding, 8 bytes timestamp */ };@@ -128,11 +127,11 @@ static int isl29125_read_raw(struct iio_dev *indio_dev,switch (mask) {case IIO_CHAN_INFO_RAW : -if (iio_buffer_enabled (indio_dev)) -return -EBUSY ; -mutex_lock (&data->lock); + ret =iio_device_claim_direct_mode (indio_dev); +if (ret) +return ret; ret =isl29125_read_data (data, chan->scan_index); -mutex_unlock (&data->lock); +iio_device_release_direct_mode (indio_dev);if (ret <0 )return ret; *val = ret;@@ -259,7 +258,6 @@ static int isl29125_probe(struct i2c_client *client, data =iio_priv (indio_dev);i2c_set_clientdata (client, indio_dev); data->client = client; -mutex_init (&data->lock); indio_dev->dev.parent = &client->dev; indio_dev->info = &isl29125_info;
Jonathan Cameron
maintainerQuoted 9 lines · Jonathan Cameron
Quoted 7 lines · Peter Meerwald-Stadler
Quoted 4 lines
Replace the code that guarantees the device stays in direct mode with
iio_device_claim_direct_mode()which does same. This allows removal of an unused lock in the device private global data.nice!
Applied and pushed out as testing for the autobuilders to play with it.
Actually hold that - see the tcs3472 response. This lock isn't actually here to prevent the buffer running at the same time as the raw call...
Backed out for now.
Jonathan
Quoted 55 lines
Thanks,
Jonathan
Quoted 41 lines
Quoted 41 lines
Signed-off-by Alison Schofield <[email protected]>Cc Daniel Baluta <[email protected]>--- drivers/iio/light/isl29125.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)drivers/iio/light/isl29125.c +4
-6@@ -50,7 +50,6 @@struct isl29125_data {struct i2c_client *client; -struct mutex lock;u8 conf1;u16 buffer[8 ];/* 3x 16-bit, padding, 8 bytes timestamp */ };@@ -128,11 +127,11 @@ static int isl29125_read_raw(struct iio_dev *indio_dev,switch (mask) {case IIO_CHAN_INFO_RAW : -if (iio_buffer_enabled (indio_dev)) -return -EBUSY ; -mutex_lock (&data->lock); + ret =iio_device_claim_direct_mode (indio_dev); +if (ret) +return ret; ret =isl29125_read_data (data, chan->scan_index); -mutex_unlock (&data->lock); +iio_device_release_direct_mode (indio_dev);if (ret <0 )return ret; *val = ret;@@ -259,7 +258,6 @@ static int isl29125_probe(struct i2c_client *client, data =iio_priv (indio_dev);i2c_set_clientdata (client, indio_dev); data->client = client; -mutex_init (&data->lock);Quoted 4 lines
drivers/iio/light/isl29125.c static int isl29125_probe(struct i2c_client *client, · line 263
Quoted 3 lines
drivers/iio/light/isl29125.c +0
-0indio_dev->dev.parent = &client->dev; indio_dev->info = &isl29125_info;--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Jonathan Cameron
maintainerQuoted 7 lines · Jonathan Cameron
Quoted 6 lines · Jonathan Cameron
Quoted 5 lines · Peter Meerwald-Stadler
Quoted 4 lines
Replace the code that guarantees the device stays in direct mode with
iio_device_claim_direct_mode()which does same. This allows removal of an unused lock in the device private global data.
Quoted 7 lines
Quoted 3 lines
Quoted 2 lines
nice!
Applied and pushed out as testing for the autobuilders to play with it.
Actually hold that - see the tcs3472 response. This lock isn't actually here to prevent the buffer running at the same time as the raw call...
Backed out for now.
Reapplied...
Quoted 63 lines
Jonathan
Quoted 50 lines
Thanks,
Jonathan
Quoted 41 lines
Quoted 41 lines
Signed-off-by Alison Schofield <[email protected]>Cc Daniel Baluta <[email protected]>--- drivers/iio/light/isl29125.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)drivers/iio/light/isl29125.c +4
-6@@ -50,7 +50,6 @@struct isl29125_data {struct i2c_client *client; -struct mutex lock;u8 conf1;u16 buffer[8 ];/* 3x 16-bit, padding, 8 bytes timestamp */ };@@ -128,11 +127,11 @@ static int isl29125_read_raw(struct iio_dev *indio_dev,switch (mask) {case IIO_CHAN_INFO_RAW : -if (iio_buffer_enabled (indio_dev)) -return -EBUSY ; -mutex_lock (&data->lock); + ret =iio_device_claim_direct_mode (indio_dev); +if (ret) +return ret; ret =isl29125_read_data (data, chan->scan_index); -mutex_unlock (&data->lock); +iio_device_release_direct_mode (indio_dev);if (ret <0 )return ret; *val = ret;@@ -259,7 +258,6 @@ static int isl29125_probe(struct i2c_client *client, data =iio_priv (indio_dev);i2c_set_clientdata (client, indio_dev); data->client = client; -mutex_init (&data->lock);Quoted 4 lines
drivers/iio/light/isl29125.c static int isl29125_probe(struct i2c_client *client, · line 263
Quoted 3 lines
drivers/iio/light/isl29125.c +0
-0indio_dev->dev.parent = &client->dev; indio_dev->info = &isl29125_info;Quoted 5 lines
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html