power: supply: cpcap-battery: Use accumulator for current and power average
We should not use measured current value for average since we have proper coulomb counter values available. Using measured current value should be only used when the value is queried at a higher rate than the 250 ms rate the coulomb counter is configured to run at. Cc: Pavel Machek <pavel@ucw.cz> Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
This commit is contained in:
parent
35439b7ab2
commit
5fc27a5419
|
@ -476,11 +476,11 @@ static int cpcap_battery_get_property(struct power_supply *psy,
|
|||
val->intval = ddata->config.info.voltage_min_design;
|
||||
break;
|
||||
case POWER_SUPPLY_PROP_CURRENT_AVG:
|
||||
if (cached) {
|
||||
sample = latest->cc.sample - previous->cc.sample;
|
||||
if (!sample) {
|
||||
val->intval = cpcap_battery_cc_get_avg_current(ddata);
|
||||
break;
|
||||
}
|
||||
sample = latest->cc.sample - previous->cc.sample;
|
||||
accumulator = latest->cc.accumulator - previous->cc.accumulator;
|
||||
val->intval = cpcap_battery_cc_to_ua(ddata, sample,
|
||||
accumulator,
|
||||
|
@ -497,13 +497,13 @@ static int cpcap_battery_get_property(struct power_supply *psy,
|
|||
val->intval = div64_s64(tmp, 100);
|
||||
break;
|
||||
case POWER_SUPPLY_PROP_POWER_AVG:
|
||||
if (cached) {
|
||||
sample = latest->cc.sample - previous->cc.sample;
|
||||
if (!sample) {
|
||||
tmp = cpcap_battery_cc_get_avg_current(ddata);
|
||||
tmp *= (latest->voltage / 10000);
|
||||
val->intval = div64_s64(tmp, 100);
|
||||
break;
|
||||
}
|
||||
sample = latest->cc.sample - previous->cc.sample;
|
||||
accumulator = latest->cc.accumulator - previous->cc.accumulator;
|
||||
tmp = cpcap_battery_cc_to_ua(ddata, sample, accumulator,
|
||||
latest->cc.offset);
|
||||
|
|
Loading…
Reference in New Issue