All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] power: supply: core: Ignore -EIO for uevent
@ 2022-08-24 23:57 Brian Norris
  2022-08-25 14:02 ` Sebastian Reichel
  0 siblings, 1 reply; 4+ messages in thread
From: Brian Norris @ 2022-08-24 23:57 UTC (permalink / raw)
  To: Sebastian Reichel; +Cc: linux-kernel, linux-pm, Brian Norris

For uevents, we enumerate all properties. Some battery implementations
don't implement all standard properties, and may return -EIO for
properties that aren't recognized. This means we never report uevents
for such batteries.

It's better to ignore these errors and skip the property, as we do with
ENODATA and ENODEV.

Example battery implementation: Acer Chromebook Tab 10 (a.k.a. Google
Gru-Scarlet) has a virtual "SBS" battery implementation in its Embedded
Controller on top of an otherwise non-SBS battery.

Signed-off-by: Brian Norris <briannorris@chromium.org>
---

 drivers/power/supply/power_supply_sysfs.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/power/supply/power_supply_sysfs.c b/drivers/power/supply/power_supply_sysfs.c
index 4239591e1522..36fce572a213 100644
--- a/drivers/power/supply/power_supply_sysfs.c
+++ b/drivers/power/supply/power_supply_sysfs.c
@@ -439,10 +439,12 @@ static int add_prop_uevent(struct device *dev, struct kobj_uevent_env *env,
 	dev_attr = &pwr_attr->dev_attr;
 
 	ret = power_supply_show_property(dev, dev_attr, prop_buf);
-	if (ret == -ENODEV || ret == -ENODATA) {
+	if (ret == -ENODEV || ret == -ENODATA || ret == -EIO) {
 		/*
 		 * When a battery is absent, we expect -ENODEV. Don't abort;
-		 * send the uevent with at least the the PRESENT=0 property
+		 * send the uevent with at least the PRESENT=0 property. Some
+		 * batteries also report EIO, even for some standard
+		 * properties.
 		 */
 		return 0;
 	}
-- 
2.37.2.672.g94769d06f0-goog


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-09-17  1:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-24 23:57 [PATCH] power: supply: core: Ignore -EIO for uevent Brian Norris
2022-08-25 14:02 ` Sebastian Reichel
2022-08-26  1:11   ` Brian Norris
2022-09-16 22:25     ` Sebastian Reichel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.