diff options
-rw-r--r-- | drivers/staging/iio/iio_simple_dummy.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/staging/iio/iio_simple_dummy.c b/drivers/staging/iio/iio_simple_dummy.c index 0193e1796b18..0e8e02a3cf5b 100644 --- a/drivers/staging/iio/iio_simple_dummy.c +++ b/drivers/staging/iio/iio_simple_dummy.c @@ -166,11 +166,12 @@ static const struct iio_chan_spec iio_dummy_channels[] = { .channel2 = IIO_MOD_X, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | /* - * Internal bias correction value. Applied + * Internal bias and gain correction values. Applied * by the hardware or driver prior to userspace * seeing the readings. Typically part of hardware * calibration. */ + BIT(IIO_CHAN_INFO_CALIBSCALE) | BIT(IIO_CHAN_INFO_CALIBBIAS), .scan_index = accelx, .scan_type = { /* Description of storage in buffer */ @@ -311,7 +312,7 @@ static int iio_dummy_write_raw(struct iio_dev *indio_dev, st->dac_val = val; mutex_unlock(&st->lock); return 0; - case IIO_CHAN_INFO_CALIBBIAS: + case IIO_CHAN_INFO_CALIBSCALE: mutex_lock(&st->lock); /* Compare against table - hard matching here */ for (i = 0; i < ARRAY_SIZE(dummy_scales); i++) @@ -324,6 +325,12 @@ static int iio_dummy_write_raw(struct iio_dev *indio_dev, st->accel_calibscale = &dummy_scales[i]; mutex_unlock(&st->lock); return ret; + case IIO_CHAN_INFO_CALIBBIAS: + mutex_lock(&st->lock); + st->accel_calibbias = val; + mutex_unlock(&st->lock); + return 0; + default: return -EINVAL; } |