Re: [PATCH 3/6] iio:pressure:ms5637: limit available sample frequencies

From: Jonathan Cameron
Date: Sun Dec 13 2020 - 12:19:27 EST


On Sat, 12 Dec 2020 20:26:16 +0200
Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote:

> On Thu, Dec 10, 2020 at 2:03 AM Alexandre Belloni
> <alexandre.belloni@xxxxxxxxxxx> wrote:
> >
> > Avoid exposing all the sampling frequencies for chip that only support a
> > subset.
>
> > +static ssize_t ms5637_show_samp_freq(struct device *dev, struct device_attribute *attr, char *buf)
> > +{
> > + struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> > + struct ms_tp_dev *dev_data = iio_priv(indio_dev);
> > + int i, len = 0;
> > +
> > + for (i = 0; i <= dev_data->hw->max_res_index; i++)
> > + len += scnprintf(buf + len, PAGE_SIZE - len, "%u ", ms5637_samp_freq[i]);
>
> Doesn't IIO core have a helper?
read_avail() callback and matching masks provide the infrastructure to do this.
It's not a huge saving in code by the time you've wired it up, but has the
advantage that consumer drivers can get hold of the values. Mind you
I'm not sure what consumers we are likely to get for pressure drivers any
time soon.

> Also, it's better to use sysfs_emit().

New one to me. Thanks. sysfs_emit_at() here I guess.

Nice.

Jonathan

>
> > + buf[len - 1] = '\n';
> > +
> > + return len;
> > +}
>