Re: [PATCH] iio: imu: st_lsm6dsx: make IIO_CHAN_INFO_SCALE shared by type

From: Jonathan Cameron
Date: Mon Aug 05 2019 - 10:21:56 EST


On Thu, 1 Aug 2019 16:39:08 +0200
Martin Kepplinger <martin.kepplinger@xxxxxxx> wrote:

> in_accel_x_scale, in_accel_y_scale and in_accel_z_scale are always
> the same. The scale is still defined to be in "info_mask_separate".
>
> Userspace (iio-sensor-proxy and others) is not used to that and only
> looks for "in_accel_scale" for the scaling factor to apply.
>
> Change IIO_CHAN_INFO_SCALE from being separate in all channel to be
> shared by type.
>
> This removes in_accel_x_scale, in_accel_y_scale and in_accel_z_scale and
> makes available in_accel_scale.
>
> Signed-off-by: Martin Kepplinger <martin.kepplinger@xxxxxxx>
> ---
>
> AFAIK in all other drivers, IIO_CHAN_INFO_SCALE is "shared by type". Sure
> devices are different, but LSM6DSX devices still don't have different
> scales for x/y/z channels :)

I'm fine with this, but would like a Lorenzo ack as we have had
devices in other series where these are not equal. It used to
be common in accelerometers as I think it was hard to get a large
range in the vertical direction. Doubt that applies on these modern
parts though!

Thanks,

Jonathan


>
> thanks,
>
> martin
>
>
>
> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
> index af379a5429ed..59c3ab7cbb6f 100644
> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
> @@ -56,8 +56,8 @@ enum st_lsm6dsx_hw_id {
> .address = addr, \
> .modified = 1, \
> .channel2 = mod, \
> - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \
> - BIT(IIO_CHAN_INFO_SCALE), \
> + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \
> + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), \
> .info_mask_shared_by_all = BIT(IIO_CHAN_INFO_SAMP_FREQ), \
> .scan_index = scan_idx, \
> .scan_type = { \