]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: simple-card-utils: Check value of is_playback_only and is_capture_only
authorShengjiu Wang <shengjiu.wang@nxp.com>
Wed, 18 Mar 2026 10:28:49 +0000 (18:28 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 18 Mar 2026 13:26:49 +0000 (13:26 +0000)
The audio-graph-card2 gets the value of 'playback-only' and
'capture_only' property in below sequence, if there is 'playback_only' or
'capture_only' property in port_cpu and port_codec nodes, but no these
properties in ep_cpu and ep_codec nodes, the value of playback_only and
capture_only will be flushed to zero in the end.

graph_util_parse_link_direction(lnk,            &playback_only, &capture_only);
graph_util_parse_link_direction(ports_cpu,      &playback_only, &capture_only);
graph_util_parse_link_direction(ports_codec,    &playback_only, &capture_only);
graph_util_parse_link_direction(port_cpu,       &playback_only, &capture_only);
graph_util_parse_link_direction(port_codec,     &playback_only, &capture_only);
graph_util_parse_link_direction(ep_cpu,         &playback_only, &capture_only);
graph_util_parse_link_direction(ep_codec,       &playback_only, &capture_only);

So check the value of is_playback_only and is_capture_only in
graph_util_parse_link_direction() function, if they are true, then rewrite
the values, and no need to check the np variable as
of_property_read_bool() will ignore if it was NULL.

Fixes: 3cc393d2232e ("ASoC: simple-card-utils: Fix pointer check in graph_util_parse_link_direction")
Fixes: 22a507d7680f ("ASoC: simple-card-utils: Check device node before overwrite direction")
Suggested-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://patch.msgid.link/20260318102850.2794029-2-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/generic/simple-card-utils.c

index 9e5be0eaa77f35c28cf272b27c14a5007c98640c..89d694c2cbddaee0ed398a1de66047d39f4046fc 100644 (file)
@@ -1183,9 +1183,9 @@ void graph_util_parse_link_direction(struct device_node *np,
        bool is_playback_only = of_property_read_bool(np, "playback-only");
        bool is_capture_only  = of_property_read_bool(np, "capture-only");
 
-       if (np && playback_only)
+       if (playback_only && is_playback_only)
                *playback_only = is_playback_only;
-       if (np && capture_only)
+       if (capture_only && is_capture_only)
                *capture_only = is_capture_only;
 }
 EXPORT_SYMBOL_GPL(graph_util_parse_link_direction);