From 2dc9215d7c94f7f9f34ccf8b1710ad73d82f6216 Mon Sep 17 00:00:00 2001 From: Krzysztof Kozlowski Date: Thu, 12 Mar 2015 08:44:02 +0100 Subject: 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 Reviewed-by: Bartlomiej Zolnierkiewicz Acked-by: Pavel Machek [for the nvec part] Reviewed-by: Marc Dietrich [for drivers/platform/x86/compal-laptop.c] Reviewed-by: Darren Hart [for drivers/hid/*] Reviewed-by: Jiri Kosina Signed-off-by: Sebastian Reichel --- drivers/power/lp8788-charger.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'drivers/power/lp8788-charger.c') diff --git a/drivers/power/lp8788-charger.c b/drivers/power/lp8788-charger.c index 176dab2e4c16..8e4d228519c1 100644 --- a/drivers/power/lp8788-charger.c +++ b/drivers/power/lp8788-charger.c @@ -400,15 +400,18 @@ static int lp8788_update_charger_params(struct platform_device *pdev, static int lp8788_psy_register(struct platform_device *pdev, struct lp8788_charger *pchg) { + struct power_supply_config charger_cfg = {}; + pchg->charger.name = LP8788_CHARGER_NAME; pchg->charger.type = POWER_SUPPLY_TYPE_MAINS; pchg->charger.properties = lp8788_charger_prop; pchg->charger.num_properties = ARRAY_SIZE(lp8788_charger_prop); pchg->charger.get_property = lp8788_charger_get_property; - pchg->charger.supplied_to = battery_supplied_to; - pchg->charger.num_supplicants = ARRAY_SIZE(battery_supplied_to); - if (power_supply_register(&pdev->dev, &pchg->charger)) + charger_cfg.supplied_to = battery_supplied_to; + charger_cfg.num_supplicants = ARRAY_SIZE(battery_supplied_to); + + if (power_supply_register(&pdev->dev, &pchg->charger, &charger_cfg)) return -EPERM; pchg->battery.name = LP8788_BATTERY_NAME; @@ -417,7 +420,7 @@ static int lp8788_psy_register(struct platform_device *pdev, pchg->battery.num_properties = ARRAY_SIZE(lp8788_battery_prop); pchg->battery.get_property = lp8788_battery_get_property; - if (power_supply_register(&pdev->dev, &pchg->battery)) { + if (power_supply_register(&pdev->dev, &pchg->battery, NULL)) { power_supply_unregister(&pchg->charger); return -EPERM; } -- cgit v1.2.3