From patchwork Thu Jun 30 00:00:17 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Pandruvada X-Patchwork-Id: 9206365 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 04FA960757 for ; Wed, 29 Jun 2016 23:59:02 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EA04C28618 for ; Wed, 29 Jun 2016 23:59:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DEC5A2861B; Wed, 29 Jun 2016 23:59:01 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E170F28637 for ; Wed, 29 Jun 2016 23:59:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751590AbcF2X66 (ORCPT ); Wed, 29 Jun 2016 19:58:58 -0400 Received: from mga02.intel.com ([134.134.136.20]:28023 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751589AbcF2X65 (ORCPT ); Wed, 29 Jun 2016 19:58:57 -0400 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP; 29 Jun 2016 16:58:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,549,1459839600"; d="scan'208";a="985983644" Received: from spandruv-desk3.jf.intel.com ([10.7.199.80]) by orsmga001.jf.intel.com with ESMTP; 29 Jun 2016 16:58:54 -0700 From: Srinivas Pandruvada To: rjw@rjwysocki.net Cc: linux-acpi@vger.kernel.org, Srinivas Pandruvada Subject: [PATCH v4 3/5] acpi: battery: allow externel access of battery information Date: Wed, 29 Jun 2016 17:00:17 -0700 Message-Id: <1467244819-19046-4-git-send-email-srinivas.pandruvada@linux.intel.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1467244819-19046-1-git-send-email-srinivas.pandruvada@linux.intel.com> References: <1467244819-19046-1-git-send-email-srinivas.pandruvada@linux.intel.com> Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Moved acpi_battery structure to battery.h, so that fields can be accessed from other modules using battery_common. Also export acpi_battery_update(), to read the latest battery information from ACPI. Removed include for battery.h from drivers/acpi/sbs, where it was not used but has the same structure name for acpi_battery. Signed-off-by: Srinivas Pandruvada --- drivers/acpi/battery.h | 41 +++++++++++++++++++++++++++++++++++++++++ drivers/acpi/battery_common.c | 43 ++----------------------------------------- drivers/acpi/sbs.c | 1 - 3 files changed, 43 insertions(+), 42 deletions(-) diff --git a/drivers/acpi/battery.h b/drivers/acpi/battery.h index 626093c..fd2586a 100644 --- a/drivers/acpi/battery.h +++ b/drivers/acpi/battery.h @@ -16,12 +16,52 @@ #ifndef __ACPI_BATTERY_H #define __ACPI_BATTERY_H +#include +#include + #define ACPI_BATTERY_CLASS "battery" #define ACPI_BATTERY_NOTIFY_STATUS 0x80 #define ACPI_BATTERY_NOTIFY_INFO 0x81 #define ACPI_BATTERY_NOTIFY_THRESHOLD 0x82 +struct acpi_battery { + struct mutex lock; + struct mutex sysfs_lock; + struct power_supply *bat; + struct power_supply_desc bat_desc; + struct acpi_device *device; + struct notifier_block pm_nb; + unsigned long update_time; + int revision; + int rate_now; + int capacity_now; + int voltage_now; + int design_capacity; + int full_charge_capacity; + int technology; + int design_voltage; + int design_capacity_warning; + int design_capacity_low; + int cycle_count; + int measurement_accuracy; + int max_sampling_time; + int min_sampling_time; + int max_averaging_interval; + int min_averaging_interval; + int capacity_granularity_1; + int capacity_granularity_2; + int alarm; + char model_number[32]; + char serial_number[32]; + char type[32]; + char oem_info[32]; + int state; + int power_unit; + unsigned long flags; + bool power_supply_register; +}; + extern int battery_bix_broken_package; extern int battery_notification_delay_ms; extern struct proc_dir_entry *acpi_battery_dir; @@ -30,6 +70,7 @@ int acpi_battery_common_add(struct acpi_device *device, bool power_supply_regist int acpi_battery_common_remove(struct acpi_device *device); int acpi_battery_common_resume(struct device *dev); void acpi_battery_common_notify(struct acpi_device *device, u32 event); +int acpi_battery_update(struct acpi_battery *battery, bool resume); /* Defined in cm_sbs.c */ #ifdef CONFIG_ACPI_PROCFS_POWER diff --git a/drivers/acpi/battery_common.c b/drivers/acpi/battery_common.c index 873b104..aaf32ab 100644 --- a/drivers/acpi/battery_common.c +++ b/drivers/acpi/battery_common.c @@ -39,9 +39,6 @@ #include #endif -#include -#include - #include "battery.h" #define PREFIX "ACPI: " @@ -107,43 +104,6 @@ enum { ACPI_BATTERY_QUIRK_THINKPAD_MAH, }; -struct acpi_battery { - struct mutex lock; - struct mutex sysfs_lock; - struct power_supply *bat; - struct power_supply_desc bat_desc; - struct acpi_device *device; - struct notifier_block pm_nb; - unsigned long update_time; - int revision; - int rate_now; - int capacity_now; - int voltage_now; - int design_capacity; - int full_charge_capacity; - int technology; - int design_voltage; - int design_capacity_warning; - int design_capacity_low; - int cycle_count; - int measurement_accuracy; - int max_sampling_time; - int min_sampling_time; - int max_averaging_interval; - int min_averaging_interval; - int capacity_granularity_1; - int capacity_granularity_2; - int alarm; - char model_number[32]; - char serial_number[32]; - char type[32]; - char oem_info[32]; - int state; - int power_unit; - unsigned long flags; - bool power_supply_register; -}; - #define to_acpi_battery(x) power_supply_get_drvdata(x) static inline int acpi_battery_present(struct acpi_battery *battery) @@ -723,7 +683,7 @@ static void acpi_battery_quirks(struct acpi_battery *battery) } } -static int acpi_battery_update(struct acpi_battery *battery, bool resume) +int acpi_battery_update(struct acpi_battery *battery, bool resume) { int result, old_present = acpi_battery_present(battery); @@ -768,6 +728,7 @@ static int acpi_battery_update(struct acpi_battery *battery, bool resume) return result; } +EXPORT_SYMBOL_GPL(acpi_battery_update); static void acpi_battery_refresh(struct acpi_battery *battery) { diff --git a/drivers/acpi/sbs.c b/drivers/acpi/sbs.c index ad0b13a..5fbeff2 100644 --- a/drivers/acpi/sbs.c +++ b/drivers/acpi/sbs.c @@ -34,7 +34,6 @@ #include #include "sbshc.h" -#include "battery.h" #define PREFIX "ACPI: "