sound/soc/generic/audio-graph-card2.c | 3 +++ 1 file changed, 3 insertions(+)
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>
---
sound/soc/generic/audio-graph-card2.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/sound/soc/generic/audio-graph-card2.c b/sound/soc/generic/audio-graph-card2.c
index 56f7f946882e831cc4474c86b31f69e15de1549a..68f1da6931af2161dc8815b8c04d10cd614cc182 100644
--- a/sound/soc/generic/audio-graph-card2.c
+++ b/sound/soc/generic/audio-graph-card2.c
@@ -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;
}
---
base-commit: 98f7e32f20d28ec452afb208f9cffc08448a2652
change-id: 20241108-graph_dt_fix-d1f0db88a696
Best regards,
--
John Watts <contact@jookia.org>
On Fri, 08 Nov 2024 12:37:15 +1100, John Watts wrote: > 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 > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next Thanks! [1/1] ASoC: audio-graph-card2: Purge absent supplies for device tree nodes commit: f8da001ae7af0abd9f6250c02c01a1121074ca60 All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark
Hi John Thank you for your patch > 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> I had (not same this but) similar issue before. a2187d0dadfc308551bbb1b8d6caee69e2ad4744 ("ASoC: dt-bindings: renesas,rsnd: add post-init-providers property") Your patch also solve my issue too. It seems your one is more simple and reasonable solution. # I will post revert above patch after this Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Thank you for your help !! Best regards --- Kuninori Morimoto
On Fri, Nov 08, 2024 at 12:37:15PM +1100, John Watts wrote: > 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. Copying in Morimoto-san. > > 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> > --- > sound/soc/generic/audio-graph-card2.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/sound/soc/generic/audio-graph-card2.c b/sound/soc/generic/audio-graph-card2.c > index 56f7f946882e831cc4474c86b31f69e15de1549a..68f1da6931af2161dc8815b8c04d10cd614cc182 100644 > --- a/sound/soc/generic/audio-graph-card2.c > +++ b/sound/soc/generic/audio-graph-card2.c > @@ -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; > } > > > --- > base-commit: 98f7e32f20d28ec452afb208f9cffc08448a2652 > change-id: 20241108-graph_dt_fix-d1f0db88a696 > > Best regards, > -- > John Watts <contact@jookia.org> >
© 2016 - 2024 Red Hat, Inc.