Messages in this thread | | | Date | Mon, 31 Oct 2011 10:43:59 +0100 | From | Michael Hennerich <> | Subject | Re: [PATCH] mfd: adp5520: Ensure setting bits if new value is different from the old value |
| |
On 10/31/2011 04:00 AM, Axel Lin wrote: > Current code checks if all the bit_mask bits are all zero is wrong. > We need to write new value if the bit mask fields of new value is > not equal to old value. > > Signed-off-by: Axel Lin<axel.lin@gmail.com> Acked-by: Michael Hennerich <michael.hennerich@analog.com>
Right - the da903x suffers the same problem.
> --- > drivers/mfd/adp5520.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/drivers/mfd/adp5520.c b/drivers/mfd/adp5520.c > index f1d8848..8d816cc 100644 > --- a/drivers/mfd/adp5520.c > +++ b/drivers/mfd/adp5520.c > @@ -109,7 +109,7 @@ int adp5520_set_bits(struct device *dev, int reg, uint8_t bit_mask) > > ret = __adp5520_read(chip->client, reg,®_val); > > - if (!ret&& ((reg_val& bit_mask) == 0)) { > + if (!ret&& ((reg_val& bit_mask) != bit_mask)) { > reg_val |= bit_mask; > ret = __adp5520_write(chip->client, reg, reg_val); > }
-- Greetings, Michael
-- Analog Devices GmbH Wilhelm-Wagenfeld-Str. 6 80807 Muenchen Sitz der Gesellschaft: Muenchen; Registergericht: Muenchen HRB 40368; Geschaeftsfuehrer:Dr.Carsten Suckrow, Thomas Wessel, William A. Martin, Margaret Seif
| |