From: Jonathan Cameron <jic23@kernel.org>
To: Peter Meerwald <pmeerw@pmeerw.net>, linux-iio@vger.kernel.org
Subject: Re: [PATCH v4 08/11] staging:iio:hmc5843: Rename _set_rate() to _set_samp_freq()
Date: Thu, 17 Oct 2013 23:52:05 +0100 [thread overview]
Message-ID: <52606A15.9060707@kernel.org> (raw)
In-Reply-To: <1381961954-25596-9-git-send-email-pmeerw@pmeerw.net>
On 10/16/13 23:19, Peter Meerwald wrote:
> move locking inside _set() function
>
> Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Applied to the togreg branch of iio.git
Thanks
> ---
> drivers/staging/iio/magnetometer/hmc5843.c | 31 +++++++++++++++---------------
> 1 file changed, 15 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/staging/iio/magnetometer/hmc5843.c b/drivers/staging/iio/magnetometer/hmc5843.c
> index bd13984..a91d302 100644
> --- a/drivers/staging/iio/magnetometer/hmc5843.c
> +++ b/drivers/staging/iio/magnetometer/hmc5843.c
> @@ -66,8 +66,7 @@ enum hmc5843_ids {
> */
> #define HMC5843_RATE_OFFSET 0x02
> #define HMC5843_RATE_DEFAULT 0x04
> -#define HMC5843_RATE_BITMASK 0x1C
> -#define HMC5843_RATE_NOT_USED 0x07
> +#define HMC5843_RATES 7
>
> /* Device measurement configuration */
> #define HMC5843_MEAS_CONF_NORMAL 0x00
> @@ -264,7 +263,7 @@ static ssize_t hmc5843_show_samp_freq_avail(struct device *dev,
> size_t len = 0;
> int i;
>
> - for (i = 0; i < HMC5843_RATE_NOT_USED; i++)
> + for (i = 0; i < HMC5843_RATES; i++)
> len += scnprintf(buf + len, PAGE_SIZE - len,
> "%d.%d ", data->variant->regval_to_samp_freq[i][0],
> data->variant->regval_to_samp_freq[i][1]);
> @@ -277,12 +276,18 @@ static ssize_t hmc5843_show_samp_freq_avail(struct device *dev,
>
> static IIO_DEV_ATTR_SAMP_FREQ_AVAIL(hmc5843_show_samp_freq_avail);
>
> -static s32 hmc5843_set_rate(struct hmc5843_data *data, u8 rate)
> +static int hmc5843_set_samp_freq(struct hmc5843_data *data, u8 rate)
> {
> - u8 reg_val = data->meas_conf | (rate << HMC5843_RATE_OFFSET);
> + int ret;
> +
> + mutex_lock(&data->lock);
> + ret = i2c_smbus_write_byte_data(data->client, HMC5843_CONFIG_REG_A,
> + data->meas_conf | (rate << HMC5843_RATE_OFFSET));
> + if (ret >= 0)
> + data->rate = rate;
> + mutex_unlock(&data->lock);
>
> - return i2c_smbus_write_byte_data(data->client, HMC5843_CONFIG_REG_A,
> - reg_val);
> + return ret;
> }
>
> static int hmc5843_get_samp_freq_index(struct hmc5843_data *data,
> @@ -290,7 +295,7 @@ static int hmc5843_get_samp_freq_index(struct hmc5843_data *data,
> {
> int i;
>
> - for (i = 0; i < HMC5843_RATE_NOT_USED; i++)
> + for (i = 0; i < HMC5843_RATES; i++)
> if (val == data->variant->regval_to_samp_freq[i][0] &&
> val2 == data->variant->regval_to_samp_freq[i][1])
> return i;
> @@ -367,13 +372,7 @@ static int hmc5843_write_raw(struct iio_dev *indio_dev,
> if (rate < 0)
> return -EINVAL;
>
> - mutex_lock(&data->lock);
> - ret = hmc5843_set_rate(data, rate);
> - if (ret >= 0)
> - data->rate = rate;
> - mutex_unlock(&data->lock);
> -
> - return ret;
> + return hmc5843_set_samp_freq(data, rate);
> case IIO_CHAN_INFO_SCALE:
> range = hmc5843_get_scale_index(data, val, val2);
> if (range < 0)
> @@ -495,7 +494,7 @@ static const struct hmc5843_chip_info hmc5843_chip_info_tbl[] = {
> static void hmc5843_init(struct hmc5843_data *data)
> {
> hmc5843_set_meas_conf(data, HMC5843_MEAS_CONF_NORMAL);
> - hmc5843_set_rate(data, HMC5843_RATE_DEFAULT);
> + hmc5843_set_samp_freq(data, HMC5843_RATE_DEFAULT);
> hmc5843_set_mode(data, HMC5843_MODE_CONVERSION_CONTINUOUS);
> i2c_smbus_write_byte_data(data->client, HMC5843_CONFIG_REG_B,
> HMC5843_RANGE_GAIN_DEFAULT);
>
next prev parent reply other threads:[~2013-10-17 21:51 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-16 22:19 [PATCH v4 00/11] hmc5843 cleanup Peter Meerwald
2013-10-16 22:19 ` [PATCH v4 01/11] staging:iio:hmc5843: Use SCALE instead of magn_range Peter Meerwald
2013-10-17 22:46 ` Jonathan Cameron
2013-10-16 22:19 ` [PATCH v4 02/11] staging:iio:hmc5843: Rename _check_samp_freq to get_samp_freq_index Peter Meerwald
2013-10-17 22:47 ` Jonathan Cameron
2013-10-16 22:19 ` [PATCH v4 03/11] staging:iio:hmc5843: Always read all channels values otherwise no updates Peter Meerwald
2013-10-17 22:49 ` Jonathan Cameron
2013-10-16 22:19 ` [PATCH v4 04/11] staging:iio:hmc5843: Add trigger handling Peter Meerwald
2013-10-17 22:49 ` Jonathan Cameron
2013-10-16 22:19 ` [PATCH v4 05/11] staging:iio:hmc5843: Remove ability to change operating mode Peter Meerwald
2013-10-17 22:50 ` Jonathan Cameron
2013-10-16 22:19 ` [PATCH v4 06/11] staging:iio:hmc5843: Rename _configure() to _set_mode() Peter Meerwald
2013-10-17 22:50 ` Jonathan Cameron
2013-10-16 22:19 ` [PATCH v4 07/11] staging:iio:hmc5843: Reorganize _set_meas_conf() Peter Meerwald
2013-10-17 22:51 ` Jonathan Cameron
2013-10-16 22:19 ` [PATCH v4 08/11] staging:iio:hmc5843: Rename _set_rate() to _set_samp_freq() Peter Meerwald
2013-10-17 22:52 ` Jonathan Cameron [this message]
2013-10-16 22:19 ` [PATCH v4 09/11] staging:iio:hmc5843: Introduce _set_range_gain() Peter Meerwald
2013-10-17 22:52 ` Jonathan Cameron
2013-10-16 22:19 ` [PATCH v4 10/11] staging:iio:hmc5843: Check initialization and chip identifier Peter Meerwald
2013-10-17 22:52 ` Jonathan Cameron
2013-10-16 22:19 ` [PATCH v4 11/11] staging:iio:hmc5843: Trivial cleanup Peter Meerwald
2013-10-17 22:53 ` 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=52606A15.9060707@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 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.