Hi Kuninori,

[auto build test ERROR on robh/for-next]
[also build test ERROR on v4.9-rc7]
[cannot apply to glikely/devicetree/next asoc/for-next next-20161125]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Kuninori-Morimoto/ASoC-add-OF-graph-base-simple-card/20161128-111639
base:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: i386-randconfig-x002-201648 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   sound/soc/generic/simple-card-utils.c: In function 
'asoc_simple_card_parse_card_name':
   sound/soc/generic/simple-card-utils.c:92:8: error: implicit declaration of 
function 'snd_soc_of_parse_card_name_from_node' 
[-Werror=implicit-function-declaration]
     ret = snd_soc_of_parse_card_name_from_node(card, node, prop);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/soc/generic/simple-card-utils.c: In function 
'asoc_simple_card_parse_graph_dai':
>> sound/soc/generic/simple-card-utils.c:210:9: error: implicit declaration of 
>> function 'snd_soc_get_dai_name' [-Werror=implicit-function-declaration]
      ret = snd_soc_get_dai_name(&args, dai_name);
            ^~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +/snd_soc_get_dai_name +210 sound/soc/generic/simple-card-utils.c

    86          char prop[128];
    87          int ret;
    88  
    89          snprintf(prop, sizeof(prop), "%sname", prefix);
    90  
    91          /* Parse the card name from DT */
  > 92          ret = snd_soc_of_parse_card_name_from_node(card, node, prop);
    93          if (ret < 0)
    94                  return ret;
    95  
    96          if (!card->name && card->dai_link)
    97                  card->name = card->dai_link->name;
    98  
    99          return 0;
   100  }
   101  EXPORT_SYMBOL_GPL(asoc_simple_card_parse_card_name);
   102  
   103  int asoc_simple_card_parse_clk(struct device_node *node,
   104                                 struct device_node *dai_of_node,
   105                                 struct asoc_simple_dai *simple_dai)
   106  {
   107          struct clk *clk;
   108          u32 val;
   109  
   110          /*
   111           * Parse dai->sysclk come from "clocks = <&xxx>"
   112           * (if system has common clock)
   113           *  or "system-clock-frequency = <xxx>"
   114           *  or device's module clock.
   115           */
   116          clk = of_clk_get(node, 0);
   117          if (!IS_ERR(clk)) {
   118                  simple_dai->sysclk = clk_get_rate(clk);
   119                  simple_dai->clk = clk;
   120          } else if (!of_property_read_u32(node, 
"system-clock-frequency", &val)) {
   121                  simple_dai->sysclk = val;
   122          } else {
   123                  clk = of_clk_get(dai_of_node, 0);
   124                  if (!IS_ERR(clk))
   125                          simple_dai->sysclk = clk_get_rate(clk);
   126          }
   127  
   128          return 0;
   129  }
   130  EXPORT_SYMBOL_GPL(asoc_simple_card_parse_clk);
   131  
   132  int asoc_simple_card_parse_dai(struct device_node *node,
   133                                      struct device_node **dai_of_node,
   134                                      const char **dai_name,
   135                                      const char *list_name,
   136                                      const char *cells_name,
   137                                      int *is_single_link)
   138  {
   139          struct of_phandle_args args;
   140          int ret;
   141  
   142          if (!node)
   143                  return 0;
   144  
   145          /*
   146           * Get node via "sound-dai = <&phandle port>"
   147           * it will be used as xxx_of_node on soc_bind_dai_link()
   148           */
   149          ret = of_parse_phandle_with_args(node, list_name, cells_name, 
0, &args);
   150          if (ret)
   151                  return ret;
   152  
   153          /* Get dai->name */
   154          if (dai_name) {
   155                  ret = snd_soc_of_get_dai_name(node, dai_name);
   156                  if (ret < 0)
   157                          return ret;
   158          }
   159  
   160          *dai_of_node = args.np;
   161  
   162          if (is_single_link)
   163                  *is_single_link = !args.args_count;
   164  
   165          return 0;
   166  }
   167  EXPORT_SYMBOL_GPL(asoc_simple_card_parse_dai);
   168  
   169  int asoc_simple_card_parse_graph_dai(struct device_node *ep,
   170                                       struct device_node **dai_of_node,
   171                                       const char **dai_name)
   172  {
   173          struct device_node *node, *port, *endpoint;
   174          int i, id;
   175  
   176          if (!ep)
   177                  return 0;
   178  
   179          /*
   180           * of_graph_get_port_parent() will call
   181           * of_node_put(). So, call of_node_get() here
   182           */
   183          of_node_get(ep);
   184          node = of_graph_get_port_parent(ep);
   185  
   186          i = 0;
   187          id = -1;
   188          for_each_of_port(node, port) {
   189                  if (!of_graph_port_type_is_sound(port))
   190                          continue;
   191  
   192                  for_each_of_endpoint_in_port(port, endpoint) {
   193                          if (endpoint == ep)
   194                                  id = i;
   195                          i++;
   196                  }
   197          }
   198          if (id < 0)
   199                  return -ENODEV;
   200  
   201          /* Get dai->name */
   202          if (dai_name) {
   203                  struct of_phandle_args args;
   204                  int ret;
   205  
   206                  args.np         = node;
   207                  args.args[0]    = id;
   208                  args.args_count = (i > 1);
   209  
 > 210                  ret = snd_soc_get_dai_name(&args, dai_name);
   211                  if (ret < 0)
   212                          return ret;
   213          }

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to