aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergiy Kibrik <sakib@darkstar.site>2018-03-21 16:10:49 -0400
committerSebastian Reichel <sebastian.reichel@collabora.co.uk>2018-04-25 18:12:11 -0400
commit2490640b2764ee570eef83528a8fd888f3b6103c (patch)
treecc6b4306df79cfe13049e96641810003405ebaf9
parent111242d6e1aa0cbdf1dd91fff6f210ae0d4d01bc (diff)
power: supply: s3c-adc-battery: fix driver data initialization
For power_supply_get_drvdata() routine to work correctly the driver data has to be provided when registering power supply, otherwise driver gives up immediately with these errors: power_supply main-battery: no battery infos ?! power_supply main-battery: driver failed to report `status' property: -22 Signed-off-by: Sergiy Kibrik <sakib@darkstar.site> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
-rw-r--r--drivers/power/supply/s3c_adc_battery.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/power/supply/s3c_adc_battery.c b/drivers/power/supply/s3c_adc_battery.c
index 0ffe5cd3abf6..3d00b35cafc9 100644
--- a/drivers/power/supply/s3c_adc_battery.c
+++ b/drivers/power/supply/s3c_adc_battery.c
@@ -293,6 +293,7 @@ static int s3c_adc_bat_probe(struct platform_device *pdev)
293{ 293{
294 struct s3c_adc_client *client; 294 struct s3c_adc_client *client;
295 struct s3c_adc_bat_pdata *pdata = pdev->dev.platform_data; 295 struct s3c_adc_bat_pdata *pdata = pdev->dev.platform_data;
296 struct power_supply_config psy_cfg = {};
296 int ret; 297 int ret;
297 298
298 client = s3c_adc_register(pdev, NULL, NULL, 0); 299 client = s3c_adc_register(pdev, NULL, NULL, 0);
@@ -309,14 +310,15 @@ static int s3c_adc_bat_probe(struct platform_device *pdev)
309 main_bat.cur_value = -1; 310 main_bat.cur_value = -1;
310 main_bat.cable_plugged = 0; 311 main_bat.cable_plugged = 0;
311 main_bat.status = POWER_SUPPLY_STATUS_DISCHARGING; 312 main_bat.status = POWER_SUPPLY_STATUS_DISCHARGING;
313 psy_cfg.drv_data = &main_bat;
312 314
313 main_bat.psy = power_supply_register(&pdev->dev, &main_bat_desc, NULL); 315 main_bat.psy = power_supply_register(&pdev->dev, &main_bat_desc, &psy_cfg);
314 if (IS_ERR(main_bat.psy)) { 316 if (IS_ERR(main_bat.psy)) {
315 ret = PTR_ERR(main_bat.psy); 317 ret = PTR_ERR(main_bat.psy);
316 goto err_reg_main; 318 goto err_reg_main;
317 } 319 }
318 if (pdata->backup_volt_mult) { 320 if (pdata->backup_volt_mult) {
319 const struct power_supply_config psy_cfg 321 const struct power_supply_config backup_psy_cfg
320 = { .drv_data = &backup_bat, }; 322 = { .drv_data = &backup_bat, };
321 323
322 backup_bat.client = client; 324 backup_bat.client = client;
@@ -324,7 +326,7 @@ static int s3c_adc_bat_probe(struct platform_device *pdev)
324 backup_bat.volt_value = -1; 326 backup_bat.volt_value = -1;
325 backup_bat.psy = power_supply_register(&pdev->dev, 327 backup_bat.psy = power_supply_register(&pdev->dev,
326 &backup_bat_desc, 328 &backup_bat_desc,
327 &psy_cfg); 329 &backup_psy_cfg);
328 if (IS_ERR(backup_bat.psy)) { 330 if (IS_ERR(backup_bat.psy)) {
329 ret = PTR_ERR(backup_bat.psy); 331 ret = PTR_ERR(backup_bat.psy);
330 goto err_reg_backup; 332 goto err_reg_backup;