Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

x86/mrst: Battery fixes

When DCDC input line over current detecting, PMIC will change
charging current automatically. Logging event is enough.

Signed-off-by: Major Lee <major_lee@wistron.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Cc: Mathias Nyman <mathias.nyman@linux.intel.com>
Cc: Feng Tang <feng.tang@intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
[fix build]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

authored by

Major Lee and committed by
Ingo Molnar
a7a28049 2cd1c8d4

+6 -6
+6 -6
drivers/power/intel_mid_battery.c
··· 61 61 #define PMIC_BATT_CHR_SBATDET_MASK (1 << 5) 62 62 #define PMIC_BATT_CHR_SDCLMT_MASK (1 << 6) 63 63 #define PMIC_BATT_CHR_SUSBOVP_MASK (1 << 7) 64 - #define PMIC_BATT_CHR_EXCPT_MASK 0xC6 64 + #define PMIC_BATT_CHR_EXCPT_MASK 0x86 65 + 65 66 #define PMIC_BATT_ADC_ACCCHRG_MASK (1 << 31) 66 67 #define PMIC_BATT_ADC_ACCCHRGVAL_MASK 0x7FFFFFFF 67 68 ··· 305 304 pbi->batt_status = POWER_SUPPLY_STATUS_NOT_CHARGING; 306 305 pmic_battery_log_event(BATT_EVENT_BATOVP_EXCPT); 307 306 batt_exception = 1; 308 - } else if (r8 & PMIC_BATT_CHR_SDCLMT_MASK) { 309 - pbi->batt_health = POWER_SUPPLY_HEALTH_OVERVOLTAGE; 310 - pbi->batt_status = POWER_SUPPLY_STATUS_NOT_CHARGING; 311 - pmic_battery_log_event(BATT_EVENT_DCLMT_EXCPT); 312 - batt_exception = 1; 313 307 } else if (r8 & PMIC_BATT_CHR_STEMP_MASK) { 314 308 pbi->batt_health = POWER_SUPPLY_HEALTH_OVERHEAT; 315 309 pbi->batt_status = POWER_SUPPLY_STATUS_NOT_CHARGING; ··· 312 316 batt_exception = 1; 313 317 } else { 314 318 pbi->batt_health = POWER_SUPPLY_HEALTH_GOOD; 319 + if (r8 & PMIC_BATT_CHR_SDCLMT_MASK) { 320 + /* PMIC will change charging current automatically */ 321 + pmic_battery_log_event(BATT_EVENT_DCLMT_EXCPT); 322 + } 315 323 } 316 324 } 317 325