Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

power: supply: rt5033_charger: Simplify initialization of rt5033_charger_data

Currently the struct "rt5033_charger_data" is initialized rather complicated.
The cause lies inside of the struct "rt5033_charger", where struct
"rt5033_charger_data" is implemented as a pointer *chg.

Therefore, inside of struct "rt5033_charger" change the struct
"rt5033_charger_data" to non-pointer "chg". It is then initialized right
away and can be accessed more easily.

Signed-off-by: Jakob Hauser <jahau@rocketmail.com>
Link: https://lore.kernel.org/r/0aff8c2a18cf4b88ec3333f6679a8419dd76ca29.1696165240.git.jahau@rocketmail.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>

authored by

Jakob Hauser and committed by
Sebastian Reichel
1c6877f1 8242336d

+12 -17
+12 -17
drivers/power/supply/rt5033_charger.c
··· 29 29 struct device *dev; 30 30 struct regmap *regmap; 31 31 struct power_supply *psy; 32 - struct rt5033_charger_data *chg; 32 + struct rt5033_charger_data chg; 33 33 struct extcon_dev *edev; 34 34 struct notifier_block extcon_nb; 35 35 struct work_struct extcon_work; ··· 131 131 132 132 static inline int rt5033_init_const_charge(struct rt5033_charger *charger) 133 133 { 134 - struct rt5033_charger_data *chg = charger->chg; 134 + struct rt5033_charger_data *chg = &charger->chg; 135 135 int ret; 136 136 unsigned int val; 137 137 u8 reg_data; ··· 205 205 206 206 static inline int rt5033_init_fast_charge(struct rt5033_charger *charger) 207 207 { 208 - struct rt5033_charger_data *chg = charger->chg; 208 + struct rt5033_charger_data *chg = &charger->chg; 209 209 int ret; 210 210 unsigned int val; 211 211 u8 reg_data; ··· 250 250 251 251 static inline int rt5033_init_pre_charge(struct rt5033_charger *charger) 252 252 { 253 - struct rt5033_charger_data *chg = charger->chg; 253 + struct rt5033_charger_data *chg = &charger->chg; 254 254 int ret; 255 255 unsigned int val; 256 256 u8 reg_data; ··· 550 550 return 0; 551 551 } 552 552 553 - static struct rt5033_charger_data *rt5033_charger_dt_init( 554 - struct rt5033_charger *charger) 553 + static int rt5033_charger_dt_init(struct rt5033_charger *charger) 555 554 { 556 - struct rt5033_charger_data *chg; 555 + struct rt5033_charger_data *chg = &charger->chg; 557 556 struct power_supply_battery_info *info; 558 557 int ret; 559 558 560 - chg = devm_kzalloc(charger->dev, sizeof(*chg), GFP_KERNEL); 561 - if (!chg) 562 - return ERR_PTR(-ENOMEM); 563 - 564 559 ret = power_supply_get_battery_info(charger->psy, &info); 565 560 if (ret) 566 - return ERR_PTR(dev_err_probe(charger->dev, -EINVAL, 567 - "missing battery info\n")); 561 + return dev_err_probe(charger->dev, -EINVAL, 562 + "missing battery info\n"); 568 563 569 564 /* Assign data. Validity will be checked in the init functions. */ 570 565 chg->pre_uamp = info->precharge_current_ua; ··· 568 573 chg->pre_uvolt = info->precharge_voltage_max_uv; 569 574 chg->const_uvolt = info->constant_charge_voltage_max_uv; 570 575 571 - return chg; 576 + return 0; 572 577 } 573 578 574 579 static void rt5033_charger_extcon_work(struct work_struct *work) ··· 685 690 return dev_err_probe(&pdev->dev, PTR_ERR(charger->psy), 686 691 "Failed to register power supply\n"); 687 692 688 - charger->chg = rt5033_charger_dt_init(charger); 689 - if (IS_ERR_OR_NULL(charger->chg)) 690 - return PTR_ERR(charger->chg); 693 + ret = rt5033_charger_dt_init(charger); 694 + if (ret) 695 + return ret; 691 696 692 697 ret = rt5033_charger_reg_init(charger); 693 698 if (ret)