summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Weißschuh <linux@weissschuh.net>2018-08-02 00:24:18 +0200
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>2018-08-15 12:55:32 +0300
commitd22296d9c38fd29a96bb5079fb8d17cee278f40e (patch)
treef20feeb17d4fa58bc59fb28a0795bb568b9f6c03
parent6640ee6289b9974334e36d8283fc07f37f3b235d (diff)
downloadlinux-stable-d22296d9c38fd29a96bb5079fb8d17cee278f40e.tar.gz
linux-stable-d22296d9c38fd29a96bb5079fb8d17cee278f40e.tar.bz2
linux-stable-d22296d9c38fd29a96bb5079fb8d17cee278f40e.zip
platform/x86: thinkpad_acpi: Fix multi-battery bug
The struct containing the supported operations for all batteries is being zeroed on each battery probe. This prevents all other batteries except the lastly probed one from being configured. Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
-rw-r--r--drivers/platform/x86/thinkpad_acpi.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index fd49855af110..0a118f462aa4 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -9374,7 +9374,9 @@ static int tpacpi_battery_probe(int battery)
{
int ret = 0;
- memset(&battery_info, 0, sizeof(struct tpacpi_battery_driver_data));
+ memset(&battery_info.batteries[battery], 0,
+ sizeof(battery_info.batteries[battery]));
+
/*
* 1) Get the current start threshold
* 2) Check for support
@@ -9620,6 +9622,8 @@ static const struct tpacpi_quirk battery_quirk_table[] __initconst = {
static int __init tpacpi_battery_init(struct ibm_init_struct *ibm)
{
+ memset(&battery_info, 0, sizeof(battery_info));
+
tp_features.battery_force_primary = tpacpi_check_quirks(
battery_quirk_table,
ARRAY_SIZE(battery_quirk_table));