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
> 
> > 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;
> >>  }  
> >  
> 
> 
> 

--
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