diff mbox series

ASoC: audio-graph-card2: Purge absent supplies for device tree nodes

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

Commit Message

John Watts Nov. 8, 2024, 1:37 a.m. UTC
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,

Comments

Mark Brown Nov. 8, 2024, 1 p.m. UTC | #1
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 mbox series

Patch

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;
 	}