]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ASoC: audio-graph-card2: Purge absent supplies for device tree nodes
authorJohn Watts <contact@jookia.org>
Fri, 8 Nov 2024 01:37:15 +0000 (12:37 +1100)
committerMark Brown <broonie@kernel.org>
Mon, 11 Nov 2024 11:47:04 +0000 (11:47 +0000)
The audio graph card doesn't mark its subnodes such as multi {}, dpcm {}
and c2c {} as not requiring any suppliers. This causes a hang as Linux
waits for these phantom suppliers to show up on boot.
Make it clear these nodes have no suppliers.

Example error message:
[   15.208558] platform 2034000.i2s: deferred probe pending: platform: wait for supplier /sound/multi
[   15.208584] platform sound: deferred probe pending: asoc-audio-graph-card2: parse error

Signed-off-by: John Watts <contact@jookia.org>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/20241108-graph_dt_fix-v1-1-173e2f9603d6@jookia.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/generic/audio-graph-card2.c

index 4ad3d1b0714f6a4f0800b0fa2b01c52cb010379c..93eee40cec760c59d1496a9c02160c8f95038b89 100644 (file)
@@ -270,16 +270,19 @@ static enum graph_type __graph_get_type(struct device_node *lnk)
 
        if (of_node_name_eq(np, GRAPH_NODENAME_MULTI)) {
                ret = GRAPH_MULTI;
+               fw_devlink_purge_absent_suppliers(&np->fwnode);
                goto out_put;
        }
 
        if (of_node_name_eq(np, GRAPH_NODENAME_DPCM)) {
                ret = GRAPH_DPCM;
+               fw_devlink_purge_absent_suppliers(&np->fwnode);
                goto out_put;
        }
 
        if (of_node_name_eq(np, GRAPH_NODENAME_C2C)) {
                ret = GRAPH_C2C;
+               fw_devlink_purge_absent_suppliers(&np->fwnode);
                goto out_put;
        }