* [PATCH 1/2] power: supply: rt5033_charger: Simplify initialization of rt5033_charger_data
2023-06-16 21:10 ` [PATCH 0/2] Clean-up RT5033 charger "rt5033_charger_data" and probe "&pdev->dev" Jakob Hauser
@ 2023-06-16 21:10 ` Jakob Hauser
2023-06-16 21:10 ` [PATCH 2/2] power: supply: rt5033_charger: Replace "&pdev->dev" by "charger->dev" in probe Jakob Hauser
1 sibling, 0 replies; 3+ messages in thread
From: Jakob Hauser @ 2023-06-16 21:10 UTC (permalink / raw)
To: Sebastian Reichel
Cc: Lee Jones, Christophe Jaillet, Stephan Gerhold, Raymond Hackley,
Henrik Grimler, linux-pm, linux-kernel, phone-devel,
~postmarketos/upstreaming, Jakob Hauser
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>
---
drivers/power/supply/rt5033_charger.c | 29 +++++++++++----------------
1 file changed, 12 insertions(+), 17 deletions(-)
diff --git a/drivers/power/supply/rt5033_charger.c b/drivers/power/supply/rt5033_charger.c
index e0303ca5a8db..361a36c2a195 100644
--- a/drivers/power/supply/rt5033_charger.c
+++ b/drivers/power/supply/rt5033_charger.c
@@ -28,7 +28,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;
@@ -130,7 +130,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;
@@ -204,7 +204,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;
@@ -249,7 +249,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;
@@ -539,21 +539,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;
@@ -562,7 +557,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)
@@ -679,9 +674,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)
--
2.39.2
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH 2/2] power: supply: rt5033_charger: Replace "&pdev->dev" by "charger->dev" in probe
2023-06-16 21:10 ` [PATCH 0/2] Clean-up RT5033 charger "rt5033_charger_data" and probe "&pdev->dev" Jakob Hauser
2023-06-16 21:10 ` [PATCH 1/2] power: supply: rt5033_charger: Simplify initialization of rt5033_charger_data Jakob Hauser
@ 2023-06-16 21:10 ` Jakob Hauser
1 sibling, 0 replies; 3+ messages in thread
From: Jakob Hauser @ 2023-06-16 21:10 UTC (permalink / raw)
To: Sebastian Reichel
Cc: Lee Jones, Christophe Jaillet, Stephan Gerhold, Raymond Hackley,
Henrik Grimler, linux-pm, linux-kernel, phone-devel,
~postmarketos/upstreaming, Jakob Hauser
At the beginning of the probe function, "charger->dev" is set equal to
"&pdev->dev". Therefore it's more clear to subsequently use "charger->dev"
instead of "&pdev->dev".
Signed-off-by: Jakob Hauser <jahau@rocketmail.com>
---
drivers/power/supply/rt5033_charger.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/power/supply/rt5033_charger.c b/drivers/power/supply/rt5033_charger.c
index 361a36c2a195..71a237cd1d61 100644
--- a/drivers/power/supply/rt5033_charger.c
+++ b/drivers/power/supply/rt5033_charger.c
@@ -667,11 +667,11 @@ static int rt5033_charger_probe(struct platform_device *pdev)
psy_cfg.of_node = pdev->dev.of_node;
psy_cfg.drv_data = charger;
- charger->psy = devm_power_supply_register(&pdev->dev,
+ charger->psy = devm_power_supply_register(charger->dev,
&rt5033_charger_desc,
&psy_cfg);
if (IS_ERR(charger->psy))
- return dev_err_probe(&pdev->dev, PTR_ERR(charger->psy),
+ return dev_err_probe(charger->dev, PTR_ERR(charger->psy),
"Failed to register power supply\n");
ret = rt5033_charger_dt_init(charger);
@@ -690,22 +690,22 @@ static int rt5033_charger_probe(struct platform_device *pdev)
np_edev = of_get_parent(np_conn);
charger->edev = extcon_find_edev_by_node(np_edev);
if (IS_ERR(charger->edev)) {
- dev_warn(&pdev->dev, "no extcon device found in device-tree\n");
+ dev_warn(charger->dev, "no extcon device found in device-tree\n");
goto out;
}
- ret = devm_work_autocancel(&pdev->dev, &charger->extcon_work,
+ ret = devm_work_autocancel(charger->dev, &charger->extcon_work,
rt5033_charger_extcon_work);
if (ret) {
- dev_err(&pdev->dev, "failed to initialize extcon work\n");
+ dev_err(charger->dev, "failed to initialize extcon work\n");
return ret;
}
charger->extcon_nb.notifier_call = rt5033_charger_extcon_notifier;
- ret = devm_extcon_register_notifier_all(&pdev->dev, charger->edev,
+ ret = devm_extcon_register_notifier_all(charger->dev, charger->edev,
&charger->extcon_nb);
if (ret) {
- dev_err(&pdev->dev, "failed to register extcon notifier\n");
+ dev_err(charger->dev, "failed to register extcon notifier\n");
return ret;
}
out:
--
2.39.2
^ permalink raw reply related [flat|nested] 3+ messages in thread