pinctrl: s32cc: 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>
Link: https://lore.kernel.org/20240504-pinctrl-cleanup-v2-12-26c5f2dc1181@nxp.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
Peng Fan 2024-05-04 21:20:10 +08:00 committed by Linus Walleij
parent 7c2aabb56f
commit 3dcc01b36f

View File

@ -268,28 +268,23 @@ static int s32_dt_node_to_map(struct pinctrl_dev *pctldev,
unsigned int *num_maps)
{
unsigned int reserved_maps;
struct device_node *np;
int ret = 0;
int ret;
reserved_maps = 0;
*map = NULL;
*num_maps = 0;
for_each_available_child_of_node(np_config, np) {
for_each_available_child_of_node_scoped(np_config, np) {
ret = s32_dt_group_node_to_map(pctldev, np, map,
&reserved_maps, num_maps,
np_config->name);
if (ret < 0) {
of_node_put(np);
break;
pinctrl_utils_free_map(pctldev, *map, *num_maps);
return ret;
}
}
if (ret)
pinctrl_utils_free_map(pctldev, *map, *num_maps);
return ret;
return 0;
}
static const struct pinctrl_ops s32_pctrl_ops = {
@ -786,7 +781,6 @@ static int s32_pinctrl_parse_functions(struct device_node *np,
struct s32_pinctrl_soc_info *info,
u32 index)
{
struct device_node *child;
struct pinfunction *func;
struct s32_pin_group *grp;
const char **groups;
@ -810,14 +804,12 @@ static int s32_pinctrl_parse_functions(struct device_node *np,
if (!groups)
return -ENOMEM;
for_each_child_of_node(np, child) {
for_each_child_of_node_scoped(np, child) {
groups[i] = child->name;
grp = &info->groups[info->grp_index++];
ret = s32_pinctrl_parse_groups(child, grp, info);
if (ret) {
of_node_put(child);
if (ret)
return ret;
}
i++;
}
@ -831,7 +823,6 @@ static int s32_pinctrl_probe_dt(struct platform_device *pdev,
{
struct s32_pinctrl_soc_info *info = ipctl->info;
struct device_node *np = pdev->dev.of_node;
struct device_node *child;
struct resource *res;
struct regmap *map;
void __iomem *base;
@ -889,7 +880,7 @@ static int s32_pinctrl_probe_dt(struct platform_device *pdev,
return -ENOMEM;
info->ngroups = 0;
for_each_child_of_node(np, child)
for_each_child_of_node_scoped(np, child)
info->ngroups += of_get_child_count(child);
info->groups = devm_kcalloc(&pdev->dev, info->ngroups,
@ -898,12 +889,10 @@ static int s32_pinctrl_probe_dt(struct platform_device *pdev,
return -ENOMEM;
i = 0;
for_each_child_of_node(np, child) {
for_each_child_of_node_scoped(np, child) {
ret = s32_pinctrl_parse_functions(child, info, i++);
if (ret) {
of_node_put(child);
if (ret)
return ret;
}
}
return 0;