From: Greg Kroah-Hartman Date: Wed, 6 Dec 2017 14:27:17 +0000 (+0100) Subject: Merge Linus's staging merge point into staging-next X-Git-Tag: v4.16-rc1~112^2~419 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e8cd29b774ddd28bfe6d693c82241e294dc91e09;p=thirdparty%2Flinux.git Merge Linus's staging merge point into staging-next This resolves the merge issue pointed out by Stephen in drivers/iio/adc/meson_saradc.c. Reported-by: Stephen Rothwell Signed-off-by: Greg Kroah-Hartman --- e8cd29b774ddd28bfe6d693c82241e294dc91e09 diff --cc drivers/iio/adc/meson_saradc.c index f0b6502a8904f,36047147ce7c7..48fdbb3a061b1 --- a/drivers/iio/adc/meson_saradc.c +++ b/drivers/iio/adc/meson_saradc.c @@@ -732,8 -762,9 +755,7 @@@ static int meson_sar_adc_hw_enable(stru err_adc_clk: regmap_update_bits(priv->regmap, MESON_SAR_ADC_REG3, MESON_SAR_ADC_REG3_ADC_EN, 0); - regmap_update_bits(priv->regmap, MESON_SAR_ADC_REG11, - MESON_SAR_ADC_REG11_BANDGAP_EN, 0); + meson_sar_adc_set_bandgap(indio_dev, false); - clk_disable_unprepare(priv->sana_clk); -err_sana_clk: clk_disable_unprepare(priv->core_clk); err_core_clk: regulator_disable(priv->vref); @@@ -756,9 -787,10 +778,9 @@@ static int meson_sar_adc_hw_disable(str regmap_update_bits(priv->regmap, MESON_SAR_ADC_REG3, MESON_SAR_ADC_REG3_ADC_EN, 0); - regmap_update_bits(priv->regmap, MESON_SAR_ADC_REG11, - MESON_SAR_ADC_REG11_BANDGAP_EN, 0); + + meson_sar_adc_set_bandgap(indio_dev, false); - clk_disable_unprepare(priv->sana_clk); clk_disable_unprepare(priv->core_clk); regulator_disable(priv->vref); diff --cc drivers/iio/health/max30102.c index 490dfbaf35ac2,147a8c14235f3..15ccadc74891f --- a/drivers/iio/health/max30102.c +++ b/drivers/iio/health/max30102.c @@@ -482,22 -355,23 +482,22 @@@ static int max30102_read_raw(struct iio switch (mask) { case IIO_CHAN_INFO_RAW: /* - * Temperature reading can only be acquired while engine - * is running + * Temperature reading can only be acquired when not in + * shutdown; leave shutdown briefly when buffer not running */ mutex_lock(&indio_dev->mlock); - if (!iio_buffer_enabled(indio_dev)) - ret = -EBUSY; - else { - ret = max30102_get_temp(data, val); - if (!ret) - ret = IIO_VAL_INT; - } - + ret = max30102_get_temp(data, val, true); + else + ret = max30102_get_temp(data, val, false); mutex_unlock(&indio_dev->mlock); + if (ret) + return ret; + + ret = IIO_VAL_INT; break; case IIO_CHAN_INFO_SCALE: - *val = 1; /* 0.0625 */ + *val = 1000; /* 62.5 */ *val2 = 16; ret = IIO_VAL_FRACTIONAL; break;