|
Revision tags: v6.15, v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1, v6.14, v6.14-rc7, v6.14-rc6, v6.14-rc5 |
|
| #
13425403 |
| 24-Feb-2025 |
Sebastian Reichel <[email protected]> |
power: supply: core: get rid of of_node
This removes .of_node from 'struct power_supply', since there is already a copy in .dev.of_node and there is no need to have two copies.
Reviewed-by: AngeloG
power: supply: core: get rid of of_node
This removes .of_node from 'struct power_supply', since there is already a copy in .dev.of_node and there is no need to have two copies.
Reviewed-by: AngeloGioacchino Del Regno <[email protected]> Link: https://lore.kernel.org/r/20250225-psy-core-convert-to-fwnode-v1-1-d5e4369936bb@collabora.com Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
68b6cf40 |
| 07-Mar-2025 |
Dr. David Alan Gilbert <[email protected]> |
power: supply: Remove unused set_charged method
The previous patches in this series removed the only caller and only setter of this method.
Remove it.
Signed-off-by: Dr. David Alan Gilbert <linux@
power: supply: Remove unused set_charged method
The previous patches in this series removed the only caller and only setter of this method.
Remove it.
Signed-off-by: Dr. David Alan Gilbert <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
46723e28 |
| 07-Mar-2025 |
Dr. David Alan Gilbert <[email protected]> |
power: supply: core: Remove unused power_supply_set_battery_charged
power_supply_set_battery_charged() has been unused since 2019's commit 0f884f8a090e ("ARM: pxa: remove raumfeld board files and de
power: supply: core: Remove unused power_supply_set_battery_charged
power_supply_set_battery_charged() has been unused since 2019's commit 0f884f8a090e ("ARM: pxa: remove raumfeld board files and defconfig")
Remove it.
Signed-off-by: Dr. David Alan Gilbert <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
|
Revision tags: v6.14-rc4, v6.14-rc3, v6.14-rc2, v6.14-rc1, v6.13, v6.13-rc7 |
|
| #
df998c22 |
| 08-Jan-2025 |
Dzmitry Sankouski <[email protected]> |
power: supply: add undervoltage health status property
Add POWER_SUPPLY_HEALTH_UNDERVOLTAGE status for power supply to report under voltage lockout failures.
Signed-off-by: Dzmitry Sankouski <dsank
power: supply: add undervoltage health status property
Add POWER_SUPPLY_HEALTH_UNDERVOLTAGE status for power supply to report under voltage lockout failures.
Signed-off-by: Dzmitry Sankouski <[email protected]> Link: https://lore.kernel.org/r/20250108-starqltechn_integration_upstream-v14-1-f6e84ec20d96@gmail.com Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
|
Revision tags: v6.13-rc6, v6.13-rc5, v6.13-rc4, v6.13-rc3 |
|
| #
288a2cab |
| 11-Dec-2024 |
Thomas Weißschuh <[email protected]> |
power: supply: core: add UAPI to discover currently used extensions
Userspace wants to now about the used power supply extensions, for example to handle a device extended by a certain extension diff
power: supply: core: add UAPI to discover currently used extensions
Userspace wants to now about the used power supply extensions, for example to handle a device extended by a certain extension differently or to discover information about the extending device.
Add a sysfs directory to the power supply device. This directory contains links which are named after the used extension and point to the device implementing that extension.
Signed-off-by: Thomas Weißschuh <[email protected]> Reviewed-by: Armin Wolf <[email protected]> Link: https://lore.kernel.org/r/20241211-power-supply-extensions-v6-4-9d9dc3f3d387@weissschuh.net Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
6037802b |
| 11-Dec-2024 |
Thomas Weißschuh <[email protected]> |
power: supply: core: implement extension API
Various drivers, mostly in platform/x86 extend the ACPI battery driver with additional sysfs attributes to implement more UAPIs than are exposed through
power: supply: core: implement extension API
Various drivers, mostly in platform/x86 extend the ACPI battery driver with additional sysfs attributes to implement more UAPIs than are exposed through ACPI by using various side-channels, like WMI, nonstandard ACPI or EC communication.
While the created sysfs attributes look similar to the attributes provided by the powersupply core, there are various deficiencies:
* They don't show up in uevent payload. * They can't be queried with the standard in-kernel APIs. * They don't work with triggers. * The extending driver has to reimplement all of the parsing, formatting and sysfs display logic. * Writing a extension driver is completely different from writing a normal power supply driver.
This extension API avoids all of these issues. An extension is just a "struct power_supply_ext" with the same kind of callbacks as in a normal "struct power_supply_desc".
The API is meant to be used via battery_hook_register(), the same way as the current extensions.
Signed-off-by: Thomas Weißschuh <[email protected]> Reviewed-by: Armin Wolf <[email protected]> Link: https://lore.kernel.org/r/20241211-power-supply-extensions-v6-1-9d9dc3f3d387@weissschuh.net Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
d24bf992 |
| 11-Dec-2024 |
Hans de Goede <[email protected]> |
power: supply: core: Add new "charge_types" property
Add a new "charge_types" property, this is identical to "charge_type" but reading returns a list of supported charge-types with the currently act
power: supply: core: Add new "charge_types" property
Add a new "charge_types" property, this is identical to "charge_type" but reading returns a list of supported charge-types with the currently active type surrounded by square brackets, e.g.:
Fast [Standard] "Long_Life"
This has the advantage over the existing "charge_type" property that this allows userspace to find out which charge-types are supported for writable charge_type properties.
Drivers which already support "charge_type" can easily add support for this by setting power_supply_desc.charge_types to a bitmask representing valid charge_type values. The existing "charge_type" get_property() and set_property() code paths can be re-used for "charge_types".
Signed-off-by: Hans de Goede <[email protected]> Reviewed-by: Thomas Weißschuh <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
f5220403 |
| 10-Dec-2024 |
Thomas Weißschuh <[email protected]> |
power: supply: core: introduce dev_to_psy()
The psy core and drivers currently use dev_get_drvdata() to go from a 'struct device' to its 'struct power_supply'. This is not typesafe and or documented
power: supply: core: introduce dev_to_psy()
The psy core and drivers currently use dev_get_drvdata() to go from a 'struct device' to its 'struct power_supply'. This is not typesafe and or documented.
Introduce a new helper to make this pattern explicit. Instead of using dev_get_drvdata(), use container_of_const() which also preserves the constness. Furthermore 'dev' does need to be dereferenced anymore and at some point the drvdata could be reused for something else.
Signed-off-by: Thomas Weißschuh <[email protected]> Link: https://lore.kernel.org/r/20241210-power-supply-dev_to_psy-v2-7-9d8c9d24cfe4@weissschuh.net Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
bfc33032 |
| 10-Dec-2024 |
Thomas Weißschuh <[email protected]> |
power: supply: core: remove power_supply_for_each_device()
There are no users anymore. All potential future users are expected to use power_supply_for_each_psy().
Signed-off-by: Thomas Weißschuh <l
power: supply: core: remove power_supply_for_each_device()
There are no users anymore. All potential future users are expected to use power_supply_for_each_psy().
Signed-off-by: Thomas Weißschuh <[email protected]> Link: https://lore.kernel.org/r/20241210-power-supply-dev_to_psy-v2-6-9d8c9d24cfe4@weissschuh.net Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
9029409d |
| 10-Dec-2024 |
Thomas Weißschuh <[email protected]> |
power: supply: core: introduce power_supply_for_each_psy()
All existing callers of power_supply_for_each_device() want to iterate over 'struct power_supply', not 'struct device'. The power_supply_fo
power: supply: core: introduce power_supply_for_each_psy()
All existing callers of power_supply_for_each_device() want to iterate over 'struct power_supply', not 'struct device'. The power_supply_for_each_device() forces each caller to duplicate the logic to go from one to the other. Introduce power_supply_for_each_psy() to simplify the callers.
Signed-off-by: Thomas Weißschuh <[email protected]> Link: https://lore.kernel.org/r/20241210-power-supply-dev_to_psy-v2-2-9d8c9d24cfe4@weissschuh.net Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
|
Revision tags: v6.13-rc2, v6.13-rc1, v6.12, v6.12-rc7, v6.12-rc6, v6.12-rc5, v6.12-rc4 |
|
| #
44fcc479 |
| 17-Oct-2024 |
Thomas Weißschuh <[email protected]> |
power: supply: hwmon: move interface to private header
The interface of power_supply_hwmon.c is only meant to be used by the psy core. Remove it from the public header file and use the private one i
power: supply: hwmon: move interface to private header
The interface of power_supply_hwmon.c is only meant to be used by the psy core. Remove it from the public header file and use the private one instead.
Signed-off-by: Thomas Weißschuh <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
|
Revision tags: v6.12-rc3, v6.12-rc2 |
|
| #
cf70da29 |
| 05-Oct-2024 |
Thomas Weißschuh <[email protected]> |
power: supply: core: unexport power_supply_property_is_writeable()
Since commit ("power: supply: Drop use_cnt check from power_supply_property_is_writeable()"), this function does not check use_cnt
power: supply: core: unexport power_supply_property_is_writeable()
Since commit ("power: supply: Drop use_cnt check from power_supply_property_is_writeable()"), this function does not check use_cnt anymore, making it unsuitable for general usage. As it is only used by the psy core anyways, remove it from the public header and unexport it to avoid misusage.
Signed-off-by: Thomas Weißschuh <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
85d319e1 |
| 05-Oct-2024 |
Thomas Weißschuh <[email protected]> |
power: supply: core: remove {,devm_}power_supply_register_no_ws()
The same functionality is available through power_supply_config::no_wakeup_source, which is more idiomatic. All users of the old API
power: supply: core: remove {,devm_}power_supply_register_no_ws()
The same functionality is available through power_supply_config::no_wakeup_source, which is more idiomatic. All users of the old API have been converted.
Also remove the argument "ws" from __power_supply_register(), as it is now always "true".
Signed-off-by: Thomas Weißschuh <[email protected]> Reviewed-by: Tzung-Bi Shih <[email protected]> Link: https://lore.kernel.org/r/20241005-power-supply-no-wakeup-source-v1-8-1d62bf9bcb1d@weissschuh.net Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
49000fee |
| 05-Oct-2024 |
Thomas Weißschuh <[email protected]> |
power: supply: core: add wakeup source inhibit by power_supply_config
To inhibit wakeup users currently have to use dedicated functions to register the power supply: {,devm_}power_supply_register_no
power: supply: core: add wakeup source inhibit by power_supply_config
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 <[email protected]> Reviewed-by: Tzung-Bi Shih <[email protected]> Link: https://lore.kernel.org/r/20241005-power-supply-no-wakeup-source-v1-1-1d62bf9bcb1d@weissschuh.net Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
ce20d5b9 |
| 05-Oct-2024 |
Thomas Weißschuh <[email protected]> |
power: supply: core: constify power_supply_battery_info::ocv_table
The power supply core never modifies the ocv table. Reflect this in the API, so drivers can mark their static tables as const.
Sig
power: supply: core: constify power_supply_battery_info::ocv_table
The power supply core never modifies the ocv table. Reflect this in the API, so drivers can mark their static tables as const.
Signed-off-by: Thomas Weißschuh <[email protected]> Reviewed-by: Linus Walleij <[email protected]> Link: https://lore.kernel.org/r/20241005-power-supply-battery-const-v1-5-c1f721927048@weissschuh.net Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
58797abe |
| 05-Oct-2024 |
Thomas Weißschuh <[email protected]> |
power: supply: core: constify power_supply_battery_info::resist_table
The power supply core never modifies the resist table. Reflect this in the API, so drivers can mark their static tables as const
power: supply: core: constify power_supply_battery_info::resist_table
The power supply core never modifies the resist table. Reflect this in the API, so drivers can mark their static tables as const.
Signed-off-by: Thomas Weißschuh <[email protected]> Reviewed-by: Linus Walleij <[email protected]> Link: https://lore.kernel.org/r/20241005-power-supply-battery-const-v1-1-c1f721927048@weissschuh.net Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
|
Revision tags: v6.12-rc1, v6.11, v6.11-rc7, v6.11-rc6 |
|
| #
364ea7cc |
| 31-Aug-2024 |
Hans de Goede <[email protected]> |
power: supply: Change usb_types from an array into a bitmask
The bit_types array just hold a list of valid enum power_supply_usb_type values which map to 0 - 9. This can easily be represented as a b
power: supply: Change usb_types from an array into a bitmask
The bit_types array just hold a list of valid enum power_supply_usb_type values which map to 0 - 9. This can easily be represented as a bitmap.
This reduces the size of struct power_supply_desc and further reduces the data section size by drivers no longer needing to store the array.
This also unifies how usb_types are handled with charge_behaviours, which allows power_supply_show_usb_type() to be removed.
Signed-off-by: Hans de Goede <[email protected]> Reviewed-by: Greg Kroah-Hartman <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
|
Revision tags: v6.11-rc5, v6.11-rc4, v6.11-rc3, v6.11-rc2, v6.11-rc1, v6.10, v6.10-rc7, v6.10-rc6, v6.10-rc5 |
|
| #
0b209ec8 |
| 23-Jun-2024 |
Christophe JAILLET <[email protected]> |
power: supply: samsung-sdi-battery: Constify struct power_supply_maintenance_charge_table
'struct power_supply_maintenance_charge_table' is not modified in this driver.
Constifying this structure m
power: supply: samsung-sdi-battery: Constify struct power_supply_maintenance_charge_table
'struct power_supply_maintenance_charge_table' is not modified in this driver.
Constifying this structure moves some data to a read-only section, so increase overall security.
In order to do it, some code also needs to be adjusted to this new const qualifier.
On a x86_64, with allmodconfig: Before: ====== $ size drivers/power/supply/samsung-sdi-battery.o text data bss dec hex filename 4055 4584 0 8639 21bf drivers/power/supply/samsung-sdi-battery.o
After: ===== $ size drivers/power/supply/samsung-sdi-battery.o text data bss dec hex filename 4087 4552 0 8639 21bf drivers/power/supply/samsung-sdi-battery.o
Signed-off-by: Christophe JAILLET <[email protected]> Link: https://lore.kernel.org/r/6caafd0ac2556a40405273b1a4badc508ea8e9b0.1719125040.git.christophe.jaillet@wanadoo.fr Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
5d55721d |
| 23-Jun-2024 |
Christophe JAILLET <[email protected]> |
power: supply: samsung-sdi-battery: Constify struct power_supply_vbat_ri_table
'struct power_supply_vbat_ri_table' are not modified in this driver.
Constifying these structures moves some data to a
power: supply: samsung-sdi-battery: Constify struct power_supply_vbat_ri_table
'struct power_supply_vbat_ri_table' are not modified in this driver.
Constifying these structures moves some data to a read-only section, so increase overall security.
In order to do it, some code also needs to be adjusted to this new const qualifier.
On a x86_64, with allmodconfig: Before: ====== $ size drivers/power/supply/samsung-sdi-battery.o text data bss dec hex filename 955 7664 0 8619 21ab drivers/power/supply/samsung-sdi-battery.o
After: ===== $ size drivers/power/supply/samsung-sdi-battery.o text data bss dec hex filename 4055 4584 0 8639 21bf drivers/power/supply/samsung-sdi-battery.o
Signed-off-by: Christophe JAILLET <[email protected]> Reviewed-by: Linus Walleij <[email protected]> Link: https://lore.kernel.org/r/d01818abd880bf435d1106a9a6cc11a7a8a3e661.1719125040.git.christophe.jaillet@wanadoo.fr Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
|
Revision tags: v6.10-rc4, v6.10-rc3, v6.10-rc2 |
|
| #
6c951a84 |
| 31-May-2024 |
Hans de Goede <[email protected]> |
power: supply: leds: Share trig pointer for online and charging_full
Either 5 different LED triggers are registered for battery power-supply devices or a single online LED trigger is used for non ba
power: supply: leds: Share trig pointer for online and charging_full
Either 5 different LED triggers are registered for battery power-supply devices or a single online LED trigger is used for non battery power-supply devices.
These 5 / 1 LED trigger(s) are never used at the same time. So there is no need for a separate LED trigger pointer for the online trigger. Rename the first battery trigger from charging_full_trig to just trig and use this for the online trigger too.
Signed-off-by: Hans de Goede <[email protected]> Reviewed-by: Andy Shevchenko <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
964a504b |
| 31-May-2024 |
Hans de Goede <[email protected]> |
power: supply: leds: Add power_supply_[un]register_led_trigger()
Add power_supply_[un]register_led_trigger() helper functions.
The primary goal of this is as a preparation patch for adding an activ
power: supply: leds: Add power_supply_[un]register_led_trigger()
Add power_supply_[un]register_led_trigger() helper functions.
The primary goal of this is as a preparation patch for adding an activate callback to the power-supply LED triggers to ensure that power-supply LEDs get the correct initial value when the LED gets registered after the power_supply has been registered (this will use the psy back pointer).
There also is quite a lot of code duplication in the existing LED trigger registration in the form of the kasprintf() for the name-template for each trigger + related error handling. This duplication is removed by these new helpers.
Signed-off-by: Hans de Goede <[email protected]> Reviewed-by: Andy Shevchenko <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
9af12f57 |
| 31-May-2024 |
Kate Hsuan <[email protected]> |
power: supply: power-supply-leds: Add charging_orange_full_green trigger for RGB LED
Add a charging_orange_full_green LED trigger and the trigger is based on led_mc_trigger_event() which can set an
power: supply: power-supply-leds: Add charging_orange_full_green trigger for RGB LED
Add a charging_orange_full_green LED trigger and the trigger is based on led_mc_trigger_event() which can set an RGB LED when the trigger is triggered. The LED will show orange when the battery status is charging. The LED will show green when the battery status is full.
Link: https://lore.kernel.org/linux-leds/[email protected]/ Signed-off-by: Kate Hsuan <[email protected]> Acked-by: Sebastian Reichel <[email protected]> Reviewed-by: Andy Shevchenko <[email protected]> [[email protected] change color order to RGB] Signed-off-by: Hans de Goede <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Lee Jones <[email protected]>
show more ...
|
|
Revision tags: v6.10-rc1, v6.9, v6.9-rc7, v6.9-rc6, v6.9-rc5, v6.9-rc4, v6.9-rc3, v6.9-rc2, v6.9-rc1, v6.8, v6.8-rc7 |
|
| #
4e61f1e9 |
| 03-Mar-2024 |
Thomas Weißschuh <[email protected]> |
power: supply: core: fix charge_behaviour formatting
This property is documented to have a special format which exposes all available behaviours and the currently active one at the same time. For th
power: supply: core: fix charge_behaviour formatting
This property is documented to have a special format which exposes all available behaviours and the currently active one at the same time. For this special format some helpers are provided.
When the charge_behaviour property was added in 1b0b6cc8030d ("power: supply: add charge_behaviour attributes"), it did not update the default logic in in power_supply_sysfs.c to use the format helpers. Thus by default only the currently active behaviour is printed. This fixes the default logic to follow the documented format.
There is currently only one in-tree drivers exposing charge behaviours - thinkpad_acpi, which is not affected by the change, as it directly uses the helpers and does not use the power_supply_sysfs.c logic.
Signed-off-by: Thomas Weißschuh <[email protected]> Link: https://lore.kernel.org/r/20240303-power_supply-charge_behaviour_prop-v2-3-8ebb0a7c2409@weissschuh.net Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
68ade097 |
| 01-Mar-2024 |
Sebastian Reichel <[email protected]> |
power: supply: core: add power_supply_for_each_device()
Introduce power_supply_for_each_device(), which is a wrapper for class_for_each_device() using the power_supply_class and going through all de
power: supply: core: add power_supply_for_each_device()
Introduce power_supply_for_each_device(), which is a wrapper for class_for_each_device() using the power_supply_class and going through all devices.
This allows making the power_supply_class itself a local variable, so that drivers cannot mess with it and simplifies the code slightly.
Reviewed-by: Ricardo B. Marliere <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|
| #
71c2cc5c |
| 01-Mar-2024 |
Ricardo B. Marliere <[email protected]> |
power: supply: core: make power_supply_class constant
Since commit 43a7206b0963 ("driver core: class: make class_register() take a const *"), the driver core allows for struct class to be in read-on
power: supply: core: make power_supply_class constant
Since commit 43a7206b0963 ("driver core: class: make class_register() take a const *"), the driver core allows for struct class to be in read-only memory, so move the power_supply_class structure to be declared at build time placing it into read-only memory, instead of having to be dynamically allocated at boot time.
Cc: Greg Kroah-Hartman <[email protected]> Suggested-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: Ricardo B. Marliere <[email protected]> Reviewed-by: Linus Walleij <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Sebastian Reichel <[email protected]>
show more ...
|