2021-09-28 02:10:54

by Tang Bin

[permalink] [raw]
Subject: [PATCH v2] power: supply: cpcap-battery: use device_get_match_data() to simplify code

In the function cpcap_battery_probe(), the driver only needs the
data object, so use device_get_match_data() instead, to make the
code cleaner.

Signed-off-by: Tang Bin <[email protected]>
---
Changes from v1
- change the title and commit message.
- change the code to use other api to make code simple.
---
drivers/power/supply/cpcap-battery.c | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/drivers/power/supply/cpcap-battery.c b/drivers/power/supply/cpcap-battery.c
index 8d62d4241..18e3ff0e1 100644
--- a/drivers/power/supply/cpcap-battery.c
+++ b/drivers/power/supply/cpcap-battery.c
@@ -1026,20 +1026,13 @@ static const struct power_supply_desc cpcap_charger_battery_desc = {
static int cpcap_battery_probe(struct platform_device *pdev)
{
struct cpcap_battery_ddata *ddata;
- const struct of_device_id *match;
struct power_supply_config psy_cfg = {};
int error;
+ const struct cpcap_battery_config *cfg;

- match = of_match_device(of_match_ptr(cpcap_battery_id_table),
- &pdev->dev);
- if (!match)
- return -EINVAL;
-
- if (!match->data) {
- dev_err(&pdev->dev, "no configuration data found\n");
-
+ cfg = device_get_match_data(&pdev->dev);
+ if (!cfg)
return -ENODEV;
- }

ddata = devm_kzalloc(&pdev->dev, sizeof(*ddata), GFP_KERNEL);
if (!ddata)
@@ -1047,7 +1040,7 @@ static int cpcap_battery_probe(struct platform_device *pdev)

INIT_LIST_HEAD(&ddata->irq_list);
ddata->dev = &pdev->dev;
- memcpy(&ddata->config, match->data, sizeof(ddata->config));
+ memcpy(&ddata->config, cfg, sizeof(ddata->config));

ddata->reg = dev_get_regmap(ddata->dev->parent, NULL);
if (!ddata->reg)
--
2.20.1.windows.1




2021-10-02 16:10:31

by Sebastian Reichel

[permalink] [raw]
Subject: Re: [PATCH v2] power: supply: cpcap-battery: use device_get_match_data() to simplify code

Hi,

On Tue, Sep 28, 2021 at 10:06:23AM +0800, Tang Bin wrote:
> In the function cpcap_battery_probe(), the driver only needs the
> data object, so use device_get_match_data() instead, to make the
> code cleaner.
>
> Signed-off-by: Tang Bin <[email protected]>
> ---

Thanks, queued.

-- Sebastian

> Changes from v1
> - change the title and commit message.
> - change the code to use other api to make code simple.
> ---
> drivers/power/supply/cpcap-battery.c | 15 ++++-----------
> 1 file changed, 4 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/power/supply/cpcap-battery.c b/drivers/power/supply/cpcap-battery.c
> index 8d62d4241..18e3ff0e1 100644
> --- a/drivers/power/supply/cpcap-battery.c
> +++ b/drivers/power/supply/cpcap-battery.c
> @@ -1026,20 +1026,13 @@ static const struct power_supply_desc cpcap_charger_battery_desc = {
> static int cpcap_battery_probe(struct platform_device *pdev)
> {
> struct cpcap_battery_ddata *ddata;
> - const struct of_device_id *match;
> struct power_supply_config psy_cfg = {};
> int error;
> + const struct cpcap_battery_config *cfg;
>
> - match = of_match_device(of_match_ptr(cpcap_battery_id_table),
> - &pdev->dev);
> - if (!match)
> - return -EINVAL;
> -
> - if (!match->data) {
> - dev_err(&pdev->dev, "no configuration data found\n");
> -
> + cfg = device_get_match_data(&pdev->dev);
> + if (!cfg)
> return -ENODEV;
> - }
>
> ddata = devm_kzalloc(&pdev->dev, sizeof(*ddata), GFP_KERNEL);
> if (!ddata)
> @@ -1047,7 +1040,7 @@ static int cpcap_battery_probe(struct platform_device *pdev)
>
> INIT_LIST_HEAD(&ddata->irq_list);
> ddata->dev = &pdev->dev;
> - memcpy(&ddata->config, match->data, sizeof(ddata->config));
> + memcpy(&ddata->config, cfg, sizeof(ddata->config));
>
> ddata->reg = dev_get_regmap(ddata->dev->parent, NULL);
> if (!ddata->reg)
> --
> 2.20.1.windows.1
>
>
>


Attachments:
(No filename) (1.92 kB)
signature.asc (849.00 B)
Download all attachments