Re: [PATCH 4/9] iio: humidity: hts221: avoid useless ODR reconfiguration

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

 




> On Sun,  9 Jul 2017 18:56:59 +0200
> Lorenzo Bianconi <lorenzo.bianconi83@xxxxxxxxx> wrote:
>
>> Configure sensor ODR just in hts221_write_raw() in order to avoid
>> to set device sample rate multiple times.
>> Squash hts221_power_off()/hts221_power_on() in hts221_set_enable()
> Two changes = two patches please.
>
> Actual contents for each looks fine.

Ack, will do in v2
Regards,
Lorenzo

>>
>> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@xxxxxx>
>> ---
>>  drivers/iio/humidity/hts221.h        |  3 +--
>>  drivers/iio/humidity/hts221_buffer.c |  4 ++--
>>  drivers/iio/humidity/hts221_core.c   | 37 +++++++++++-------------------------
>>  3 files changed, 14 insertions(+), 30 deletions(-)
>>
>> diff --git a/drivers/iio/humidity/hts221.h b/drivers/iio/humidity/hts221.h
>> index 94510266e0a5..7b5691a6df53 100644
>> --- a/drivers/iio/humidity/hts221.h
>> +++ b/drivers/iio/humidity/hts221.h
>> @@ -68,8 +68,7 @@ extern const struct dev_pm_ops hts221_pm_ops;
>>
>>  int hts221_config_drdy(struct hts221_hw *hw, bool enable);
>>  int hts221_probe(struct iio_dev *iio_dev);
>> -int hts221_power_on(struct hts221_hw *hw);
>> -int hts221_power_off(struct hts221_hw *hw);
>> +int hts221_set_enable(struct hts221_hw *hw, bool enable);
>>  int hts221_allocate_buffers(struct hts221_hw *hw);
>>  int hts221_allocate_trigger(struct hts221_hw *hw);
>>
>> diff --git a/drivers/iio/humidity/hts221_buffer.c b/drivers/iio/humidity/hts221_buffer.c
>> index 7d19a3da7ab7..c4ed153ad397 100644
>> --- a/drivers/iio/humidity/hts221_buffer.c
>> +++ b/drivers/iio/humidity/hts221_buffer.c
>> @@ -109,12 +109,12 @@ int hts221_allocate_trigger(struct hts221_hw *hw)
>>
>>  static int hts221_buffer_preenable(struct iio_dev *iio_dev)
>>  {
>> -     return hts221_power_on(iio_priv(iio_dev));
>> +     return hts221_set_enable(iio_priv(iio_dev), true);
>>  }
>>
>>  static int hts221_buffer_postdisable(struct iio_dev *iio_dev)
>>  {
>> -     return hts221_power_off(iio_priv(iio_dev));
>> +     return hts221_set_enable(iio_priv(iio_dev), false);
>>  }
>>
>>  static const struct iio_buffer_setup_ops hts221_buffer_ops = {
>> diff --git a/drivers/iio/humidity/hts221_core.c b/drivers/iio/humidity/hts221_core.c
>> index b36734b8070e..7d30e2594a58 100644
>> --- a/drivers/iio/humidity/hts221_core.c
>> +++ b/drivers/iio/humidity/hts221_core.c
>> @@ -207,11 +207,6 @@ static int hts221_update_odr(struct hts221_hw *hw, u8 odr)
>>       if (err < 0)
>>               return err;
>>
>> -     err = hts221_write_with_mask(hw, HTS221_REG_CNTRL1_ADDR,
>> -                                  HTS221_ENABLE_MASK, 1);
>> -     if (err < 0)
>> -             return err;
>> -
>>       hw->odr = odr;
>>
>>       return 0;
>> @@ -290,29 +285,16 @@ hts221_sysfs_temp_oversampling_avail(struct device *dev,
>>       return len;
>>  }
>>
>> -int hts221_power_on(struct hts221_hw *hw)
>> -{
>> -     int err;
>> -
>> -     err = hts221_update_odr(hw, hw->odr);
>> -     if (err < 0)
>> -             return err;
>> -
>> -     hw->enabled = true;
>> -
>> -     return 0;
>> -}
>> -
>> -int hts221_power_off(struct hts221_hw *hw)
>> +int hts221_set_enable(struct hts221_hw *hw, bool enable)
>>  {
>>       int err;
>>
>>       err = hts221_write_with_mask(hw, HTS221_REG_CNTRL1_ADDR,
>> -                                  HTS221_ENABLE_MASK, false);
>> +                                  HTS221_ENABLE_MASK, enable);
>>       if (err < 0)
>>               return err;
>>
>> -     hw->enabled = false;
>> +     hw->enabled = enable;
>>
>>       return 0;
>>  }
>> @@ -467,7 +449,7 @@ static int hts221_read_oneshot(struct hts221_hw *hw, u8 addr, int *val)
>>       u8 data[HTS221_DATA_SIZE];
>>       int err;
>>
>> -     err = hts221_power_on(hw);
>> +     err = hts221_set_enable(hw, true);
>>       if (err < 0)
>>               return err;
>>
>> @@ -477,7 +459,7 @@ static int hts221_read_oneshot(struct hts221_hw *hw, u8 addr, int *val)
>>       if (err < 0)
>>               return err;
>>
>> -     hts221_power_off(hw);
>> +     hts221_set_enable(hw, false);
>>
>>       *val = (s16)get_unaligned_le16(data);
>>
>> @@ -627,8 +609,6 @@ int hts221_probe(struct iio_dev *iio_dev)
>>       if (err < 0)
>>               return err;
>>
>> -     hw->odr = hts221_odr_table[0].hz;
>> -
>>       iio_dev->modes = INDIO_DIRECT_MODE;
>>       iio_dev->dev.parent = hw->dev;
>>       iio_dev->available_scan_masks = hts221_scan_masks;
>> @@ -643,6 +623,10 @@ int hts221_probe(struct iio_dev *iio_dev)
>>       if (err < 0)
>>               return err;
>>
>> +     err = hts221_update_odr(hw, hts221_odr_table[0].hz);
>> +     if (err < 0)
>> +             return err;
>> +
>>       /* configure humidity sensor */
>>       err = hts221_parse_rh_caldata(hw);
>>       if (err < 0) {
>> @@ -706,7 +690,8 @@ static int __maybe_unused hts221_resume(struct device *dev)
>>       int err = 0;
>>
>>       if (hw->enabled)
>> -             err = hts221_update_odr(hw, hw->odr);
>> +             err = hts221_write_with_mask(hw, HTS221_REG_CNTRL1_ADDR,
>> +                                          HTS221_ENABLE_MASK, true);
>>
>>       return err;
>>  }
>



-- 
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 devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux