(Bug 10162 - contextkit of Battery API not update the key value.) When DCDC input line over current detecting, PMIC will change charging current automatically. Logging event is enough.
Signed-off-by: Major Lee <[email protected]> --- --- linux-2.6.37.bak/drivers/power/intel_pmic_battery.c 2011-07-21 14:13:32.945077839 +0800 +++ linux-2.6.37/drivers/power/intel_pmic_battery.c 2011-07-21 14:19:42.566245000 +0800 @@ -51,7 +51,7 @@ #define PMIC_BATT_CHR_SBATDET_MASK (1 << 5) #define PMIC_BATT_CHR_SDCLMT_MASK (1 << 6) #define PMIC_BATT_CHR_SUSBOVP_MASK (1 << 7) -#define PMIC_BATT_CHR_EXCPT_MASK 0xC6 +#define PMIC_BATT_CHR_EXCPT_MASK 0x86 #define PMIC_BATT_ADC_ACCCHRG_MASK (1 << 31) #define PMIC_BATT_ADC_ACCCHRGVAL_MASK 0x7FFFFFFF @@ -597,11 +597,6 @@ static void pmic_battery_read_status(str pbi->batt_status = POWER_SUPPLY_STATUS_NOT_CHARGING; pmic_battery_log_event(pbi, BATT_EVENT_BATOVP_EXCPT); batt_exception = 1; - } else if (r8 & PMIC_BATT_CHR_SDCLMT_MASK) { - pbi->batt_health = POWER_SUPPLY_HEALTH_OVERVOLTAGE; - pbi->batt_status = POWER_SUPPLY_STATUS_NOT_CHARGING; - pmic_battery_log_event(pbi, BATT_EVENT_DCLMT_EXCPT); - batt_exception = 1; } else if (r8 & PMIC_BATT_CHR_STEMP_MASK) { pbi->batt_health = POWER_SUPPLY_HEALTH_OVERHEAT; pbi->batt_status = POWER_SUPPLY_STATUS_NOT_CHARGING; @@ -609,6 +604,10 @@ static void pmic_battery_read_status(str batt_exception = 1; } else { pbi->batt_health = POWER_SUPPLY_HEALTH_GOOD; + if (r8 & PMIC_BATT_CHR_SDCLMT_MASK) { + /* PMIC will change charging current automatically */ + pmic_battery_log_event(pbi, BATT_EVENT_DCLMT_EXCPT); + } } }
linux-2.6.37-pmic-battery-over-current.patch
Description: linux-2.6.37-pmic-battery-over-current.patch
_______________________________________________ MeeGo-kernel mailing list [email protected] http://lists.meego.com/listinfo/meego-kernel
