pinctrl: renesas: 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: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20240504-pinctrl-cleanup-v2-7-26c5f2dc1181@nxp.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
This commit is contained in:
Peng Fan 2024-05-04 21:20:05 +08:00 committed by Geert Uytterhoeven
parent 2677110051
commit c45c3f5f95
5 changed files with 17 additions and 41 deletions

View File

@ -852,7 +852,6 @@ static const struct gpio_chip rza1_gpiochip_template = {
*/
static int rza1_dt_node_pin_count(struct device_node *np)
{
struct device_node *child;
struct property *of_pins;
unsigned int npins;
@ -861,12 +860,10 @@ static int rza1_dt_node_pin_count(struct device_node *np)
return of_pins->length / sizeof(u32);
npins = 0;
for_each_child_of_node(np, child) {
for_each_child_of_node_scoped(np, child) {
of_pins = of_find_property(child, "pinmux", NULL);
if (!of_pins) {
of_node_put(child);
if (!of_pins)
return -EINVAL;
}
npins += of_pins->length / sizeof(u32);
}
@ -986,7 +983,6 @@ static int rza1_dt_node_to_map(struct pinctrl_dev *pctldev,
struct rza1_pinctrl *rza1_pctl = pinctrl_dev_get_drvdata(pctldev);
struct rza1_mux_conf *mux_confs, *mux_conf;
unsigned int *grpins, *grpin;
struct device_node *child;
const char *grpname;
const char **fngrps;
int ret, npins;
@ -1023,13 +1019,11 @@ static int rza1_dt_node_to_map(struct pinctrl_dev *pctldev,
ret = rza1_parse_pinmux_node(rza1_pctl, np, mux_conf, grpin);
if (ret == -ENOENT)
for_each_child_of_node(np, child) {
for_each_child_of_node_scoped(np, child) {
ret = rza1_parse_pinmux_node(rza1_pctl, child, mux_conf,
grpin);
if (ret < 0) {
of_node_put(child);
if (ret < 0)
return ret;
}
grpin += ret;
mux_conf += ret;

View File

@ -745,7 +745,6 @@ static int rzg2l_dt_node_to_map(struct pinctrl_dev *pctldev,
unsigned int *num_maps)
{
struct rzg2l_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev);
struct device_node *child;
unsigned int index;
int ret;
@ -753,13 +752,11 @@ static int rzg2l_dt_node_to_map(struct pinctrl_dev *pctldev,
*num_maps = 0;
index = 0;
for_each_child_of_node(np, child) {
for_each_child_of_node_scoped(np, child) {
ret = rzg2l_dt_subnode_to_map(pctldev, child, np, map,
num_maps, &index);
if (ret < 0) {
of_node_put(child);
if (ret < 0)
goto done;
}
}
if (*num_maps == 0) {

View File

@ -404,7 +404,6 @@ static int rzn1_dt_node_to_map(struct pinctrl_dev *pctldev,
struct pinctrl_map **map,
unsigned int *num_maps)
{
struct device_node *child;
int ret;
*map = NULL;
@ -414,12 +413,10 @@ static int rzn1_dt_node_to_map(struct pinctrl_dev *pctldev,
if (ret < 0)
return ret;
for_each_child_of_node(np, child) {
for_each_child_of_node_scoped(np, child) {
ret = rzn1_dt_node_to_map_one(pctldev, child, map, num_maps);
if (ret < 0) {
of_node_put(child);
if (ret < 0)
return ret;
}
}
return 0;
@ -760,7 +757,6 @@ static int rzn1_pinctrl_parse_functions(struct device_node *np,
{
struct rzn1_pmx_func *func;
struct rzn1_pin_group *grp;
struct device_node *child;
unsigned int i = 0;
int ret;
@ -793,15 +789,13 @@ static int rzn1_pinctrl_parse_functions(struct device_node *np,
ipctl->ngroups++;
}
for_each_child_of_node(np, child) {
for_each_child_of_node_scoped(np, child) {
func->groups[i] = child->name;
grp = &ipctl->groups[ipctl->ngroups];
grp->func = func->name;
ret = rzn1_pinctrl_parse_groups(child, grp, ipctl);
if (ret < 0) {
of_node_put(child);
if (ret < 0)
return ret;
}
i++;
ipctl->ngroups++;
}
@ -816,7 +810,6 @@ static int rzn1_pinctrl_probe_dt(struct platform_device *pdev,
struct rzn1_pinctrl *ipctl)
{
struct device_node *np = pdev->dev.of_node;
struct device_node *child;
unsigned int maxgroups = 0;
unsigned int i = 0;
int nfuncs = 0;
@ -834,7 +827,7 @@ static int rzn1_pinctrl_probe_dt(struct platform_device *pdev,
return -ENOMEM;
ipctl->ngroups = 0;
for_each_child_of_node(np, child)
for_each_child_of_node_scoped(np, child)
maxgroups += rzn1_pinctrl_count_function_groups(child);
ipctl->groups = devm_kmalloc_array(&pdev->dev,
@ -844,12 +837,10 @@ static int rzn1_pinctrl_probe_dt(struct platform_device *pdev,
if (!ipctl->groups)
return -ENOMEM;
for_each_child_of_node(np, child) {
for_each_child_of_node_scoped(np, child) {
ret = rzn1_pinctrl_parse_functions(child, ipctl, i++);
if (ret < 0) {
of_node_put(child);
if (ret < 0)
return ret;
}
}
return 0;

View File

@ -388,7 +388,6 @@ static int rzv2m_dt_node_to_map(struct pinctrl_dev *pctldev,
unsigned int *num_maps)
{
struct rzv2m_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev);
struct device_node *child;
unsigned int index;
int ret;
@ -396,13 +395,11 @@ static int rzv2m_dt_node_to_map(struct pinctrl_dev *pctldev,
*num_maps = 0;
index = 0;
for_each_child_of_node(np, child) {
for_each_child_of_node_scoped(np, child) {
ret = rzv2m_dt_subnode_to_map(pctldev, child, np, map,
num_maps, &index);
if (ret < 0) {
of_node_put(child);
if (ret < 0)
goto done;
}
}
if (*num_maps == 0) {

View File

@ -241,7 +241,6 @@ static int sh_pfc_dt_node_to_map(struct pinctrl_dev *pctldev,
{
struct sh_pfc_pinctrl *pmx = pinctrl_dev_get_drvdata(pctldev);
struct device *dev = pmx->pfc->dev;
struct device_node *child;
unsigned int index;
int ret;
@ -249,13 +248,11 @@ static int sh_pfc_dt_node_to_map(struct pinctrl_dev *pctldev,
*num_maps = 0;
index = 0;
for_each_child_of_node(np, child) {
for_each_child_of_node_scoped(np, child) {
ret = sh_pfc_dt_subnode_to_map(pctldev, child, map, num_maps,
&index);
if (ret < 0) {
of_node_put(child);
if (ret < 0)
goto done;
}
}
/* If no mapping has been found in child nodes try the config node. */