--- /dev/null
+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
+