On Thu, 23 Apr 2020 14:17:15 +0200 Gaëtan André <rvlander@xxxxxxxxxxxxxx> wrote: > Scale channels are available by axis. For example for accelerometers, > in_accel_x_scale, in_accel_y_scale and in_accel_z_scale are available. > > However, they should be shared by type as documented in > Documentation/ABI/testing/sysfs-bus-iio. > > For each sensor (acceleros, gyros and magnetos) only one value is specified > for all the axes. > > Existing, by axis, entries are preserved in order to to leave the old ABI > untouched. As I mentioned in v1, there isn't a strict ABI rule that says that we must do the shared form +CC'd Bastien for comment on what userspace is assuming and whether we should push this back to stable or not. Thanks, Jonathan > > Signed-off-by: Gaëtan André <rvlander@xxxxxxxxxxxxxx> > --- > v1->v2: add comment explaining why we are doing both. > > include/linux/iio/common/st_sensors.h | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/include/linux/iio/common/st_sensors.h b/include/linux/iio/common/st_sensors.h > index 33e939977444..42663fbab085 100644 > --- a/include/linux/iio/common/st_sensors.h > +++ b/include/linux/iio/common/st_sensors.h > @@ -46,12 +46,19 @@ > #define ST_SENSORS_MAX_NAME 17 > #define ST_SENSORS_MAX_4WAI 8 > > +/* > + * Scale channels are configured both by type and by axis. > + * - By axis to keep the previous ABI and flexibility. > + * - By type because it is how some userland > + * applications are expecting them (ex: iio-sensor-proxy). > + */ > #define ST_SENSORS_LSM_CHANNELS(device_type, mask, index, mod, \ > ch2, s, endian, rbits, sbits, addr) \ > { \ > .type = device_type, \ > .modified = mod, \ > .info_mask_separate = mask, \ > + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), \ > .info_mask_shared_by_all = BIT(IIO_CHAN_INFO_SAMP_FREQ), \ > .scan_index = index, \ > .channel2 = ch2, \ > > base-commit: 2de8c02349f02d014e51b43f306d28fc7a23ea6e