Skip to content
/ linux Public

Commit 142a386

Browse files
morimotogregkh
authored andcommitted
ASoC: simple-card-utils: use __free(device_node) for device node
[ Upstream commit 419d191 ] simple-card-utils handles many type of device_node, thus need to use of_node_put() in many place. Let's use __free(device_node) and avoid it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/87r06pfre8.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org> Stable-dep-of: 4185b95 ("ASoC: simple-card-utils: fix graph_util_is_ports0() for DT overlays") Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent eab71e1 commit 142a386

File tree

1 file changed

+14
-30
lines changed

1 file changed

+14
-30
lines changed

sound/soc/generic/simple-card-utils.c

Lines changed: 14 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -999,35 +999,27 @@ EXPORT_SYMBOL_GPL(graph_util_card_probe);
999999

10001000
int graph_util_is_ports0(struct device_node *np)
10011001
{
1002-
struct device_node *port, *ports, *ports0, *top;
1003-
int ret;
1002+
struct device_node *parent __free(device_node) = of_get_parent(np);
1003+
struct device_node *port;
10041004

10051005
/* np is "endpoint" or "port" */
1006-
if (of_node_name_eq(np, "endpoint")) {
1007-
port = of_get_parent(np);
1008-
} else {
1006+
if (of_node_name_eq(np, "endpoint"))
1007+
port = parent;
1008+
else
10091009
port = np;
1010-
of_node_get(port);
1011-
}
1012-
1013-
ports = of_get_parent(port);
1014-
top = of_get_parent(ports);
1015-
ports0 = of_get_child_by_name(top, "ports");
1016-
1017-
ret = ports0 == ports;
10181010

1019-
of_node_put(port);
1020-
of_node_put(ports);
1021-
of_node_put(ports0);
1022-
of_node_put(top);
1011+
struct device_node *ports __free(device_node) = of_get_parent(port);
1012+
struct device_node *top __free(device_node) = of_get_parent(ports);
1013+
struct device_node *ports0 __free(device_node) = of_get_child_by_name(top, "ports");
10231014

1024-
return ret;
1015+
return ports0 == ports;
10251016
}
10261017
EXPORT_SYMBOL_GPL(graph_util_is_ports0);
10271018

10281019
static int graph_get_dai_id(struct device_node *ep)
10291020
{
1030-
struct device_node *node;
1021+
struct device_node *node __free(device_node) = of_graph_get_port_parent(ep);
1022+
struct device_node *port __free(device_node) = of_get_parent(ep);
10311023
struct device_node *endpoint;
10321024
struct of_endpoint info;
10331025
int i, id;
@@ -1050,13 +1042,10 @@ static int graph_get_dai_id(struct device_node *ep)
10501042
if (of_property_present(ep, "reg"))
10511043
return info.id;
10521044

1053-
node = of_get_parent(ep);
1054-
ret = of_property_present(node, "reg");
1055-
of_node_put(node);
1045+
ret = of_property_present(port, "reg");
10561046
if (ret)
10571047
return info.port;
10581048
}
1059-
node = of_graph_get_port_parent(ep);
10601049

10611050
/*
10621051
* Non HDMI sound case, counting port/endpoint on its DT
@@ -1070,8 +1059,6 @@ static int graph_get_dai_id(struct device_node *ep)
10701059
i++;
10711060
}
10721061

1073-
of_node_put(node);
1074-
10751062
if (id < 0)
10761063
return -ENODEV;
10771064

@@ -1081,15 +1068,14 @@ static int graph_get_dai_id(struct device_node *ep)
10811068
int graph_util_parse_dai(struct device *dev, struct device_node *ep,
10821069
struct snd_soc_dai_link_component *dlc, int *is_single_link)
10831070
{
1084-
struct device_node *node;
10851071
struct of_phandle_args args = {};
10861072
struct snd_soc_dai *dai;
10871073
int ret;
10881074

10891075
if (!ep)
10901076
return 0;
10911077

1092-
node = of_graph_get_port_parent(ep);
1078+
struct device_node *node __free(device_node) = of_graph_get_port_parent(ep);
10931079

10941080
/*
10951081
* Try to find from DAI node
@@ -1131,10 +1117,8 @@ int graph_util_parse_dai(struct device *dev, struct device_node *ep,
11311117
* if he unbinded CPU or Codec.
11321118
*/
11331119
ret = snd_soc_get_dlc(&args, dlc);
1134-
if (ret < 0) {
1135-
of_node_put(node);
1120+
if (ret < 0)
11361121
return ret;
1137-
}
11381122

11391123
parse_dai_end:
11401124
if (is_single_link)

0 commit comments

Comments
 (0)