Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Peng Fan and committed by
Linus Walleij
2677d53d 791a8bb2

+5 -16
+5 -16
drivers/pinctrl/pinctrl-equilibrium.c
··· 588 588 unsigned int *nr_funcs, funcs_util_ops op) 589 589 { 590 590 struct device_node *node = dev->of_node; 591 - struct device_node *np; 592 591 struct property *prop; 593 592 const char *fn_name; 594 593 const char **groups; ··· 595 596 int i, j; 596 597 597 598 i = 0; 598 - for_each_child_of_node(node, np) { 599 + for_each_child_of_node_scoped(node, np) { 599 600 prop = of_find_property(np, "groups", NULL); 600 601 if (!prop) 601 602 continue; ··· 634 635 break; 635 636 636 637 default: 637 - of_node_put(np); 638 638 return -EINVAL; 639 639 } 640 640 i++; ··· 706 708 struct device_node *node = dev->of_node; 707 709 unsigned int *pins, *pinmux, pin_id, pinmux_id; 708 710 struct pingroup group, *grp = &group; 709 - struct device_node *np; 710 711 struct property *prop; 711 712 int j, err; 712 713 713 - for_each_child_of_node(node, np) { 714 + for_each_child_of_node_scoped(node, np) { 714 715 prop = of_find_property(np, "groups", NULL); 715 716 if (!prop) 716 717 continue; ··· 717 720 err = of_property_count_u32_elems(np, "pins"); 718 721 if (err < 0) { 719 722 dev_err(dev, "No pins in the group: %s\n", prop->name); 720 - of_node_put(np); 721 723 return err; 722 724 } 723 725 grp->npins = err; 724 726 grp->name = prop->value; 725 727 pins = devm_kcalloc(dev, grp->npins, sizeof(*pins), GFP_KERNEL); 726 - if (!pins) { 727 - of_node_put(np); 728 + if (!pins) 728 729 return -ENOMEM; 729 - } 730 + 730 731 grp->pins = pins; 731 732 732 733 pinmux = devm_kcalloc(dev, grp->npins, sizeof(*pinmux), GFP_KERNEL); 733 - if (!pinmux) { 734 - of_node_put(np); 734 + if (!pinmux) 735 735 return -ENOMEM; 736 - } 737 736 738 737 for (j = 0; j < grp->npins; j++) { 739 738 if (of_property_read_u32_index(np, "pins", j, &pin_id)) { 740 739 dev_err(dev, "Group %s: Read intel pins id failed\n", 741 740 grp->name); 742 - of_node_put(np); 743 741 return -EINVAL; 744 742 } 745 743 if (pin_id >= drvdata->pctl_desc.npins) { 746 744 dev_err(dev, "Group %s: Invalid pin ID, idx: %d, pin %u\n", 747 745 grp->name, j, pin_id); 748 - of_node_put(np); 749 746 return -EINVAL; 750 747 } 751 748 pins[j] = pin_id; 752 749 if (of_property_read_u32_index(np, "pinmux", j, &pinmux_id)) { 753 750 dev_err(dev, "Group %s: Read intel pinmux id failed\n", 754 751 grp->name); 755 - of_node_put(np); 756 752 return -EINVAL; 757 753 } 758 754 pinmux[j] = pinmux_id; ··· 756 766 pinmux); 757 767 if (err < 0) { 758 768 dev_err(dev, "Failed to register group %s\n", grp->name); 759 - of_node_put(np); 760 769 return err; 761 770 } 762 771 memset(&group, 0, sizeof(group));