[PATCH v3 08/13] ASoC: audio-graph: Expose helpers from audio graph

kernel test robot lkp at intel.com
Fri Oct 2 05:06:02 CEST 2020


Hi Sameer,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on tegra/for-next]
[also build test WARNING on v5.9-rc7 next-20201001]
[cannot apply to asoc/for-next robh/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Sameer-Pujar/Audio-graph-card-updates-and-usage-with-Tegra210-audio/20201002-013648
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git for-next
config: xtensa-allyesconfig (attached as .config)
compiler: xtensa-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/b7b97805bc967aae0ce3009c1bbf17b0f232e18b
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Sameer-Pujar/Audio-graph-card-updates-and-usage-with-Tegra210-audio/20201002-013648
        git checkout b7b97805bc967aae0ce3009c1bbf17b0f232e18b
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=xtensa 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All warnings (new ones prefixed by >>):

   sound/soc/generic/audio-graph-card.c: In function 'soc_component_is_pcm':
   sound/soc/generic/audio-graph-card.c:116:28: error: implicit declaration of function 'snd_soc_find_dai_with_mutex' [-Werror=implicit-function-declaration]
     116 |  struct snd_soc_dai *dai = snd_soc_find_dai_with_mutex(dlc);
         |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/soc/generic/audio-graph-card.c:116:28: warning: initialization of 'struct snd_soc_dai *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   sound/soc/generic/audio-graph-card.c: At top level:
>> sound/soc/generic/audio-graph-card.c:532:5: warning: no previous prototype for 'graph_parse_of' [-Wmissing-prototypes]
     532 | int graph_parse_of(struct asoc_simple_priv *priv)
         |     ^~~~~~~~~~~~~~
>> sound/soc/generic/audio-graph-card.c:608:6: warning: no previous prototype for 'graph_get_dais_count' [-Wmissing-prototypes]
     608 | void graph_get_dais_count(struct asoc_simple_priv *priv,
         |      ^~~~~~~~~~~~~~~~~~~~
>> sound/soc/generic/audio-graph-card.c:667:5: warning: no previous prototype for 'graph_card_probe' [-Wmissing-prototypes]
     667 | int graph_card_probe(struct snd_soc_card *card)
         |     ^~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +/graph_parse_of +532 sound/soc/generic/audio-graph-card.c

   531	
 > 532	int graph_parse_of(struct asoc_simple_priv *priv)
   533	{
   534		struct snd_soc_card *card = simple_priv_to_card(priv);
   535		struct link_info li;
   536		int ret;
   537	
   538		ret = asoc_simple_parse_widgets(card, NULL);
   539		if (ret < 0)
   540			return ret;
   541	
   542		ret = asoc_simple_parse_routing(card, NULL);
   543		if (ret < 0)
   544			return ret;
   545	
   546		memset(&li, 0, sizeof(li));
   547		for (li.cpu = 1; li.cpu >= 0; li.cpu--) {
   548			/*
   549			 * Detect all CPU first, and Detect all Codec 2nd.
   550			 *
   551			 * In Normal sound case, all DAIs are detected
   552			 * as "CPU-Codec".
   553			 *
   554			 * In DPCM sound case,
   555			 * all CPUs   are detected as "CPU-dummy", and
   556			 * all Codecs are detected as "dummy-Codec".
   557			 * To avoid random sub-device numbering,
   558			 * detect "dummy-Codec" in last;
   559			 */
   560			ret = graph_for_each_link(priv, &li,
   561						  graph_dai_link_of,
   562						  graph_dai_link_of_dpcm);
   563			if (ret < 0)
   564				return ret;
   565		}
   566	
   567		return asoc_simple_parse_card_name(card, NULL);
   568	}
   569	EXPORT_SYMBOL_GPL(graph_parse_of);
   570	
   571	static int graph_count_noml(struct asoc_simple_priv *priv,
   572				    struct device_node *cpu_ep,
   573				    struct device_node *codec_ep,
   574				    struct link_info *li)
   575	{
   576		struct device *dev = simple_priv_to_dev(priv);
   577	
   578		li->link += 1; /* 1xCPU-Codec */
   579		li->dais += 2; /* 1xCPU + 1xCodec */
   580	
   581		dev_dbg(dev, "Count As Normal\n");
   582	
   583		return 0;
   584	}
   585	
   586	static int graph_count_dpcm(struct asoc_simple_priv *priv,
   587				    struct device_node *cpu_ep,
   588				    struct device_node *codec_ep,
   589				    struct link_info *li,
   590				    int dup_codec)
   591	{
   592		struct device *dev = simple_priv_to_dev(priv);
   593	
   594		li->link++; /* 1xCPU-dummy */
   595		li->dais++; /* 1xCPU */
   596	
   597		if (!dup_codec && codec_ep) {
   598			li->link++; /* 1xdummy-Codec */
   599			li->conf++; /* 1xdummy-Codec */
   600			li->dais++; /* 1xCodec */
   601		}
   602	
   603		dev_dbg(dev, "Count As DPCM\n");
   604	
   605		return 0;
   606	}
   607	
 > 608	void graph_get_dais_count(struct asoc_simple_priv *priv,
   609				  struct link_info *li)
   610	{
   611		struct device *dev = simple_priv_to_dev(priv);
   612	
   613		/*
   614		 * link_num :	number of links.
   615		 *		CPU-Codec / CPU-dummy / dummy-Codec
   616		 * dais_num :	number of DAIs
   617		 * ccnf_num :	number of codec_conf
   618		 *		same number for "dummy-Codec"
   619		 *
   620		 * ex1)
   621		 * CPU0 --- Codec0	link : 5
   622		 * CPU1 --- Codec1	dais : 7
   623		 * CPU2 -/		ccnf : 1
   624		 * CPU3 --- Codec2
   625		 *
   626		 *	=> 5 links = 2xCPU-Codec + 2xCPU-dummy + 1xdummy-Codec
   627		 *	=> 7 DAIs  = 4xCPU + 3xCodec
   628		 *	=> 1 ccnf  = 1xdummy-Codec
   629		 *
   630		 * ex2)
   631		 * CPU0 --- Codec0	link : 5
   632		 * CPU1 --- Codec1	dais : 6
   633		 * CPU2 -/		ccnf : 1
   634		 * CPU3 -/
   635		 *
   636		 *	=> 5 links = 1xCPU-Codec + 3xCPU-dummy + 1xdummy-Codec
   637		 *	=> 6 DAIs  = 4xCPU + 2xCodec
   638		 *	=> 1 ccnf  = 1xdummy-Codec
   639		 *
   640		 * ex3)
   641		 * CPU0 --- Codec0	link : 6
   642		 * CPU1 -/		dais : 6
   643		 * CPU2 --- Codec1	ccnf : 2
   644		 * CPU3 -/
   645		 *
   646		 *	=> 6 links = 0xCPU-Codec + 4xCPU-dummy + 2xdummy-Codec
   647		 *	=> 6 DAIs  = 4xCPU + 2xCodec
   648		 *	=> 2 ccnf  = 2xdummy-Codec
   649		 *
   650		 * ex4)
   651		 * CPU0 --- Codec0 (convert-rate)	link : 3
   652		 * CPU1 --- Codec1			dais : 4
   653		 *					ccnf : 1
   654		 *
   655		 *	=> 3 links = 1xCPU-Codec + 1xCPU-dummy + 1xdummy-Codec
   656		 *	=> 4 DAIs  = 2xCPU + 2xCodec
   657		 *	=> 1 ccnf  = 1xdummy-Codec
   658		 */
   659		graph_for_each_link(priv, li,
   660				    graph_count_noml,
   661				    graph_count_dpcm);
   662		dev_dbg(dev, "link %d, dais %d, ccnf %d\n",
   663			li->link, li->dais, li->conf);
   664	}
   665	EXPORT_SYMBOL_GPL(graph_get_dais_count);
   666	
 > 667	int graph_card_probe(struct snd_soc_card *card)
   668	{
   669		struct asoc_simple_priv *priv = snd_soc_card_get_drvdata(card);
   670		int ret;
   671	
   672		ret = asoc_simple_init_hp(card, &priv->hp_jack, NULL);
   673		if (ret < 0)
   674			return ret;
   675	
   676		ret = asoc_simple_init_mic(card, &priv->mic_jack, NULL);
   677		if (ret < 0)
   678			return ret;
   679	
   680		return 0;
   681	}
   682	EXPORT_SYMBOL_GPL(graph_card_probe);
   683	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 65068 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20201002/4e0eab31/attachment-0001.gz>


More information about the Alsa-devel mailing list