Fix indexing of the 4 active full EEPROM registers. The indexing was out by 1, accessing the EEPROM registers at 0x23 to 0x26 instead of 0x22 to 0x25.
Signed-off-by: Paul Parsons <[email protected]>
---
--- clean-2.6.39-rc4/drivers/power/ds2760_battery.c 2011-03-15 01:20:32.000000000 +0000
+++ linux-2.6.39-rc4/drivers/power/ds2760_battery.c 2011-04-25 13:06:29.344976841 +0100
@@ -186,7 +190,7 @@ static int ds2760_battery_read_status(st
scale[0] = di->full_active_uAh;
for (i = 1; i < 5; i++)
- scale[i] = scale[i - 1] + di->raw[DS2760_ACTIVE_FULL + 2 + i];
+ scale[i] = scale[i - 1] + di->raw[DS2760_ACTIVE_FULL + 1 + i];
di->full_active_uAh = battery_interpolate(scale, di->temp_C / 10);
di->full_active_uAh *= 1000; /* convert to µAh */
On Mon, Apr 25, 2011 at 02:43:30PM +0000, Paul Parsons wrote:
> Fix indexing of the 4 active full EEPROM registers. The indexing was out by 1, accessing the EEPROM registers at 0x23 to 0x26 instead of 0x22 to 0x25.
>
> Signed-off-by: Paul Parsons <[email protected]>
Applied, thank you!
> ---
> --- clean-2.6.39-rc4/drivers/power/ds2760_battery.c 2011-03-15 01:20:32.000000000 +0000
> +++ linux-2.6.39-rc4/drivers/power/ds2760_battery.c 2011-04-25 13:06:29.344976841 +0100
> @@ -186,7 +190,7 @@ static int ds2760_battery_read_status(st
>
> scale[0] = di->full_active_uAh;
> for (i = 1; i < 5; i++)
> - scale[i] = scale[i - 1] + di->raw[DS2760_ACTIVE_FULL + 2 + i];
> + scale[i] = scale[i - 1] + di->raw[DS2760_ACTIVE_FULL + 1 + i];
>
> di->full_active_uAh = battery_interpolate(scale, di->temp_C / 10);
> di->full_active_uAh *= 1000; /* convert to µAh */
--
Anton Vorontsov
Email: [email protected]