Second round of IIO fixes for the 3.10 cycle.
A couple of little bits and pieces, some delayed due to traveling. 1) A memory leak fix in the callback buffer. 2) Wrong exit path due to a return when it should have been a goto. 3) Bug in a mask value in ad4350 4) Reading the wrong value in raw to processed utility function. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (GNU/Linux) iQIcBAABAgAGBQJRrjIHAAoJEFSFNJnE9BaIfrQQAI69AhI302KFlVlMaB9GZH5v 2dFlv6p/6pl1f5jtQhJeEytstFmLZtB/gtgLoNnCvB9KTC2Zhs57lNUCUea5Y3nG 0y2I6UkYCT/KPrwERoeAsJ+9HSm7miqhVLiZ5B9vSmbwhxH/AXsuTztPDKqiu/Bi ptY2Kz4a+zadkzpGaOtcAfYzl+P0791CJXTAUpGsDWQFCII+Y/zfj+jn6tRIS2KA 62AwRCEsxWRPqppF47ZJ1tUEOMW1cdN91zlMMmqDWpJF074NvxRDUiC+EBnWjU/6 UDjr4ONtoFOekRqhQDEV9aRyt+lG6fipemQ1wX4YBNzriQ4qr35wjhcH7ycE9ccb 02LDiHZCLCHSOUQymNGF8JO7NZyw4tx8uKFQJWSwFSWU0nvDqnSOZm4bsZLhe1vI 7uVmFWmS3jbWrsYDJos+NnVDjtHE3wRW++QU4jkUws4aTVi3KF8kzWi9qsgbU1VD +GhQlA1SuPTZd47mdqkN/nQ8uUGgT9IdY8+cwFcQrvNx+jSrhMvY6tf2kRsJYn6b 5v2nboElqAkTK+5Q4oFlLpiy36qC4jEuGI1ydmNgWZCzKhw5z4KOZwJkakmx9bHN lZpnk/hsWaCsp+VJQQaRG6LPPajrsddUkcwmyFZRFFSDuM5nFpqQeffV9aYedlOE NasjRYsLnAKz7xA5Luz/ =5y7r -----END PGP SIGNATURE----- Merge tag 'iio-fixes-for-3.10b' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-linus Jonathan writes: Second round of IIO fixes for the 3.10 cycle. A couple of little bits and pieces, some delayed due to traveling. 1) A memory leak fix in the callback buffer. 2) Wrong exit path due to a return when it should have been a goto. 3) Bug in a mask value in ad4350 4) Reading the wrong value in raw to processed utility function.
This commit is contained in:
commit
1f89b8fc41
|
@ -64,7 +64,7 @@ struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev,
|
|||
while (chan->indio_dev) {
|
||||
if (chan->indio_dev != indio_dev) {
|
||||
ret = -EINVAL;
|
||||
goto error_release_channels;
|
||||
goto error_free_scan_mask;
|
||||
}
|
||||
set_bit(chan->channel->scan_index,
|
||||
cb_buff->buffer.scan_mask);
|
||||
|
@ -73,6 +73,8 @@ struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev,
|
|||
|
||||
return cb_buff;
|
||||
|
||||
error_free_scan_mask:
|
||||
kfree(cb_buff->buffer.scan_mask);
|
||||
error_release_channels:
|
||||
iio_channel_release_all(cb_buff->channels);
|
||||
error_free_cb_buff:
|
||||
|
@ -100,6 +102,7 @@ EXPORT_SYMBOL_GPL(iio_channel_stop_all_cb);
|
|||
|
||||
void iio_channel_release_all_cb(struct iio_cb_buffer *cb_buff)
|
||||
{
|
||||
kfree(cb_buff->buffer.scan_mask);
|
||||
iio_channel_release_all(cb_buff->channels);
|
||||
kfree(cb_buff);
|
||||
}
|
||||
|
|
|
@ -212,7 +212,7 @@ static int adf4350_set_freq(struct adf4350_state *st, unsigned long long freq)
|
|||
(pdata->r2_user_settings & (ADF4350_REG2_PD_POLARITY_POS |
|
||||
ADF4350_REG2_LDP_6ns | ADF4350_REG2_LDF_INT_N |
|
||||
ADF4350_REG2_CHARGE_PUMP_CURR_uA(5000) |
|
||||
ADF4350_REG2_MUXOUT(0x7) | ADF4350_REG2_NOISE_MODE(0x9)));
|
||||
ADF4350_REG2_MUXOUT(0x7) | ADF4350_REG2_NOISE_MODE(0x3)));
|
||||
|
||||
st->regs[ADF4350_REG3] = pdata->r3_user_settings &
|
||||
(ADF4350_REG3_12BIT_CLKDIV(0xFFF) |
|
||||
|
|
|
@ -124,7 +124,7 @@ static int __of_iio_channel_get(struct iio_channel *channel,
|
|||
channel->indio_dev = indio_dev;
|
||||
index = iiospec.args_count ? iiospec.args[0] : 0;
|
||||
if (index >= indio_dev->num_channels) {
|
||||
return -EINVAL;
|
||||
err = -EINVAL;
|
||||
goto err_put;
|
||||
}
|
||||
channel->channel = &indio_dev->channels[index];
|
||||
|
@ -450,7 +450,7 @@ static int iio_convert_raw_to_processed_unlocked(struct iio_channel *chan,
|
|||
s64 raw64 = raw;
|
||||
int ret;
|
||||
|
||||
ret = iio_channel_read(chan, &offset, NULL, IIO_CHAN_INFO_SCALE);
|
||||
ret = iio_channel_read(chan, &offset, NULL, IIO_CHAN_INFO_OFFSET);
|
||||
if (ret == 0)
|
||||
raw64 += offset;
|
||||
|
||||
|
|
Loading…
Reference in New Issue