[PATCH 1/8] power: supply: core: add wakeup source inhibit by power_supply_config

From: Thomas Weißschuh
Date: Sat Oct 05 2024 - 06:07:32 EST


To inhibit wakeup users currently have to use dedicated functions to
register the power supply: {,devm_}power_supply_register_no_ws().
This is inconsistent to other runtime settings which can be configured
through struct power_supply_config.
It's also not obvious what _no_ws() is meant to mean.

Extend power_supply_config to also be able to inhibit the wakeup source.

Signed-off-by: Thomas Weißschuh <linux@xxxxxxxxxxxxxx>
---
drivers/power/supply/power_supply_core.c | 3 +++
include/linux/power_supply.h | 2 ++
2 files changed, 5 insertions(+)

diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c
index 49534458a9f7d3f6d7c01bd91fa1bb6ed23bc7ad..5b5a3abca0b554d809054026f8cf32b2d18a3362 100644
--- a/drivers/power/supply/power_supply_core.c
+++ b/drivers/power/supply/power_supply_core.c
@@ -1410,6 +1410,9 @@ __power_supply_register(struct device *parent,
if (rc)
goto device_add_failed;

+ if (cfg && cfg->no_wakeup_source)
+ ws = false;
+
rc = device_init_wakeup(dev, ws);
if (rc)
goto wakeup_init_failed;
diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h
index 910d407ebe6323aaf4b31f0081f2cdd4be43a9fa..412646e055d79ff23346a99c4485e594363857ed 100644
--- a/include/linux/power_supply.h
+++ b/include/linux/power_supply.h
@@ -236,6 +236,8 @@ struct power_supply_config {

char **supplied_to;
size_t num_supplicants;
+
+ bool no_wakeup_source;
};

/* Description of power supply */

--
2.46.2