iio: core: Point users of extend_name field to read_label callback
authorMarijn Suijten <marijn.suijten@somainline.org>
Mon, 1 May 2023 23:17:33 +0000 (01:17 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 13 May 2023 17:28:10 +0000 (18:28 +0100)
As mentioned and discussed in [1] extend_name should not be used for
full channel labels (and most drivers seem to only use it to express a
short type of a channel) as this affects sysfs filenames, while the
label name is supposed to be extracted from the *_label sysfs file
instead.  This appears to have been unclear to some drivers as
extend_name is also used when read_label is unset, achieving an initial
goal of providing sensible names in *_label sysfs files without noticing
that sysfs filenames are (negatively and likely unintentionally)
affected as well.

Point readers of iio_chan_spec::extend_name to iio_info::read_label by
mentioning deprecation and side-effects of this field.

[1]: https://lore.kernel.org/linux-arm-msm/20221221223432.si2aasbleiicayfl@SoMainline.org/

Suggested-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
Link: https://lore.kernel.org/r/20230502-iio-adc-propagate-fw-node-label-v3-1-6be5db6e6b5a@somainline.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
include/linux/iio/iio.h

index 81413cd..6fc0606 100644 (file)
@@ -221,6 +221,9 @@ struct iio_event_spec {
  * @extend_name:       Allows labeling of channel attributes with an
  *                     informative name. Note this has no effect codes etc,
  *                     unlike modifiers.
+ *                     This field is deprecated in favour of providing
+ *                     iio_info->read_label() to override the label, which
+ *                     unlike @extend_name does not affect sysfs filenames.
  * @datasheet_name:    A name used in in-kernel mapping of channels. It should
  *                     correspond to the first name that the channel is referred
  *                     to by in the datasheet (e.g. IND), or the nearest