Skip to content

Commit 2677d53

Browse files
MrVanlinusw
authored andcommitted
pinctrl: equilibrium: Use scope based of_node_put() cleanups
Use scope based of_node_put() cleanup to simplify code. Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Link: https://lore.kernel.org/20240627131721.678727-3-peng.fan@oss.nxp.com Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
1 parent 791a8bb commit 2677d53

File tree

1 file changed

+5
-16
lines changed

1 file changed

+5
-16
lines changed

drivers/pinctrl/pinctrl-equilibrium.c

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -588,15 +588,14 @@ static int funcs_utils(struct device *dev, struct pinfunction *funcs,
588588
unsigned int *nr_funcs, funcs_util_ops op)
589589
{
590590
struct device_node *node = dev->of_node;
591-
struct device_node *np;
592591
struct property *prop;
593592
const char *fn_name;
594593
const char **groups;
595594
unsigned int fid;
596595
int i, j;
597596

598597
i = 0;
599-
for_each_child_of_node(node, np) {
598+
for_each_child_of_node_scoped(node, np) {
600599
prop = of_find_property(np, "groups", NULL);
601600
if (!prop)
602601
continue;
@@ -635,7 +634,6 @@ static int funcs_utils(struct device *dev, struct pinfunction *funcs,
635634
break;
636635

637636
default:
638-
of_node_put(np);
639637
return -EINVAL;
640638
}
641639
i++;
@@ -708,54 +706,46 @@ static int eqbr_build_groups(struct eqbr_pinctrl_drv_data *drvdata)
708706
struct device_node *node = dev->of_node;
709707
unsigned int *pins, *pinmux, pin_id, pinmux_id;
710708
struct pingroup group, *grp = &group;
711-
struct device_node *np;
712709
struct property *prop;
713710
int j, err;
714711

715-
for_each_child_of_node(node, np) {
712+
for_each_child_of_node_scoped(node, np) {
716713
prop = of_find_property(np, "groups", NULL);
717714
if (!prop)
718715
continue;
719716

720717
err = of_property_count_u32_elems(np, "pins");
721718
if (err < 0) {
722719
dev_err(dev, "No pins in the group: %s\n", prop->name);
723-
of_node_put(np);
724720
return err;
725721
}
726722
grp->npins = err;
727723
grp->name = prop->value;
728724
pins = devm_kcalloc(dev, grp->npins, sizeof(*pins), GFP_KERNEL);
729-
if (!pins) {
730-
of_node_put(np);
725+
if (!pins)
731726
return -ENOMEM;
732-
}
727+
733728
grp->pins = pins;
734729

735730
pinmux = devm_kcalloc(dev, grp->npins, sizeof(*pinmux), GFP_KERNEL);
736-
if (!pinmux) {
737-
of_node_put(np);
731+
if (!pinmux)
738732
return -ENOMEM;
739-
}
740733

741734
for (j = 0; j < grp->npins; j++) {
742735
if (of_property_read_u32_index(np, "pins", j, &pin_id)) {
743736
dev_err(dev, "Group %s: Read intel pins id failed\n",
744737
grp->name);
745-
of_node_put(np);
746738
return -EINVAL;
747739
}
748740
if (pin_id >= drvdata->pctl_desc.npins) {
749741
dev_err(dev, "Group %s: Invalid pin ID, idx: %d, pin %u\n",
750742
grp->name, j, pin_id);
751-
of_node_put(np);
752743
return -EINVAL;
753744
}
754745
pins[j] = pin_id;
755746
if (of_property_read_u32_index(np, "pinmux", j, &pinmux_id)) {
756747
dev_err(dev, "Group %s: Read intel pinmux id failed\n",
757748
grp->name);
758-
of_node_put(np);
759749
return -EINVAL;
760750
}
761751
pinmux[j] = pinmux_id;
@@ -766,7 +756,6 @@ static int eqbr_build_groups(struct eqbr_pinctrl_drv_data *drvdata)
766756
pinmux);
767757
if (err < 0) {
768758
dev_err(dev, "Failed to register group %s\n", grp->name);
769-
of_node_put(np);
770759
return err;
771760
}
772761
memset(&group, 0, sizeof(group));

0 commit comments

Comments
 (0)