All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Peter Meerwald <pmeerw@pmeerw.net>
Cc: linux-iio@vger.kernel.org, lars@metafoo.de
Subject: Re: [PATCH 4/8] iio: rework sampling rate setting in hmc5843
Date: Thu, 10 May 2012 13:13:15 +0100	[thread overview]
Message-ID: <4FABB0DB.1070100@kernel.org> (raw)
In-Reply-To: <1336515606-12364-5-git-send-email-pmeerw@pmeerw.net>

On 5/8/2012 11:20 PM, Peter Meerwald wrote:
> From: Peter Meerwald<p.meerwald@bct-electronic.com>
>
> Signed-off-by: Peter Meerwald<pmeerw@pmeerw.net>
Acked-by: Jonathan Cameron <jic23@kernel.org>
> ---
>   drivers/staging/iio/magnetometer/hmc5843.c |   51 +++++++++++++---------------
>   1 files changed, 24 insertions(+), 27 deletions(-)
>
> diff --git a/drivers/staging/iio/magnetometer/hmc5843.c b/drivers/staging/iio/magnetometer/hmc5843.c
> index 1318f7d..6888e04 100644
> --- a/drivers/staging/iio/magnetometer/hmc5843.c
> +++ b/drivers/staging/iio/magnetometer/hmc5843.c
> @@ -85,14 +85,6 @@
>    */
>   #define HMC5843_RATE_OFFSET			0x02
>   #define HMC5843_RATE_BITMASK			0x1C
> -#define RATE_5					0x00
> -#define RATE_10					0x01
> -#define RATE_20					0x02
> -#define RATE_50					0x03
> -#define RATE_100				0x04
> -#define RATE_200				0x05
> -#define RATE_500				0x06
> -
>   #define HMC5843_RATE_NOT_USED			0x07
>
>   /*
> @@ -342,6 +334,21 @@ static s32 hmc5843_set_rate(struct i2c_client *client,
>   	return i2c_smbus_write_byte_data(client, HMC5843_CONFIG_REG_A, reg_val);
>   }
>
> +static int hmc5843_check_sampling_frequency(struct hmc5843_data *data,
> +						const char *buf)
> +{
> +	const char * const *samp_freq = regval_to_samp_freq;
> +	int i;
> +
> +	for (i = 0; i<  HMC5843_RATE_NOT_USED; i++) {
> +		if (strncmp(buf, samp_freq[i],
> +			strlen(samp_freq[i])) == 0)
> +			return i;
> +	}
> +
> +	return -EINVAL;
> +}
> +
>   static ssize_t set_sampling_frequency(struct device *dev,
>   					struct device_attribute *attr,
>   					const char *buf, size_t count)
> @@ -350,27 +357,17 @@ static ssize_t set_sampling_frequency(struct device *dev,
>   	struct iio_dev *indio_dev = dev_get_drvdata(dev);
>   	struct i2c_client *client = to_i2c_client(indio_dev->dev.parent);
>   	struct hmc5843_data *data = iio_priv(indio_dev);
> -	unsigned long rate = 0;
> -
> -	if (strncmp(buf, "0.5" , 3) == 0)
> -		rate = RATE_5;
> -	else if (strncmp(buf, "1" , 1) == 0)
> -		rate = RATE_10;
> -	else if (strncmp(buf, "2", 1) == 0)
> -		rate = RATE_20;
> -	else if (strncmp(buf, "5", 1) == 0)
> -		rate = RATE_50;
> -	else if (strncmp(buf, "10", 2) == 0)
> -		rate = RATE_100;
> -	else if (strncmp(buf, "20" , 2) == 0)
> -		rate = RATE_200;
> -	else if (strncmp(buf, "50" , 2) == 0)
> -		rate = RATE_500;
> -	else
> -		return -EINVAL;
> +	int rate;
> +
> +	rate = hmc5843_check_sampling_frequency(data, buf);
> +	if (rate<  0) {
> +		dev_err(&client->dev,
> +			"sampling frequency is not supported\n");
> +		return rate;
> +	}
>
>   	mutex_lock(&data->lock);
> -	dev_dbg(dev, "set rate to %lu\n", rate);
> +	dev_dbg(dev, "set rate to %d\n", rate);
>   	if (hmc5843_set_rate(client, rate)) {
>   		count = -EINVAL;
>   		goto exit;


  reply	other threads:[~2012-05-10 12:13 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-08 22:19 iio: v2, add support for HMC5883/HMC5883L to HMC5843 driver Peter Meerwald
2012-05-08 22:19 ` [PATCH 1/8] iio: fix access to hmc5843 private data Peter Meerwald
2012-05-09  9:59   ` Shubhrajyoti Datta
2012-05-10 14:19     ` Shubhrajyoti Datta
2012-05-10  9:10   ` Jonathan Cameron
2012-05-10 13:18     ` Peter Meerwald
2012-05-08 22:20 ` [PATCH 2/8] iio: change strict_strtoul() to kstrtoul() in hmc5843 Peter Meerwald
2012-05-10  9:11   ` Jonathan Cameron
2012-05-08 22:20 ` [PATCH 3/8] iio: rename and prefix CONSTANTs to distinguish between HMC5843 and HMC5883 Peter Meerwald
2012-05-10 12:11   ` Jonathan Cameron
2012-05-08 22:20 ` [PATCH 4/8] iio: rework sampling rate setting in hmc5843 Peter Meerwald
2012-05-10 12:13   ` Jonathan Cameron [this message]
2012-05-08 22:20 ` [PATCH 5/8] iio: add check for measurement configuration value passed to hmc5843 Peter Meerwald
2012-05-10 12:15   ` Jonathan Cameron
2012-05-08 22:20 ` [PATCH 6/8] iio: cleanup and move comments in hmc5843 Peter Meerwald
2012-05-10 12:18   ` Jonathan Cameron
2012-05-08 22:20 ` [PATCH 7/8] iio: rename function/data to consistently start with hmc5843_ Peter Meerwald
2012-05-10 12:18   ` Jonathan Cameron
2012-05-08 22:20 ` [PATCH 8/8] iio: add support for hmc5883/hmc5883l to hmc5843 magnetometer driver Peter Meerwald
2012-05-10 12:29   ` Jonathan Cameron
2012-05-09  9:55 ` iio: v2, add support for HMC5883/HMC5883L to HMC5843 driver Shubhrajyoti Datta
2012-05-09 13:33   ` Peter Meerwald
2012-05-09 14:20     ` 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=4FABB0DB.1070100@kernel.org \
    --to=jic23@kernel.org \
    --cc=lars@metafoo.de \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.