From: Jonathan Cameron <jic23@kernel.org>
To: Peter Meerwald <pmeerw@pmeerw.net>, linux-iio@vger.kernel.org
Subject: Re: [PATCH v2 06/15] staging:iio:hmc5843: Introduce helper functions to show/check list of int pairs
Date: Tue, 01 Oct 2013 10:55:48 +0100 [thread overview]
Message-ID: <524A9C24.5090805@kernel.org> (raw)
In-Reply-To: <1379619360-8150-7-git-send-email-pmeerw@pmeerw.net>
On 09/19/13 20:35, Peter Meerwald wrote:
> Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Applied, thanks
> ---
> drivers/staging/iio/magnetometer/hmc5843.c | 56 ++++++++++++++++++------------
> 1 file changed, 34 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/staging/iio/magnetometer/hmc5843.c b/drivers/staging/iio/magnetometer/hmc5843.c
> index 2d89549..71f26de 100644
> --- a/drivers/staging/iio/magnetometer/hmc5843.c
> +++ b/drivers/staging/iio/magnetometer/hmc5843.c
> @@ -356,24 +356,42 @@ static IIO_DEVICE_ATTR(meas_conf,
> hmc5843_set_measurement_configuration,
> 0);
>
> -static ssize_t hmc5843_show_samp_freq_avail(struct device *dev,
> - struct device_attribute *attr, char *buf)
> +static ssize_t hmc5843_show_int_plus_micros(char *buf,
> + const int (*vals)[2], int n)
> {
> - struct hmc5843_data *data = iio_priv(dev_to_iio_dev(dev));
> - ssize_t total_n = 0;
> + size_t len = 0;
> int i;
>
> - for (i = 0; i < HMC5843_RATE_NOT_USED; i++) {
> - ssize_t n = sprintf(buf, "%d.%d ",
> - data->variant->regval_to_samp_freq[i][0],
> - data->variant->regval_to_samp_freq[i][1]);
> - buf += n;
> - total_n += n;
> - }
> + for (i = 0; i < n; i++)
> + len += scnprintf(buf + len, PAGE_SIZE - len,
> + "%d.%d ", vals[i][0], vals[i][1]);
> +
> /* replace trailing space by newline */
> - buf[-1] = '\n';
> + buf[len - 1] = '\n';
> +
> + return len;
> +}
>
> - return total_n;
> +static int hmc5843_check_int_plus_micros(const int (*vals)[2], int n,
> + int val, int val2)
> +{
> + int i;
> +
> + for (i = 0; i < n; i++) {
> + if (val == vals[i][0] && val2 == vals[i][1])
> + return i;
> + }
> +
> + return -EINVAL;
> +}
> +
> +static ssize_t hmc5843_show_samp_freq_avail(struct device *dev,
> + struct device_attribute *attr, char *buf)
> +{
> + struct hmc5843_data *data = iio_priv(dev_to_iio_dev(dev));
> +
> + return hmc5843_show_int_plus_micros(buf,
> + data->variant->regval_to_samp_freq, HMC5843_RATE_NOT_USED);
> }
>
> static IIO_DEV_ATTR_SAMP_FREQ_AVAIL(hmc5843_show_samp_freq_avail);
> @@ -389,15 +407,9 @@ static s32 hmc5843_set_rate(struct hmc5843_data *data, u8 rate)
> static int hmc5843_check_samp_freq(struct hmc5843_data *data,
> int val, int val2)
> {
> - int i;
> -
> - for (i = 0; i < HMC5843_RATE_NOT_USED; i++) {
> - if (val == data->variant->regval_to_samp_freq[i][0] &&
> - val2 == data->variant->regval_to_samp_freq[i][1])
> - return i;
> - }
> -
> - return -EINVAL;
> + return hmc5843_check_int_plus_micros(
> + data->variant->regval_to_samp_freq, HMC5843_RATE_NOT_USED,
> + val, val2);
> }
>
> static ssize_t hmc5843_show_range_gain(struct device *dev,
>
next prev parent reply other threads:[~2013-10-01 8:55 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-19 19:35 [PATCH v2 00/15] staging:iio:hmc5843 cleanup Peter Meerwald
2013-09-19 19:35 ` [PATCH v2 01/15] staging:iio:hmc5843: Add pointer to i2c client to data struct Peter Meerwald
2013-09-21 10:46 ` Jonathan Cameron
2013-10-01 9:40 ` Jonathan Cameron
2013-10-01 8:44 ` Peter Meerwald
2013-10-01 10:10 ` Jonathan Cameron
2013-09-19 19:35 ` [PATCH v2 02/15] staging:iio:hmc5843: Rewrite init function Peter Meerwald
2013-10-01 9:41 ` Jonathan Cameron
2013-09-19 19:35 ` [PATCH v2 03/15] staging:iio:hmc5843: Use INFO_SAMP_FREQ Peter Meerwald
2013-10-01 9:44 ` Jonathan Cameron
2013-09-19 19:35 ` [PATCH v2 04/15] staging:iio:hmc5843: Remove unused LSB register #defines Peter Meerwald
2013-10-01 9:55 ` Jonathan Cameron
2013-09-19 19:35 ` [PATCH v2 05/15] staging:iio:hmc5843: Tighten comments Peter Meerwald
2013-09-19 19:35 ` [PATCH v2 06/15] staging:iio:hmc5843: Introduce helper functions to show/check list of int pairs Peter Meerwald
2013-10-01 9:55 ` Jonathan Cameron [this message]
2013-10-01 9:58 ` Jonathan Cameron
2013-09-19 19:35 ` [PATCH v2 07/15] staging:iio:hmc5843: Use CALIBSCALE instead of magn_range Peter Meerwald
2013-09-20 19:57 ` Jonathan Cameron
2013-09-20 20:12 ` Peter Meerwald
2013-09-20 21:54 ` Jonathan Cameron
2013-09-19 19:35 ` [PATCH v2 08/15] staging:iio:hmc5843: Always read all channels values otherwise no updates Peter Meerwald
2013-09-19 19:35 ` [PATCH v2 09/15] staging:iio:hmc5843: Add trigger handling Peter Meerwald
2013-09-19 19:35 ` [PATCH v2 10/15] staging:iio:hmc5843: Remove ability to change operating mode Peter Meerwald
2013-09-19 19:35 ` [PATCH v2 11/15] staging:iio:hmc5843: Rename _configure() to _set_mode() Peter Meerwald
2013-09-19 19:35 ` [PATCH v2 12/15] staging:iio:hmc5843: Reorganize _set_meas_conf() Peter Meerwald
2013-09-19 19:35 ` [PATCH v2 13/15] staging:iio:hmc5843: Rename _set_rate() to _set_samp_freq() Peter Meerwald
2013-09-19 19:35 ` [PATCH v2 14/15] staging:iio:hmc5843: Introduce _set_range_gain() Peter Meerwald
2013-09-19 19:36 ` [PATCH v2 15/15] staging:iio:hmc5843: Check initialization and chip identifier Peter Meerwald
2013-09-20 20:05 ` [PATCH v2 00/15] staging:iio:hmc5843 cleanup Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=524A9C24.5090805@kernel.org \
--to=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=pmeerw@pmeerw.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).