iio:humidity:si7020: cleanup read_raw and probe
PATCH 1/1 iio:humidity:si7020: cleanup read_raw and probe
When reading temperature or humidity values, a shift of two bits to the right needs to be applied, and only for the humidity channel a mask of the lower 12 bits needs to be applied. This reduces code repetition.
During probe, i2c_set_clientdata() was used, although its counterpart was not, so drop it.
---
drivers/iio/humidity/si7020.c +3 -5
@@ -56,10 +56,9 @@ static int si7020_read_raw(struct iio_dev *indio_dev, SI7020CMD_RH_HOLD);if (ret <0 )return ret; -if (chan->type ==IIO_TEMP ) - *val = ret >>2 ; -else - *val = (ret &0x3FFF ) >>2 ; + *val = ret >>2 ; +if (chan->type ==IIO_HUMIDITYRELATIVE ) + *val &=GENMASK (11 ,0 );return IIO_VAL_INT ;case IIO_CHAN_INFO_SCALE :if (chan->type ==IIO_TEMP )
@@ -133,7 +132,6 @@ static int si7020_probe(struct i2c_client *client, data =iio_priv (indio_dev); *data = client; -i2c_set_clientdata (client, indio_dev); indio_dev->dev.parent = &client->dev; indio_dev->name =dev_name (&client->dev);
Jonathan Cameron
maintainerQuoted 7 lines · Hartmut Knaack
When reading temperature or humidity values, a shift of two bits to the right needs to be applied, and only for the humidity channel a mask of the lower 12 bits needs to be applied. This reduces code repetition.
During probe,i2c_set_clientdata()was used, although its counterpart was not, so drop it.Signed-off-by Hartmut Knaack <[email protected]>
Applied to the togreg branch of iio.git, initially pushed out as testing. Thanks for the cleanup.
J
Quoted 33 lines
---
drivers/iio/humidity/si7020.c +3
-6@@ -56,10 +56,9 @@ static int si7020_read_raw(struct iio_dev *indio_dev, SI7020CMD_RH_HOLD);if (ret <0 )return ret; -if (chan->type ==IIO_TEMP ) - *val = ret >>2 ; -else - *val = (ret &0x3FFF ) >>2 ; + *val = ret >>2 ; +if (chan->type ==IIO_HUMIDITYRELATIVE ) + *val &=GENMASK (11 ,0 );return IIO_VAL_INT ;case IIO_CHAN_INFO_SCALE :if (chan->type ==IIO_TEMP )@@ -133,7 +132,6 @@ static int si7020_probe(struct i2c_client *client, data =iio_priv (indio_dev); *data = client; -i2c_set_clientdata (client, indio_dev); indio_dev->dev.parent = &client->dev; indio_dev->name =dev_name (&client->dev); --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