Re: [PATCH v2 03/10] iio: humidity: hts221: do not overwrite reserved data during power-down

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

 



> On Fri, 11 Aug 2017 21:54:07 +0200
> Lorenzo Bianconi <lorenzo.bianconi83@xxxxxxxxx> wrote:
>
>> > On Mon, 17 Jul 2017 19:38:58 +0200
>> > Lorenzo Bianconi <lorenzo.bianconi83@xxxxxxxxx> wrote:
>> >
>> >> GENMASK(6, 3) in CTRL_REG1 and GENMASK(6, 2) in CTRL_REG2 are marked
>> >> reserved. Do not changed the original value (not declared in the
>> >> datasheet) during power-down/suspend routines.
>> >>
>> >> Fixes: e4a70e3e7d84 (iio: humidity: add support to hts221 rh/temp device)
>> >> Fixes: b7079eeac5da (iio: humidity: hts221: add power management support)
>> >> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@xxxxxx>
>> > Applied to the togreg branch of iio.git and pushed out as testing.
>> >
>> > If we want to do a backport of this it would be fine, but it needs
>> > to require absolute minimal changes to the driver.
>> >
>>
>> I think we need to push write_with_mask patch as well in order to fix
>> that issue. What do you think?
>>
>> Regards,
>> Lorenzo
> Hmm.  Is it possible to do a much more minimal local implementation
> in just these two locations.  That patch is rather larger than
> it feels like we should need.  Obviously the end result is clean,
> but the process to get there is non trivial.
>
> Jonathan

Ack, I will come up with a patch.
Regards,
Lorenzo

>>
>> > Jonathan
>> >> ---
>> >>  drivers/iio/humidity/hts221_core.c | 10 ++++------
>> >>  1 file changed, 4 insertions(+), 6 deletions(-)
>> >>
>> >> diff --git a/drivers/iio/humidity/hts221_core.c b/drivers/iio/humidity/hts221_core.c
>> >> index 47a29b2da1ce..6e5847386a45 100644
>> >> --- a/drivers/iio/humidity/hts221_core.c
>> >> +++ b/drivers/iio/humidity/hts221_core.c
>> >> @@ -305,11 +305,10 @@ int hts221_power_on(struct hts221_hw *hw)
>> >>
>> >>  int hts221_power_off(struct hts221_hw *hw)
>> >>  {
>> >> -     __le16 data = 0;
>> >>       int err;
>> >>
>> >> -     err = hw->tf->write(hw->dev, HTS221_REG_CNTRL1_ADDR, sizeof(data),
>> >> -                         (u8 *)&data);
>> >> +     err = hts221_write_with_mask(hw, HTS221_REG_CNTRL1_ADDR,
>> >> +                                  HTS221_ENABLE_MASK, false);
>> >>       if (err < 0)
>> >>               return err;
>> >>
>> >> @@ -692,11 +691,10 @@ static int __maybe_unused hts221_suspend(struct device *dev)
>> >>  {
>> >>       struct iio_dev *iio_dev = dev_get_drvdata(dev);
>> >>       struct hts221_hw *hw = iio_priv(iio_dev);
>> >> -     __le16 data = 0;
>> >>       int err;
>> >>
>> >> -     err = hw->tf->write(hw->dev, HTS221_REG_CNTRL1_ADDR, sizeof(data),
>> >> -                         (u8 *)&data);
>> >> +     err = hts221_write_with_mask(hw, HTS221_REG_CNTRL1_ADDR,
>> >> +                                  HTS221_ENABLE_MASK, false);
>> >>
>> >>       return err < 0 ? err : 0;
>> >>  }
>> >
>>
>>
>>
>



-- 
UNIX is Sexy: who | grep -i blonde | talk; cd ~; wine; talk; touch;
unzip; touch; strip; gasp; finger; gasp; mount; fsck; more; yes; gasp;
umount; make clean; sleep
--
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