Issue: "POWER_SUPPLY_CHARGE_NOW is greater than
POWER_SUPPLY_CHARGE_FULL" (Bug 7312).
Update coulomb counter value when user space application writes
battery_capacity_percent.
Do not need to keep updating coulomb counter value for SCU will maintain
it.
This patch also fix a memory leak problem.

Signed-off-by: Major Lee <[email protected]>
---

--- linux-2.6.37.bak/drivers/power/intel_pmic_battery.c 2011-06-07
17:03:15.169862268 +0800
+++ linux-2.6.37/drivers/power/intel_pmic_battery.c     2011-06-08
11:51:30.763381000 +0800
@@ -1078,13 +1078,22 @@ battery_capacity_percent_store(struct ko
                                        const char *buf, size_t n)
 {
        unsigned long percent = simple_strtoul(buf, NULL, 0x10);
+       struct battery_property batt_prop;
+       u32 write_ccval;
 
        if (percent > 100)
                batt_capacity_percent = 100;
        else
                batt_capacity_percent = percent;
+
+       if (!batt_capacity_flag) {
+               /* Update coulomb counter value */
+               if (!pmic_scu_ipc_battery_property_get(&batt_prop)) {
+                       write_ccval = batt_prop.capacity *
batt_capacity_percent / 100;
+                       pmic_scu_ipc_battery_cc_write(&write_ccval);
+               }
+       }
        batt_capacity_flag = true;
-       /* FIXME: consistent kobject and struct pmic_power_info by
container_of() */
 
        return n;
 }
@@ -1199,7 +1208,7 @@ mid_battery_read(struct file * file, cha
        len = count / sizeof(struct battery_info);
        kbuf = kmalloc(sizeof(struct battery_info) * len, GFP_KERNEL);
        if (!kbuf) {
-               retval = -EFAULT;
+               retval = -ENOMEM;
                goto read_fail;
        }
 
@@ -1217,6 +1226,7 @@ mid_battery_read(struct file * file, cha
        if (copy_to_user(buf, kbuf, sizeof(struct battery_info) * len)
== 0)
                retval = sizeof(struct battery_info) * len;
 
+       kfree(kbuf);
 read_fail:
        return retval;
 }

Attachment: pmic-battery-update-cc-value.patch
Description: pmic-battery-update-cc-value.patch

_______________________________________________
MeeGo-kernel mailing list
[email protected]
http://lists.meego.com/listinfo/meego-kernel

Reply via email to