50 lines
1.4 KiB
Diff
50 lines
1.4 KiB
Diff
From: Andy Whitcroft <apw@canonical.com>
|
|
Date: Thu, 3 May 2012 14:48:26 +0100
|
|
Subject: ACPI battery: only refresh the sysfs files when pertinent
|
|
information changes
|
|
|
|
commit c5971456964290da7e98222892797b71ef793e62 upstream.
|
|
|
|
We only need to regenerate the sysfs files when the capacity units
|
|
change, avoid the update otherwise.
|
|
|
|
The origin of this issue is dates way back to 2.6.38:
|
|
da8aeb92d4853f37e281f11fddf61f9c7d84c3cd
|
|
(ACPI / Battery: Update information on info notification and resume)
|
|
|
|
Signed-off-by: Andy Whitcroft <apw@canonical.com>
|
|
Tested-by: Ralf Jung <post@ralfj.de>
|
|
Signed-off-by: Len Brown <len.brown@intel.com>
|
|
---
|
|
drivers/acpi/battery.c | 10 +++++++++-
|
|
1 file changed, 9 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
|
|
index 86933ca..7dd3f9f 100644
|
|
--- a/drivers/acpi/battery.c
|
|
+++ b/drivers/acpi/battery.c
|
|
@@ -643,11 +643,19 @@ static int acpi_battery_update(struct acpi_battery *battery)
|
|
|
|
static void acpi_battery_refresh(struct acpi_battery *battery)
|
|
{
|
|
+ int power_unit;
|
|
+
|
|
if (!battery->bat.dev)
|
|
return;
|
|
|
|
+ power_unit = battery->power_unit;
|
|
+
|
|
acpi_battery_get_info(battery);
|
|
- /* The battery may have changed its reporting units. */
|
|
+
|
|
+ if (power_unit == battery->power_unit)
|
|
+ return;
|
|
+
|
|
+ /* The battery has changed its reporting units. */
|
|
sysfs_remove_battery(battery);
|
|
sysfs_add_battery(battery);
|
|
}
|
|
--
|
|
1.7.10
|
|
|