diff options
Diffstat (limited to 'hal-0.5.11-patches/0011-fix-PMU-battery-and-AC-handling-with-power_supply.patch')
-rw-r--r-- | hal-0.5.11-patches/0011-fix-PMU-battery-and-AC-handling-with-power_supply.patch | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/hal-0.5.11-patches/0011-fix-PMU-battery-and-AC-handling-with-power_supply.patch b/hal-0.5.11-patches/0011-fix-PMU-battery-and-AC-handling-with-power_supply.patch new file mode 100644 index 00000000..70e77677 --- /dev/null +++ b/hal-0.5.11-patches/0011-fix-PMU-battery-and-AC-handling-with-power_supply.patch @@ -0,0 +1,66 @@ +From 6c4bc8a7d166b952143fd1817b58baf5cc792536 Mon Sep 17 00:00:00 2001 +From: Danny Kukawka <danny.kukawka@web.de> +Date: Mon, 11 Aug 2008 11:39:18 +0200 +Subject: [PATCH 11/48] fix PMU battery and AC handling with power_supply + +Fixed PMU battery and AC handling if they are exposed via the +power_supply interface. This prevents double the battery and AC +devices by handling the proc and sysfs interfaces. + +Should fix fd.o bug #15482. +--- + hald/linux/pmu.c | 21 ++++++++++++++------- + 1 files changed, 14 insertions(+), 7 deletions(-) + +diff --git a/hald/linux/pmu.c b/hald/linux/pmu.c +index 71f94cf..6870d50 100644 +--- a/hald/linux/pmu.c ++++ b/hald/linux/pmu.c +@@ -39,6 +39,7 @@ + + #include "hotplug.h" + #include "osspec_linux.h" ++#include "device.h" + + #include "pmu.h" + +@@ -357,16 +358,18 @@ pmu_synthesize_hotplug_events (void) + pmu_synthesize_item ("/proc/pmu/info", PMU_TYPE_LAPTOP_PANEL); + } + +- /* setup timer for things that we need to poll */ ++ if (!_have_sysfs_power_supply) { ++ /* setup timer for things that we need to poll */ + #ifdef HAVE_GLIB_2_14 +- g_timeout_add_seconds (PMU_POLL_INTERVAL, +- pmu_poll, +- NULL); ++ g_timeout_add_seconds (PMU_POLL_INTERVAL, ++ pmu_poll, ++ NULL); + #else +- g_timeout_add (1000 * PMU_POLL_INTERVAL, +- pmu_poll, +- NULL); ++ g_timeout_add (1000 * PMU_POLL_INTERVAL, ++ pmu_poll, ++ NULL); + #endif ++ } + + out: + return ret; +@@ -376,6 +379,10 @@ static HalDevice * + pmu_generic_add (const gchar *pmu_path, HalDevice *parent, PMUDevHandler *handler) + { + HalDevice *d; ++ ++ if (((handler->pmu_type == PMU_TYPE_BATTERY) || (handler->pmu_type == PMU_TYPE_AC_ADAPTER)) && _have_sysfs_power_supply) ++ return NULL; ++ + d = hal_device_new (); + hal_device_property_set_string (d, "linux.pmu_path", pmu_path); + hal_device_property_set_int (d, "linux.pmu_type", handler->pmu_type); +-- +1.6.1.2 + |