Re: broonie-sound/for-next bisection: baseline.bootrr.asoc-simple-card-probed on kontron-sl28-var3-ads2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Morimoto-san,

Please see the bisection report below about the asoc-simple-card
driver failing to probe on kontron-sl28-var3-ads2 in today's
broonie-sound tree.  I believe this has not reached linux-next
yet.

Reports aren't automatically sent to the public while we're
trialing new bisection features on kernelci.org but this one
looks valid.

Here's the full boot log:

  https://storage.kernelci.org/broonie-sound/for-next/v5.12-rc8-542-g80e0ab4291498/arm64/defconfig/gcc-8/lab-kontron/baseline-kontron-sl28-var3-ads2.html

More details can be found here:

  https://linux.kernelci.org/test/case/id/608089974135ccea439b779c/

Please let us know if you need any help debugging the issue or to
try a fix.

Best wishes,
Guillaume


On 22/04/2021 04:06, KernelCI bot wrote:
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> * This automated bisection report was sent to you on the basis  *
> * that you may be involved with the breaking commit it has      *
> * found.  No manual investigation has been done to verify it,   *
> * and the root cause of the problem may be somewhere else.      *
> *                                                               *
> * If you do send a fix, please include this trailer:            *
> *   Reported-by: "kernelci.org bot" <bot@xxxxxxxxxxxx>          *
> *                                                               *
> * Hope this helps!                                              *
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> 
> broonie-sound/for-next bisection: baseline.bootrr.asoc-simple-card-probed on kontron-sl28-var3-ads2
> 
> Summary:
>   Start:      80e0ab429149 Merge remote-tracking branch 'asoc/for-5.13' into asoc-next
>   Plain log:  https://storage.kernelci.org/broonie-sound/for-next/v5.12-rc8-542-g80e0ab4291498/arm64/defconfig+CONFIG_RANDOMIZE_BASE=y/gcc-8/lab-kontron/baseline-kontron-sl28-var3-ads2.txt
>   HTML log:   https://storage.kernelci.org/broonie-sound/for-next/v5.12-rc8-542-g80e0ab4291498/arm64/defconfig+CONFIG_RANDOMIZE_BASE=y/gcc-8/lab-kontron/baseline-kontron-sl28-var3-ads2.html
>   Result:     59c35c44a9cf ASoC: simple-card: add simple_parse_node()
> 
> Checks:
>   revert:     PASS
>   verify:     PASS
> 
> Parameters:
>   Tree:       broonie-sound
>   URL:        https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
>   Branch:     for-next
>   Target:     kontron-sl28-var3-ads2
>   CPU arch:   arm64
>   Lab:        lab-kontron
>   Compiler:   gcc-8
>   Config:     defconfig+CONFIG_RANDOMIZE_BASE=y
>   Test case:  baseline.bootrr.asoc-simple-card-probed
> 
> Breaking commit found:
> 
> -------------------------------------------------------------------------------
> commit 59c35c44a9cf89a83a92a8d26749e59497d0317d
> Author: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>
> Date:   Wed Apr 21 14:45:48 2021 +0900
> 
>     ASoC: simple-card: add simple_parse_node()
>     
>     Parse dai/tdm/clk are common for both CPU/Codec node.
>     This patch creates simple_parse_node() for it and share the code.
>     
>     Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>
>     Link: https://lore.kernel.org/r/87czuoi41f.wl-kuninori.morimoto.gx@xxxxxxxxxxx
>     Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
> 
> diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c
> index a1373be4558f..91af4eca9c86 100644
> --- a/sound/soc/generic/simple-card.c
> +++ b/sound/soc/generic/simple-card.c
> @@ -93,12 +93,11 @@ static void simple_parse_convert(struct device *dev,
>  }
>  
>  static void simple_parse_mclk_fs(struct device_node *top,
> -				 struct device_node *cpu,
> -				 struct device_node *codec,
> +				 struct device_node *np,
>  				 struct simple_dai_props *props,
>  				 char *prefix)
>  {
> -	struct device_node *node = of_get_parent(cpu);
> +	struct device_node *node = of_get_parent(np);
>  	char prop[128];
>  
>  	snprintf(prop, sizeof(prop), "%smclk-fs", PREFIX);
> @@ -106,12 +105,57 @@ static void simple_parse_mclk_fs(struct device_node *top,
>  
>  	snprintf(prop, sizeof(prop), "%smclk-fs", prefix);
>  	of_property_read_u32(node,	prop, &props->mclk_fs);
> -	of_property_read_u32(cpu,	prop, &props->mclk_fs);
> -	of_property_read_u32(codec,	prop, &props->mclk_fs);
> +	of_property_read_u32(np,	prop, &props->mclk_fs);
>  
>  	of_node_put(node);
>  }
>  
> +static int simple_parse_node(struct asoc_simple_priv *priv,
> +			     struct device_node *np,
> +			     struct link_info *li,
> +			     char *prefix,
> +			     int is_cpu)
> +{
> +	struct device *dev = simple_priv_to_dev(priv);
> +	struct device_node *top = dev->of_node;
> +	struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
> +	struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
> +	struct snd_soc_dai_link_component *dlc;
> +	struct asoc_simple_dai *dai;
> +	int ret, single = 0;
> +
> +	if (is_cpu) {
> +		dlc = asoc_link_to_cpu(dai_link, 0);
> +		dai = simple_props_to_dai_cpu(dai_props, 0);
> +	} else {
> +		dlc = asoc_link_to_codec(dai_link, 0);
> +		dai = simple_props_to_dai_codec(dai_props, 0);
> +	}
> +
> +	simple_parse_mclk_fs(top, np, dai_props, prefix);
> +
> +	ret = asoc_simple_parse_dai(np, dlc, &single);
> +	if (ret)
> +		return ret;
> +
> +	ret = asoc_simple_parse_clk(dev, np, dai, dlc);
> +	if (ret)
> +		return ret;
> +
> +	ret = asoc_simple_parse_tdm(np, dai);
> +	if (ret)
> +		return ret;
> +
> +	if (is_cpu) {
> +		struct snd_soc_dai_link_component *platforms = asoc_link_to_platform(dai_link, 0);
> +
> +		asoc_simple_canonicalize_cpu(dlc, single);
> +		asoc_simple_canonicalize_platform(platforms, dlc);
> +	}
> +
> +	return 0;
> +}
> +
>  static int simple_dai_link_of_dpcm(struct asoc_simple_priv *priv,
>  				   struct device_node *np,
>  				   struct device_node *codec,
> @@ -121,10 +165,8 @@ static int simple_dai_link_of_dpcm(struct asoc_simple_priv *priv,
>  	struct device *dev = simple_priv_to_dev(priv);
>  	struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
>  	struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
> -	struct asoc_simple_dai *dai;
>  	struct snd_soc_dai_link_component *cpus = asoc_link_to_cpu(dai_link, 0);
>  	struct snd_soc_dai_link_component *codecs = asoc_link_to_codec(dai_link, 0);
> -	struct snd_soc_dai_link_component *platforms = asoc_link_to_platform(dai_link, 0);
>  	struct device_node *top = dev->of_node;
>  	struct device_node *node = of_get_parent(np);
>  	char *prefix = "";
> @@ -132,28 +174,18 @@ static int simple_dai_link_of_dpcm(struct asoc_simple_priv *priv,
>  
>  	dev_dbg(dev, "link_of DPCM (%pOF)\n", np);
>  
> -	li->link++;
> -
>  	/* For single DAI link & old style of DT node */
>  	if (is_top)
>  		prefix = PREFIX;
>  
>  	if (li->cpu) {
> -		int is_single_links = 0;
> -
>  		/* Codec is dummy */
>  
>  		/* FE settings */
>  		dai_link->dynamic		= 1;
>  		dai_link->dpcm_merged_format	= 1;
>  
> -		dai = simple_props_to_dai_cpu(dai_props, 0);
> -
> -		ret = asoc_simple_parse_dai(np, cpus, &is_single_links);
> -		if (ret)
> -			goto out_put_node;
> -
> -		ret = asoc_simple_parse_clk(dev, np, dai, cpus);
> +		ret = simple_parse_node(priv, np, li, prefix, 1);
>  		if (ret < 0)
>  			goto out_put_node;
>  
> @@ -162,9 +194,6 @@ static int simple_dai_link_of_dpcm(struct asoc_simple_priv *priv,
>  						   cpus->dai_name);
>  		if (ret < 0)
>  			goto out_put_node;
> -
> -		asoc_simple_canonicalize_cpu(cpus, is_single_links);
> -		asoc_simple_canonicalize_platform(platforms, cpus);
>  	} else {
>  		struct snd_soc_codec_conf *cconf;
>  
> @@ -174,14 +203,9 @@ static int simple_dai_link_of_dpcm(struct asoc_simple_priv *priv,
>  		dai_link->no_pcm		= 1;
>  		dai_link->be_hw_params_fixup	= asoc_simple_be_hw_params_fixup;
>  
> -		dai	= simple_props_to_dai_codec(dai_props, 0);
>  		cconf	= simple_props_to_codec_conf(dai_props, 0);
>  
> -		ret = asoc_simple_parse_dai(np, codecs, NULL);
> -		if (ret < 0)
> -			goto out_put_node;
> -
> -		ret = asoc_simple_parse_clk(dev, np, dai, codecs);
> +		ret = simple_parse_node(priv, np, li, prefix, 0);
>  		if (ret < 0)
>  			goto out_put_node;
>  
> @@ -201,11 +225,6 @@ static int simple_dai_link_of_dpcm(struct asoc_simple_priv *priv,
>  	}
>  
>  	simple_parse_convert(dev, np, &dai_props->adata);
> -	simple_parse_mclk_fs(top, np, codec, dai_props, prefix);
> -
> -	ret = asoc_simple_parse_tdm(np, dai);
> -	if (ret)
> -		goto out_put_node;
>  
>  	ret = asoc_simple_parse_daifmt(dev, node, codec,
>  				       prefix, &dai_link->dai_fmt);
> @@ -218,6 +237,8 @@ static int simple_dai_link_of_dpcm(struct asoc_simple_priv *priv,
>  	dai_link->init			= asoc_simple_dai_init;
>  
>  out_put_node:
> +	li->link++;
> +
>  	of_node_put(node);
>  	return ret;
>  }
> @@ -230,23 +251,18 @@ static int simple_dai_link_of(struct asoc_simple_priv *priv,
>  {
>  	struct device *dev = simple_priv_to_dev(priv);
>  	struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
> -	struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
> -	struct asoc_simple_dai *cpu_dai	= simple_props_to_dai_cpu(dai_props, 0);
> -	struct asoc_simple_dai *codec_dai = simple_props_to_dai_codec(dai_props, 0);
>  	struct snd_soc_dai_link_component *cpus = asoc_link_to_cpu(dai_link, 0);
>  	struct snd_soc_dai_link_component *codecs = asoc_link_to_codec(dai_link, 0);
>  	struct snd_soc_dai_link_component *platforms = asoc_link_to_platform(dai_link, 0);
> -	struct device_node *top = dev->of_node;
>  	struct device_node *cpu = NULL;
>  	struct device_node *node = NULL;
>  	struct device_node *plat = NULL;
>  	char prop[128];
>  	char *prefix = "";
> -	int ret, single_cpu = 0;
> +	int ret;
>  
>  	cpu  = np;
>  	node = of_get_parent(np);
> -	li->link++;
>  
>  	dev_dbg(dev, "link_of (%pOF)\n", node);
>  
> @@ -262,13 +278,11 @@ static int simple_dai_link_of(struct asoc_simple_priv *priv,
>  	if (ret < 0)
>  		goto dai_link_of_err;
>  
> -	simple_parse_mclk_fs(top, cpu, codec, dai_props, prefix);
> -
> -	ret = asoc_simple_parse_dai(cpu, cpus, &single_cpu);
> +	ret = simple_parse_node(priv, cpu, li, prefix, 1);
>  	if (ret < 0)
>  		goto dai_link_of_err;
>  
> -	ret = asoc_simple_parse_dai(codec, codecs, NULL);
> +	ret = simple_parse_node(priv, codec, li, prefix, 0);
>  	if (ret < 0)
>  		goto dai_link_of_err;
>  
> @@ -276,22 +290,6 @@ static int simple_dai_link_of(struct asoc_simple_priv *priv,
>  	if (ret < 0)
>  		goto dai_link_of_err;
>  
> -	ret = asoc_simple_parse_tdm(cpu, cpu_dai);
> -	if (ret < 0)
> -		goto dai_link_of_err;
> -
> -	ret = asoc_simple_parse_tdm(codec, codec_dai);
> -	if (ret < 0)
> -		goto dai_link_of_err;
> -
> -	ret = asoc_simple_parse_clk(dev, cpu, cpu_dai, cpus);
> -	if (ret < 0)
> -		goto dai_link_of_err;
> -
> -	ret = asoc_simple_parse_clk(dev, codec, codec_dai, codecs);
> -	if (ret < 0)
> -		goto dai_link_of_err;
> -
>  	ret = asoc_simple_set_dailink_name(dev, dai_link,
>  					   "%s-%s",
>  					   cpus->dai_name,
> @@ -302,13 +300,12 @@ static int simple_dai_link_of(struct asoc_simple_priv *priv,
>  	dai_link->ops = &simple_ops;
>  	dai_link->init = asoc_simple_dai_init;
>  
> -	asoc_simple_canonicalize_cpu(cpus, single_cpu);
> -	asoc_simple_canonicalize_platform(platforms, cpus);
> -
>  dai_link_of_err:
>  	of_node_put(plat);
>  	of_node_put(node);
>  
> +	li->link++;
> +
>  	return ret;
>  }
> -------------------------------------------------------------------------------
> 
> 
> Git bisection log:
> 
> -------------------------------------------------------------------------------
> git bisect start
> # good: [bf05bf16c76bb44ab5156223e1e58e26dfe30a88] Linux 5.12-rc8
> git bisect good bf05bf16c76bb44ab5156223e1e58e26dfe30a88
> # bad: [80e0ab4291498248157d2801c994dfaa09ef3082] Merge remote-tracking branch 'asoc/for-5.13' into asoc-next
> git bisect bad 80e0ab4291498248157d2801c994dfaa09ef3082
> # good: [d479f00b795ac62b24ef90f4ec421e65c3178ca7] ASoC: soc-pcm: indicate error message at dpcm_path_get()
> git bisect good d479f00b795ac62b24ef90f4ec421e65c3178ca7
> # good: [a96d2ba2d8248d5e8170f2f44f98d4a33329b08a] ASoC: codecs: tlv320aic3x: move I2C to separated file
> git bisect good a96d2ba2d8248d5e8170f2f44f98d4a33329b08a
> # good: [8577bf61a6359bf2387f85a2fda713a4f05185c3] Merge series "ASoC: rsnd: tidyup Renesas sound" from Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>:
> git bisect good 8577bf61a6359bf2387f85a2fda713a4f05185c3
> # good: [87143bfdb9f7ddc14b129fda610e114d29077596] Merge series "ASoC: remove more cppcheck warnings" from Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>:
> git bisect good 87143bfdb9f7ddc14b129fda610e114d29077596
> # good: [23b16df6c9c91f70df070be43c5b13ef4016c1e7] Merge series "ASoC: audio-graph: cleanups" from Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>:
> git bisect good 23b16df6c9c91f70df070be43c5b13ef4016c1e7
> # good: [1fa27f35ee23b52e0bd708d00c272c5df805afc8] Merge series "ASoC: rt286/rt298: Fixes for DMIC2 config and combo jack" from David Ward <david.ward@xxxxxxxxxx>:
> git bisect good 1fa27f35ee23b52e0bd708d00c272c5df805afc8
> # bad: [434392271afcff350fe11730f12b831fffaf33eb] ASoC: simple-card: add simple_link_init()
> git bisect bad 434392271afcff350fe11730f12b831fffaf33eb
> # good: [e51237b8d3052251421770468903fa6e4446d158] ASoC: audio-graph: add graph_link_init()
> git bisect good e51237b8d3052251421770468903fa6e4446d158
> # bad: [59c35c44a9cf89a83a92a8d26749e59497d0317d] ASoC: simple-card: add simple_parse_node()
> git bisect bad 59c35c44a9cf89a83a92a8d26749e59497d0317d
> # first bad commit: [59c35c44a9cf89a83a92a8d26749e59497d0317d] ASoC: simple-card: add simple_parse_node()
> -------------------------------------------------------------------------------
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Groups.io Links: You receive all messages sent to this group.
> View/Reply Online (#10236): https://groups.io/g/kernelci-results/message/10236
> Mute This Topic: https://groups.io/mt/82277947/924702
> Group Owner: kernelci-results+owner@xxxxxxxxx
> Unsubscribe: https://groups.io/g/kernelci-results/unsub [guillaume.tucker@xxxxxxxxxxxxx]
> -=-=-=-=-=-=-=-=-=-=-=-
> 
> 




[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux