power: supply: rt5033_charger: Simplify initialization of rt5033_charger_data
authorJakob Hauser <jahau@rocketmail.com>
Sun, 1 Oct 2023 13:17:43 +0000 (15:17 +0200)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Wed, 4 Oct 2023 20:27:34 +0000 (22:27 +0200)
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>
drivers/power/supply/rt5033_charger.c

index 091ca4a21f29699ca96963a4d0716ce240d4b0d4..b34ef0ea6f8a9d5448c8fee85d3f76f259b983b0 100644 (file)
@@ -29,7 +29,7 @@ struct rt5033_charger {
        struct device                   *dev;
        struct regmap                   *regmap;
        struct power_supply             *psy;
-       struct rt5033_charger_data      *chg;
+       struct rt5033_charger_data      chg;
        struct extcon_dev               *edev;
        struct notifier_block           extcon_nb;
        struct work_struct              extcon_work;
@@ -131,7 +131,7 @@ static int rt5033_get_charger_const_voltage(struct rt5033_charger *charger)
 
 static inline int rt5033_init_const_charge(struct rt5033_charger *charger)
 {
-       struct rt5033_charger_data *chg = charger->chg;
+       struct rt5033_charger_data *chg = &charger->chg;
        int ret;
        unsigned int val;
        u8 reg_data;
@@ -205,7 +205,7 @@ static inline int rt5033_init_const_charge(struct rt5033_charger *charger)
 
 static inline int rt5033_init_fast_charge(struct rt5033_charger *charger)
 {
-       struct rt5033_charger_data *chg = charger->chg;
+       struct rt5033_charger_data *chg = &charger->chg;
        int ret;
        unsigned int val;
        u8 reg_data;
@@ -250,7 +250,7 @@ static inline int rt5033_init_fast_charge(struct rt5033_charger *charger)
 
 static inline int rt5033_init_pre_charge(struct rt5033_charger *charger)
 {
-       struct rt5033_charger_data *chg = charger->chg;
+       struct rt5033_charger_data *chg = &charger->chg;
        int ret;
        unsigned int val;
        u8 reg_data;
@@ -550,21 +550,16 @@ static int rt5033_charger_get_property(struct power_supply *psy,
        return 0;
 }
 
-static struct rt5033_charger_data *rt5033_charger_dt_init(
-                                               struct rt5033_charger *charger)
+static int rt5033_charger_dt_init(struct rt5033_charger *charger)
 {
-       struct rt5033_charger_data *chg;
+       struct rt5033_charger_data *chg = &charger->chg;
        struct power_supply_battery_info *info;
        int ret;
 
-       chg = devm_kzalloc(charger->dev, sizeof(*chg), GFP_KERNEL);
-       if (!chg)
-               return ERR_PTR(-ENOMEM);
-
        ret = power_supply_get_battery_info(charger->psy, &info);
        if (ret)
-               return ERR_PTR(dev_err_probe(charger->dev, -EINVAL,
-                              "missing battery info\n"));
+               return dev_err_probe(charger->dev, -EINVAL,
+                                    "missing battery info\n");
 
        /* Assign data. Validity will be checked in the init functions. */
        chg->pre_uamp = info->precharge_current_ua;
@@ -573,7 +568,7 @@ static struct rt5033_charger_data *rt5033_charger_dt_init(
        chg->pre_uvolt = info->precharge_voltage_max_uv;
        chg->const_uvolt = info->constant_charge_voltage_max_uv;
 
-       return chg;
+       return 0;
 }
 
 static void rt5033_charger_extcon_work(struct work_struct *work)
@@ -690,9 +685,9 @@ static int rt5033_charger_probe(struct platform_device *pdev)
                return dev_err_probe(&pdev->dev, PTR_ERR(charger->psy),
                                     "Failed to register power supply\n");
 
-       charger->chg = rt5033_charger_dt_init(charger);
-       if (IS_ERR_OR_NULL(charger->chg))
-               return PTR_ERR(charger->chg);
+       ret = rt5033_charger_dt_init(charger);
+       if (ret)
+               return ret;
 
        ret = rt5033_charger_reg_init(charger);
        if (ret)