Skip to content

Commit 1c6877f

Browse files
Jakko3sre
authored andcommitted
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>
1 parent 8242336 commit 1c6877f

1 file changed

Lines changed: 12 additions & 17 deletions

File tree

drivers/power/supply/rt5033_charger.c

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ struct rt5033_charger {
2929
struct device *dev;
3030
struct regmap *regmap;
3131
struct power_supply *psy;
32-
struct rt5033_charger_data *chg;
32+
struct rt5033_charger_data chg;
3333
struct extcon_dev *edev;
3434
struct notifier_block extcon_nb;
3535
struct work_struct extcon_work;
@@ -131,7 +131,7 @@ static int rt5033_get_charger_const_voltage(struct rt5033_charger *charger)
131131

132132
static inline int rt5033_init_const_charge(struct rt5033_charger *charger)
133133
{
134-
struct rt5033_charger_data *chg = charger->chg;
134+
struct rt5033_charger_data *chg = &charger->chg;
135135
int ret;
136136
unsigned int val;
137137
u8 reg_data;
@@ -205,7 +205,7 @@ static inline int rt5033_init_const_charge(struct rt5033_charger *charger)
205205

206206
static inline int rt5033_init_fast_charge(struct rt5033_charger *charger)
207207
{
208-
struct rt5033_charger_data *chg = charger->chg;
208+
struct rt5033_charger_data *chg = &charger->chg;
209209
int ret;
210210
unsigned int val;
211211
u8 reg_data;
@@ -250,7 +250,7 @@ static inline int rt5033_init_fast_charge(struct rt5033_charger *charger)
250250

251251
static inline int rt5033_init_pre_charge(struct rt5033_charger *charger)
252252
{
253-
struct rt5033_charger_data *chg = charger->chg;
253+
struct rt5033_charger_data *chg = &charger->chg;
254254
int ret;
255255
unsigned int val;
256256
u8 reg_data;
@@ -550,21 +550,16 @@ static int rt5033_charger_get_property(struct power_supply *psy,
550550
return 0;
551551
}
552552

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)
555554
{
556-
struct rt5033_charger_data *chg;
555+
struct rt5033_charger_data *chg = &charger->chg;
557556
struct power_supply_battery_info *info;
558557
int ret;
559558

560-
chg = devm_kzalloc(charger->dev, sizeof(*chg), GFP_KERNEL);
561-
if (!chg)
562-
return ERR_PTR(-ENOMEM);
563-
564559
ret = power_supply_get_battery_info(charger->psy, &info);
565560
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");
568563

569564
/* Assign data. Validity will be checked in the init functions. */
570565
chg->pre_uamp = info->precharge_current_ua;
@@ -573,7 +568,7 @@ static struct rt5033_charger_data *rt5033_charger_dt_init(
573568
chg->pre_uvolt = info->precharge_voltage_max_uv;
574569
chg->const_uvolt = info->constant_charge_voltage_max_uv;
575570

576-
return chg;
571+
return 0;
577572
}
578573

579574
static void rt5033_charger_extcon_work(struct work_struct *work)
@@ -690,9 +685,9 @@ static int rt5033_charger_probe(struct platform_device *pdev)
690685
return dev_err_probe(&pdev->dev, PTR_ERR(charger->psy),
691686
"Failed to register power supply\n");
692687

693-
charger->chg = rt5033_charger_dt_init(charger);
694-
if (IS_ERR_OR_NULL(charger->chg))
695-
return PTR_ERR(charger->chg);
688+
ret = rt5033_charger_dt_init(charger);
689+
if (ret)
690+
return ret;
696691

697692
ret = rt5033_charger_reg_init(charger);
698693
if (ret)

0 commit comments

Comments
 (0)