Commit 7c2aabb5 authored by Peng Fan's avatar Peng Fan Committed by Linus Walleij
Browse files

pinctrl: at91: Use scope based of_node_put() cleanups



Use scope based of_node_put() cleanup to simplify code.

Signed-off-by: default avatarPeng Fan <peng.fan@nxp.com>
Link: https://lore.kernel.org/20240504-pinctrl-cleanup-v2-11-26c5f2dc1181@nxp.com


Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 56c42f6c
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -632,7 +632,6 @@ static int atmel_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
				     struct pinctrl_map **map,
				     unsigned int *num_maps)
{
	struct device_node *np;
	unsigned int reserved_maps;
	int ret;

@@ -648,15 +647,13 @@ static int atmel_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
	ret = atmel_pctl_dt_subnode_to_map(pctldev, np_config, map,
					   &reserved_maps, num_maps);
	if (ret) {
		for_each_child_of_node(np_config, np) {
		for_each_child_of_node_scoped(np_config, np) {
			ret = atmel_pctl_dt_subnode_to_map(pctldev, np, map,
						    &reserved_maps, num_maps);
			if (ret < 0) {
				of_node_put(np);
			if (ret < 0)
				break;
		}
	}
	}

	if (ret < 0) {
		pinctrl_utils_free_map(pctldev, *map, *num_maps);
+4 −10
Original line number Diff line number Diff line
@@ -1244,7 +1244,6 @@ static int at91_pinctrl_parse_groups(struct device_node *np,
static int at91_pinctrl_parse_functions(struct device_node *np,
					struct at91_pinctrl *info, u32 index)
{
	struct device_node *child;
	struct at91_pmx_func *func;
	struct at91_pin_group *grp;
	int ret;
@@ -1267,15 +1266,13 @@ static int at91_pinctrl_parse_functions(struct device_node *np,
	if (!func->groups)
		return -ENOMEM;

	for_each_child_of_node(np, child) {
	for_each_child_of_node_scoped(np, child) {
		func->groups[i] = child->name;
		grp = &info->groups[grp_index++];
		ret = at91_pinctrl_parse_groups(child, grp, info, i++);
		if (ret) {
			of_node_put(child);
		if (ret)
			return ret;
	}
	}

	return 0;
}
@@ -1296,7 +1293,6 @@ static int at91_pinctrl_probe_dt(struct platform_device *pdev,
	int i, j, ngpio_chips_enabled = 0;
	uint32_t *tmp;
	struct device_node *np = dev->of_node;
	struct device_node *child;

	if (!np)
		return -ENODEV;
@@ -1349,15 +1345,13 @@ static int at91_pinctrl_probe_dt(struct platform_device *pdev,

	i = 0;

	for_each_child_of_node(np, child) {
	for_each_child_of_node_scoped(np, child) {
		if (of_device_is_compatible(child, gpio_compat))
			continue;
		ret = at91_pinctrl_parse_functions(child, info, i++);
		if (ret) {
			of_node_put(child);
		if (ret)
			return dev_err_probe(dev, ret, "failed to parse function\n");
	}
	}

	return 0;
}