Message ID | 20241108-graph_dt_fix-v1-1-173e2f9603d6@jookia.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | ASoC: audio-graph-card2: Purge absent supplies for device tree nodes | expand |
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> >
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; }
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(+) --- base-commit: 98f7e32f20d28ec452afb208f9cffc08448a2652 change-id: 20241108-graph_dt_fix-d1f0db88a696 Best regards,