[PATCH][for iio-for-4.17b] iio: humidity: hts221: Fix sensor reads after resume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



CTRL1 register (ODR & BDU settings) gets reset after system comes back
from suspend, causing subsequent reads from the sensor to fail.

This patch restores the CTRL1 register after resume.

Based on:
git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git iio-for-4.17b

Fixes: ffebe74b7c95 (iio: humidity: hts221: avoid useless ODR reconfiguration)
Signed-off-by: Shrirang Bagul <shrirang.bagul@xxxxxxxxxxxxx>
---
 drivers/iio/humidity/hts221_core.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/drivers/iio/humidity/hts221_core.c b/drivers/iio/humidity/hts221_core.c
index 166946d4978d..5d7a652aa6d9 100644
--- a/drivers/iio/humidity/hts221_core.c
+++ b/drivers/iio/humidity/hts221_core.c
@@ -658,12 +658,13 @@ static int __maybe_unused hts221_resume(struct device *dev)
 	struct hts221_hw *hw = iio_priv(iio_dev);
 	int err = 0;
 
-	if (hw->enabled)
-		err = regmap_update_bits(hw->regmap, HTS221_REG_CNTRL1_ADDR,
-					 HTS221_ENABLE_MASK,
-					 FIELD_PREP(HTS221_ENABLE_MASK,
-						    true));
-	return err;
+	err = regmap_update_bits(hw->regmap, HTS221_REG_CNTRL1_ADDR,
+				 HTS221_BDU_MASK,
+				 FIELD_PREP(HTS221_BDU_MASK, 1));
+	if (err < 0)
+		return err;
+
+	return hts221_update_odr(hw, hw->odr);
 }
 
 const struct dev_pm_ops hts221_pm_ops = {
-- 
2.14.1

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux