Skip to content

Commit

Permalink
staging:iio: Do not use bitmasks for channel info addresses
Browse files Browse the repository at this point in the history
Currently the iio framework uses bitmasks for the address field of channel info
attributes. This is for historical reasons and no longer required since it will
only ever query a single info attribute at once. This patch changes the code to
use the non-shifted iio_chan_info_enum values for the info attribute address.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Lars-Peter Clausen authored and Greg Kroah-Hartman committed Nov 27, 2011
1 parent 3014cd9 commit 924f8a2
Show file tree
Hide file tree
Showing 38 changed files with 112 additions and 111 deletions.
10 changes: 5 additions & 5 deletions drivers/staging/iio/accel/adis16201_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -322,8 +322,8 @@ static int adis16201_read_raw(struct iio_dev *indio_dev,
*val = val16;
mutex_unlock(&indio_dev->mlock);
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_SCALE_SEPARATE):
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SEPARATE:
case IIO_CHAN_INFO_SCALE_SHARED:
switch (chan->type) {
case IIO_VOLTAGE:
*val = 0;
Expand All @@ -348,10 +348,10 @@ static int adis16201_read_raw(struct iio_dev *indio_dev,
return -EINVAL;
}
break;
case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE):
case IIO_CHAN_INFO_OFFSET_SEPARATE:
*val = 25;
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE):
case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
switch (chan->type) {
case IIO_ACCEL:
bits = 12;
Expand Down Expand Up @@ -388,7 +388,7 @@ static int adis16201_write_raw(struct iio_dev *indio_dev,
s16 val16;
u8 addr;
switch (mask) {
case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE):
case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
switch (chan->type) {
case IIO_ACCEL:
bits = 12;
Expand Down
8 changes: 4 additions & 4 deletions drivers/staging/iio/accel/adis16203_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -329,8 +329,8 @@ static int adis16203_read_raw(struct iio_dev *indio_dev,
*val = val16;
mutex_unlock(&indio_dev->mlock);
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_SCALE_SEPARATE):
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SEPARATE:
case IIO_CHAN_INFO_SCALE_SHARED:
switch (chan->type) {
case IIO_VOLTAGE:
*val = 0;
Expand All @@ -350,10 +350,10 @@ static int adis16203_read_raw(struct iio_dev *indio_dev,
default:
return -EINVAL;
}
case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE):
case IIO_CHAN_INFO_OFFSET_SEPARATE:
*val = 25;
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE):
case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
bits = 14;
mutex_lock(&indio_dev->mlock);
addr = adis16203_addresses[chan->address][1];
Expand Down
12 changes: 6 additions & 6 deletions drivers/staging/iio/accel/adis16204_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@ static int adis16204_read_raw(struct iio_dev *indio_dev,
*val = val16;
mutex_unlock(&indio_dev->mlock);
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_SCALE_SEPARATE):
case IIO_CHAN_INFO_SCALE_SEPARATE:
switch (chan->type) {
case IIO_VOLTAGE:
*val = 0;
Expand All @@ -390,12 +390,12 @@ static int adis16204_read_raw(struct iio_dev *indio_dev,
return -EINVAL;
}
break;
case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE):
case IIO_CHAN_INFO_OFFSET_SEPARATE:
*val = 25;
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE):
case (1 << IIO_CHAN_INFO_PEAK_SEPARATE):
if (mask == (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE)) {
case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
case IIO_CHAN_INFO_PEAK_SEPARATE:
if (mask == IIO_CHAN_INFO_CALIBBIAS_SEPARATE) {
bits = 12;
addrind = 1;
} else { /* PEAK_SEPARATE */
Expand Down Expand Up @@ -428,7 +428,7 @@ static int adis16204_write_raw(struct iio_dev *indio_dev,
s16 val16;
u8 addr;
switch (mask) {
case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE):
case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
switch (chan->type) {
case IIO_ACCEL:
bits = 12;
Expand Down
10 changes: 5 additions & 5 deletions drivers/staging/iio/accel/adis16209_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ static int adis16209_write_raw(struct iio_dev *indio_dev,
s16 val16;
u8 addr;
switch (mask) {
case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE):
case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
switch (chan->type) {
case IIO_ACCEL:
case IIO_INCLI:
Expand Down Expand Up @@ -355,8 +355,8 @@ static int adis16209_read_raw(struct iio_dev *indio_dev,
*val = val16;
mutex_unlock(&indio_dev->mlock);
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_SCALE_SEPARATE):
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SEPARATE:
case IIO_CHAN_INFO_SCALE_SHARED:
switch (chan->type) {
case IIO_VOLTAGE:
*val = 0;
Expand All @@ -381,10 +381,10 @@ static int adis16209_read_raw(struct iio_dev *indio_dev,
return -EINVAL;
}
break;
case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE):
case IIO_CHAN_INFO_OFFSET_SEPARATE:
*val = 25;
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE):
case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
switch (chan->type) {
case IIO_ACCEL:
bits = 14;
Expand Down
6 changes: 3 additions & 3 deletions drivers/staging/iio/accel/adis16220_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -510,17 +510,17 @@ static int adis16220_read_raw(struct iio_dev *indio_dev,
case 0:
addrind = 0;
break;
case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE):
case IIO_CHAN_INFO_OFFSET_SEPARATE:
if (chan->type == IIO_TEMP) {
*val = 25;
return IIO_VAL_INT;
}
addrind = 1;
break;
case (1 << IIO_CHAN_INFO_PEAK_SEPARATE):
case IIO_CHAN_INFO_PEAK_SEPARATE:
addrind = 2;
break;
case (1 << IIO_CHAN_INFO_SCALE_SEPARATE):
case IIO_CHAN_INFO_SCALE_SEPARATE:
*val = 0;
switch (chan->type) {
case IIO_TEMP:
Expand Down
14 changes: 7 additions & 7 deletions drivers/staging/iio/accel/adis16240_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -389,8 +389,8 @@ static int adis16240_read_raw(struct iio_dev *indio_dev,
*val = val16;
mutex_unlock(&indio_dev->mlock);
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_SCALE_SEPARATE):
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SEPARATE:
case IIO_CHAN_INFO_SCALE_SHARED:
switch (chan->type) {
case IIO_VOLTAGE:
*val = 0;
Expand All @@ -411,14 +411,14 @@ static int adis16240_read_raw(struct iio_dev *indio_dev,
return -EINVAL;
}
break;
case (1 << IIO_CHAN_INFO_PEAK_SCALE_SHARED):
case IIO_CHAN_INFO_PEAK_SCALE_SHARED:
*val = 6;
*val2 = 629295;
return IIO_VAL_INT_PLUS_MICRO;
case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE):
case IIO_CHAN_INFO_OFFSET_SEPARATE:
*val = 25;
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE):
case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
bits = 10;
mutex_lock(&indio_dev->mlock);
addr = adis16240_addresses[chan->address][1];
Expand All @@ -432,7 +432,7 @@ static int adis16240_read_raw(struct iio_dev *indio_dev,
*val = val16;
mutex_unlock(&indio_dev->mlock);
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_PEAK_SEPARATE):
case IIO_CHAN_INFO_PEAK_SEPARATE:
bits = 10;
mutex_lock(&indio_dev->mlock);
addr = adis16240_addresses[chan->address][2];
Expand Down Expand Up @@ -460,7 +460,7 @@ static int adis16240_write_raw(struct iio_dev *indio_dev,
s16 val16;
u8 addr;
switch (mask) {
case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE):
case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
val16 = val & ((1 << bits) - 1);
addr = adis16240_addresses[chan->address][1];
return adis16240_spi_write_reg_16(indio_dev, addr, val16);
Expand Down
4 changes: 2 additions & 2 deletions drivers/staging/iio/accel/kxsd9.c
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ static int kxsd9_write_raw(struct iio_dev *indio_dev,
{
int ret = -EINVAL;

if (mask == (1 << IIO_CHAN_INFO_SCALE_SHARED)) {
if (mask == IIO_CHAN_INFO_SCALE_SHARED) {
/* Check no integer component */
if (val)
return -EINVAL;
Expand All @@ -164,7 +164,7 @@ static int kxsd9_read_raw(struct iio_dev *indio_dev,
goto error_ret;
*val = ret;
break;
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SHARED:
ret = spi_w8r8(st->us, KXSD9_READ(KXSD9_REG_CTRL_C));
if (ret)
goto error_ret;
Expand Down
10 changes: 5 additions & 5 deletions drivers/staging/iio/accel/lis3l02dq_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -227,14 +227,14 @@ static int lis3l02dq_write_raw(struct iio_dev *indio_dev,
u8 uval;
s8 sval;
switch (mask) {
case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE):
case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
if (val > 255 || val < -256)
return -EINVAL;
sval = val;
reg = lis3l02dq_axis_map[LIS3L02DQ_BIAS][chan->address];
ret = lis3l02dq_spi_write_reg_8(indio_dev, reg, sval);
break;
case (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE):
case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
if (val & ~0xFF)
return -EINVAL;
uval = val;
Expand Down Expand Up @@ -272,11 +272,11 @@ static int lis3l02dq_read_raw(struct iio_dev *indio_dev,
}
mutex_unlock(&indio_dev->mlock);
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SHARED:
*val = 0;
*val2 = 9580;
return IIO_VAL_INT_PLUS_MICRO;
case (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE):
case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
reg = lis3l02dq_axis_map[LIS3L02DQ_GAIN][chan->address];
ret = lis3l02dq_spi_read_reg_8(indio_dev, reg, &utemp);
if (ret)
Expand All @@ -285,7 +285,7 @@ static int lis3l02dq_read_raw(struct iio_dev *indio_dev,
*val = utemp;
return IIO_VAL_INT;

case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE):
case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
reg = lis3l02dq_axis_map[LIS3L02DQ_BIAS][chan->address];
ret = lis3l02dq_spi_read_reg_8(indio_dev, reg, (u8 *)&stemp);
/* to match with what previous code does */
Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/iio/accel/sca3000_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -475,7 +475,7 @@ static int sca3000_read_raw(struct iio_dev *indio_dev,
(sizeof(*val)*8 - 13);
mutex_unlock(&st->lock);
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SHARED:
*val = 0;
if (chan->type == IIO_ACCEL)
*val2 = st->info->scale;
Expand Down
6 changes: 3 additions & 3 deletions drivers/staging/iio/adc/ad7192.c
Original file line number Diff line number Diff line change
Expand Up @@ -901,15 +901,15 @@ static int ad7192_read_raw(struct iio_dev *indio_dev,
}
return IIO_VAL_INT;

case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SHARED:
mutex_lock(&indio_dev->mlock);
*val = st->scale_avail[AD7192_CONF_GAIN(st->conf)][0];
*val2 = st->scale_avail[AD7192_CONF_GAIN(st->conf)][1];
mutex_unlock(&indio_dev->mlock);

return IIO_VAL_INT_PLUS_NANO;

case (1 << IIO_CHAN_INFO_SCALE_SEPARATE):
case IIO_CHAN_INFO_SCALE_SEPARATE:
*val = 1000;

return IIO_VAL_INT;
Expand All @@ -935,7 +935,7 @@ static int ad7192_write_raw(struct iio_dev *indio_dev,
}

switch (mask) {
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SHARED:
ret = -EINVAL;
for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++)
if (val2 == st->scale_avail[i][1]) {
Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/iio/adc/ad7280a.c
Original file line number Diff line number Diff line change
Expand Up @@ -803,7 +803,7 @@ static int ad7280_read_raw(struct iio_dev *indio_dev,
*val = ret;

return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SHARED:
if ((chan->address & 0xFF) <= AD7280A_CELL_VOLTAGE_6)
scale_uv = (4000 * 1000) >> AD7280A_BITS;
else
Expand Down
6 changes: 3 additions & 3 deletions drivers/staging/iio/adc/ad7291.c
Original file line number Diff line number Diff line change
Expand Up @@ -501,7 +501,7 @@ static int ad7291_read_raw(struct iio_dev *indio_dev,
default:
return -EINVAL;
}
case (1 << IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE):
case IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE:
ret = i2c_smbus_read_word_data(chip->client,
AD7291_T_AVERAGE);
if (ret < 0)
Expand All @@ -510,12 +510,12 @@ static int ad7291_read_raw(struct iio_dev *indio_dev,
AD7291_VALUE_MASK) << 4) >> 4;
*val = signval;
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SHARED:
scale_uv = (chip->int_vref_mv * 1000) >> AD7291_BITS;
*val = scale_uv / 1000;
*val2 = (scale_uv % 1000) * 1000;
return IIO_VAL_INT_PLUS_MICRO;
case (1 << IIO_CHAN_INFO_SCALE_SEPARATE):
case IIO_CHAN_INFO_SCALE_SEPARATE:
/*
* One LSB of the ADC corresponds to 0.25 deg C.
* The temperature reading is in 12-bit twos complement format
Expand Down
4 changes: 2 additions & 2 deletions drivers/staging/iio/adc/ad7298_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -143,12 +143,12 @@ static int ad7298_read_raw(struct iio_dev *indio_dev,
*val = ret & RES_MASK(AD7298_BITS);

return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SHARED:
scale_uv = (st->int_vref_mv * 1000) >> AD7298_BITS;
*val = scale_uv / 1000;
*val2 = (scale_uv % 1000) * 1000;
return IIO_VAL_INT_PLUS_MICRO;
case (1 << IIO_CHAN_INFO_SCALE_SEPARATE):
case IIO_CHAN_INFO_SCALE_SEPARATE:
*val = 1;
*val2 = 0;
return IIO_VAL_INT_PLUS_MICRO;
Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/iio/adc/ad7476_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ static int ad7476_read_raw(struct iio_dev *indio_dev,
*val = (ret >> st->chip_info->channel[0].scan_type.shift) &
RES_MASK(st->chip_info->channel[0].scan_type.realbits);
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SHARED:
scale_uv = (st->int_vref_mv * 1000)
>> st->chip_info->channel[0].scan_type.realbits;
*val = scale_uv/1000;
Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/iio/adc/ad7606_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ static int ad7606_read_raw(struct iio_dev *indio_dev,
return ret;
*val = (short) ret;
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SHARED:
scale_uv = (st->range * 1000 * 2)
>> st->chip_info->channels[0].scan_type.realbits;
*val = scale_uv / 1000;
Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/iio/adc/ad7780.c
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ static int ad7780_read_raw(struct iio_dev *indio_dev,
*val *= 128;

return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SHARED:
scale_uv = (st->int_vref_mv * 100000)
>> (channel.scan_type.realbits - 1);
*val = scale_uv / 100000;
Expand Down
6 changes: 3 additions & 3 deletions drivers/staging/iio/adc/ad7793.c
Original file line number Diff line number Diff line change
Expand Up @@ -667,13 +667,13 @@ static int ad7793_read_raw(struct iio_dev *indio_dev,

return IIO_VAL_INT;

case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SHARED:
*val = st->scale_avail[(st->conf >> 8) & 0x7][0];
*val2 = st->scale_avail[(st->conf >> 8) & 0x7][1];

return IIO_VAL_INT_PLUS_NANO;

case (1 << IIO_CHAN_INFO_SCALE_SEPARATE):
case IIO_CHAN_INFO_SCALE_SEPARATE:
switch (chan->type) {
case IIO_VOLTAGE:
/* 1170mV / 2^23 * 6 */
Expand Down Expand Up @@ -716,7 +716,7 @@ static int ad7793_write_raw(struct iio_dev *indio_dev,
}

switch (mask) {
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SHARED:
ret = -EINVAL;
for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++)
if (val2 == st->scale_avail[i][1]) {
Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/iio/adc/ad7887_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ static int ad7887_read_raw(struct iio_dev *indio_dev,
*val = (ret >> st->chip_info->channel[0].scan_type.shift) &
RES_MASK(st->chip_info->channel[0].scan_type.realbits);
return IIO_VAL_INT;
case (1 << IIO_CHAN_INFO_SCALE_SHARED):
case IIO_CHAN_INFO_SCALE_SHARED:
scale_uv = (st->int_vref_mv * 1000)
>> st->chip_info->channel[0].scan_type.realbits;
*val = scale_uv/1000;
Expand Down
Loading

0 comments on commit 924f8a2

Please sign in to comment.