Message ID | 20210928020623.21192-1-tangbin@cmss.chinamobile.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | [v2] power: supply: cpcap-battery: use device_get_match_data() to simplify code | expand |
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 <tangbin@cmss.chinamobile.com> > --- 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 > > >
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)
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 <tangbin@cmss.chinamobile.com> --- 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(-)