power_supply: Move run-time configuration to separate structure

Add new structure 'power_supply_config' for holding run-time
initialization data like of_node, supplies and private driver data.

The power_supply_register() function is changed so all power supply
drivers need updating.

When registering the power supply this new 'power_supply_config' should be
used instead of directly initializing 'struct power_supply'. This allows
changing the ownership of power_supply structure from driver to the
power supply core in next patches.

When a driver does not use of_node or supplies then it should use NULL
as config. If driver uses of_node or supplies then it should allocate
config on stack and initialize it with proper values.

Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Bartlomiej Zolnierkiewicz <[email protected]>
Acked-by: Pavel Machek <[email protected]>

[for the nvec part]
Reviewed-by: Marc Dietrich <[email protected]>

[for drivers/platform/x86/compal-laptop.c]
Reviewed-by: Darren Hart <[email protected]>

[for drivers/hid/*]
Reviewed-by: Jiri Kosina <[email protected]>

Signed-off-by: Sebastian Reichel <[email protected]>
This commit is contained in:
Krzysztof Kozlowski 2015-03-12 08:44:02 +01:00 • committed by Sebastian Reichel
commit 2dc9215d7c
69 changed files with 224 additions and 167 deletions

View file

@ -439,7 +439,7 @@ static bool hidinput_setup_battery(struct hid_device *dev, unsigned report_type,
dev->battery_report_type = report_type;
dev->battery_report_id = field->report->id;
ret = power_supply_register(&dev->dev, battery);
ret = power_supply_register(&dev->dev, battery, NULL);
if (ret != 0) {
hid_warn(dev, "can't register power supply: %d\n", ret);
kfree(battery->name);

View file

@ -1718,7 +1718,7 @@ static int sony_battery_probe(struct sony_sc *sc)
if (!sc->battery.name)
return -ENOMEM;
ret = power_supply_register(&hdev->dev, &sc->battery);
ret = power_supply_register(&hdev->dev, &sc->battery, NULL);
if (ret) {
hid_err(hdev, "Unable to register battery device\n");
goto err_free;

View file

@ -250,7 +250,7 @@ static int wiimod_battery_probe(const struct wiimod_ops *ops,
if (!wdata->battery.name)
return -ENOMEM;
ret = power_supply_register(&wdata->hdev->dev, &wdata->battery);
ret = power_supply_register(&wdata->hdev->dev, &wdata->battery, NULL);
if (ret) {
hid_err(wdata->hdev, "cannot register battery device\n");
goto err_free;

View file

@ -1021,13 +1021,14 @@ static int wacom_initialize_battery(struct wacom *wacom)
wacom->ac.use_for_apm = 0;
error = power_supply_register(&wacom->hdev->dev,
&wacom->battery);
&wacom->battery, NULL);
if (error)
return error;
power_supply_powers(&wacom->battery, &wacom->hdev->dev);
error = power_supply_register(&wacom->hdev->dev, &wacom->ac);
error = power_supply_register(&wacom->hdev->dev, &wacom->ac,
NULL);
if (error) {
power_supply_unregister(&wacom->battery);
return error;