mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
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:
parent
7c2aabb56f
commit
3dcc01b36f
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user