kernel-power v49 -> kernel-bfs
[kernel-bfs] / kernel-bfs-2.6.28 / debian / patches / power-supply-ignore-enodata.diff
diff --git a/kernel-bfs-2.6.28/debian/patches/power-supply-ignore-enodata.diff b/kernel-bfs-2.6.28/debian/patches/power-supply-ignore-enodata.diff
new file mode 100644 (file)
index 0000000..7f3b14e
--- /dev/null
@@ -0,0 +1,37 @@
+From f722e17fdb2c97bbec2563636dd88489cdb1428b Mon Sep 17 00:00:00 2001
+From: Lars-Peter Clausen <lars@metafoo.de>
+Date: Sat, 8 Jan 2011 19:12:26 +0100
+Subject: [PATCH] power_supply: Ignore -ENODATA errors when generating uevents
+
+Sometimes a driver can not report a meaningful value for a certain property
+and returns -ENODATA.
+
+Currently when generating a uevent and a property return -ENODATA it is
+treated as an error an no uevent is generated at all. This is not an
+desirable behavior.
+
+This patch adds a special case for -ENODATA and ignores properties which
+return this error code when generating the uevent.
+
+Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
+Tested-by: Grazvydas Ignotas <notasas@gmail.com>
+---
+ drivers/power/power_supply_sysfs.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/power/power_supply_sysfs.c b/drivers/power/power_supply_sysfs.c
+index cd1f907..605514a 100644
+--- a/drivers/power/power_supply_sysfs.c
++++ b/drivers/power/power_supply_sysfs.c
+@@ -270,7 +270,7 @@ int power_supply_uevent(struct device *dev, struct kobj_uevent_env *env)
+               attr = &power_supply_attrs[psy->properties[j]];
+               ret = power_supply_show_property(dev, attr, prop_buf);
+-              if (ret == -ENODEV) {
++              if (ret == -ENODEV || ret == -ENODATA) {
+                       /* When a battery is absent, we expect -ENODEV. Don't abort;
+                          send the uevent with at least the the PRESENT=0 property */
+                       ret = 0;
+-- 
+1.7.6.2
+