[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