You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
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 <k.kozlowski@samsung.com> Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Acked-by: Pavel Machek <pavel@ucw.cz> [for the nvec part] Reviewed-by: Marc Dietrich <marvin24@gmx.de> [for drivers/platform/x86/compal-laptop.c] Reviewed-by: Darren Hart <dvhart@linux.intel.com> [for drivers/hid/*] Reviewed-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Sebastian Reichel <sre@kernel.org>
This commit is contained in:
committed by
Sebastian Reichel
parent
e44ea36439
commit
2dc9215d7c
@@ -482,6 +482,7 @@ max8925_power_dt_init(struct platform_device *pdev)
|
||||
static int max8925_power_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct max8925_chip *chip = dev_get_drvdata(pdev->dev.parent);
|
||||
struct power_supply_config psy_cfg = {}; /* Only for ac and usb */
|
||||
struct max8925_power_pdata *pdata = NULL;
|
||||
struct max8925_power_info *info;
|
||||
int ret;
|
||||
@@ -502,14 +503,15 @@ static int max8925_power_probe(struct platform_device *pdev)
|
||||
info->adc = chip->adc;
|
||||
platform_set_drvdata(pdev, info);
|
||||
|
||||
psy_cfg.supplied_to = pdata->supplied_to;
|
||||
psy_cfg.num_supplicants = pdata->num_supplicants;
|
||||
|
||||
info->ac.name = "max8925-ac";
|
||||
info->ac.type = POWER_SUPPLY_TYPE_MAINS;
|
||||
info->ac.properties = max8925_ac_props;
|
||||
info->ac.num_properties = ARRAY_SIZE(max8925_ac_props);
|
||||
info->ac.get_property = max8925_ac_get_prop;
|
||||
info->ac.supplied_to = pdata->supplied_to;
|
||||
info->ac.num_supplicants = pdata->num_supplicants;
|
||||
ret = power_supply_register(&pdev->dev, &info->ac);
|
||||
ret = power_supply_register(&pdev->dev, &info->ac, &psy_cfg);
|
||||
if (ret)
|
||||
goto out;
|
||||
info->ac.dev->parent = &pdev->dev;
|
||||
@@ -519,10 +521,8 @@ static int max8925_power_probe(struct platform_device *pdev)
|
||||
info->usb.properties = max8925_usb_props;
|
||||
info->usb.num_properties = ARRAY_SIZE(max8925_usb_props);
|
||||
info->usb.get_property = max8925_usb_get_prop;
|
||||
info->usb.supplied_to = pdata->supplied_to;
|
||||
info->usb.num_supplicants = pdata->num_supplicants;
|
||||
|
||||
ret = power_supply_register(&pdev->dev, &info->usb);
|
||||
ret = power_supply_register(&pdev->dev, &info->usb, &psy_cfg);
|
||||
if (ret)
|
||||
goto out_usb;
|
||||
info->usb.dev->parent = &pdev->dev;
|
||||
@@ -532,7 +532,7 @@ static int max8925_power_probe(struct platform_device *pdev)
|
||||
info->battery.properties = max8925_battery_props;
|
||||
info->battery.num_properties = ARRAY_SIZE(max8925_battery_props);
|
||||
info->battery.get_property = max8925_bat_get_prop;
|
||||
ret = power_supply_register(&pdev->dev, &info->battery);
|
||||
ret = power_supply_register(&pdev->dev, &info->battery, NULL);
|
||||
if (ret)
|
||||
goto out_battery;
|
||||
info->battery.dev->parent = &pdev->dev;
|
||||
|
||||
Reference in New Issue
Block a user