All of lore.kernel.org
 help / color / mirror / Atom feed
* [thesofproject:pr/3415 1/26] sound/soc/sof/topology.c:60:44: error: initialization of 'const struct ipc_tplg_ops *' from incompatible pointer type 'const struct sof_ipc_tplg_ops * const'
@ 2022-02-10 17:02 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-02-10 17:02 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 16898 bytes --]

tree:   https://github.com/thesofproject/linux pr/3415
head:   482e28f06bef4e2b04194dbca6e71bddb6baa0e0
commit: dd22c425deaa842639786db96212ac90e94cda8d [1/26] Fixup! ASoC: SOF: IPC: Introduce IPC ops
config: x86_64-sof-customedconfig-sof-defconfig (https://download.01.org/0day-ci/archive/20220211/202202110022.6FQCY2cP-lkp(a)intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/thesofproject/linux/commit/dd22c425deaa842639786db96212ac90e94cda8d
        git remote add thesofproject https://github.com/thesofproject/linux
        git fetch --no-tags thesofproject pr/3415
        git checkout dd22c425deaa842639786db96212ac90e94cda8d
        # save the config file to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash sound/soc/sof/

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

Note: the thesofproject/pr/3415 HEAD 482e28f06bef4e2b04194dbca6e71bddb6baa0e0 builds fine.
      It only hurts bisectability.

All errors (new ones prefixed by >>):

   sound/soc/sof/topology.c: In function 'sof_update_ipc_object':
>> sound/soc/sof/topology.c:60:44: error: initialization of 'const struct ipc_tplg_ops *' from incompatible pointer type 'const struct sof_ipc_tplg_ops * const' [-Werror=incompatible-pointer-types]
      60 |  const struct ipc_tplg_ops *ipc_tplg_ops = sdev->ipc->ops->tplg;
         |                                            ^~~~
>> sound/soc/sof/topology.c:61:56: error: dereferencing pointer to incomplete type 'const struct ipc_tplg_ops'
      61 |  const struct sof_token_info *token_list = ipc_tplg_ops->token_list;
         |                                                        ^~
   sound/soc/sof/topology.c: In function 'set_up_volume_table':
   sound/soc/sof/topology.c:268:40: error: initialization of 'const struct ipc_tplg_ops *' from incompatible pointer type 'const struct sof_ipc_tplg_ops * const' [-Werror=incompatible-pointer-types]
     268 |  const struct ipc_tplg_ops *tplg_ops = sdev->ipc->ops->tplg;
         |                                        ^~~~
   sound/soc/sof/topology.c:270:14: error: dereferencing pointer to incomplete type 'const struct ipc_tplg_ops'
     270 |  if (tplg_ops->control->set_up_volume_table)
         |              ^~
   sound/soc/sof/topology.c: In function 'sof_copy_tuples':
   sound/soc/sof/topology.c:459:44: error: initialization of 'const struct ipc_tplg_ops *' from incompatible pointer type 'const struct sof_ipc_tplg_ops * const' [-Werror=incompatible-pointer-types]
     459 |  const struct ipc_tplg_ops *ipc_tplg_ops = sdev->ipc->ops->tplg;
         |                                            ^~~~
   sound/soc/sof/topology.c:460:56: error: dereferencing pointer to incomplete type 'const struct ipc_tplg_ops'
     460 |  const struct sof_token_info *token_list = ipc_tplg_ops->token_list;
         |                                                        ^~
   sound/soc/sof/topology.c: In function 'sof_control_unload':
   sound/soc/sof/topology.c:960:44: error: initialization of 'const struct ipc_tplg_ops *' from incompatible pointer type 'const struct sof_ipc_tplg_ops * const' [-Werror=incompatible-pointer-types]
     960 |  const struct ipc_tplg_ops *ipc_tplg_ops = sdev->ipc->ops->tplg;
         |                                            ^~~~
   sound/soc/sof/topology.c:966:18: error: dereferencing pointer to incomplete type 'const struct ipc_tplg_ops'
     966 |  if (ipc_tplg_ops->control_free) {
         |                  ^~
   sound/soc/sof/topology.c: In function 'sof_widget_parse_tokens':
   sound/soc/sof/topology.c:1091:44: error: initialization of 'const struct ipc_tplg_ops *' from incompatible pointer type 'const struct sof_ipc_tplg_ops * const' [-Werror=incompatible-pointer-types]
    1091 |  const struct ipc_tplg_ops *ipc_tplg_ops = sdev->ipc->ops->tplg;
         |                                            ^~~~
   sound/soc/sof/topology.c:1092:56: error: dereferencing pointer to incomplete type 'const struct ipc_tplg_ops'
    1092 |  const struct sof_token_info *token_list = ipc_tplg_ops->token_list;
         |                                                        ^~
   sound/soc/sof/topology.c: In function 'sof_widget_ready':
   sound/soc/sof/topology.c:1176:44: error: initialization of 'const struct ipc_tplg_ops *' from incompatible pointer type 'const struct sof_ipc_tplg_ops * const' [-Werror=incompatible-pointer-types]
    1176 |  const struct ipc_tplg_ops *ipc_tplg_ops = sdev->ipc->ops->tplg;
         |                                            ^~~~
   sound/soc/sof/topology.c:1177:61: error: dereferencing pointer to incomplete type 'const struct ipc_tplg_ops'
    1177 |  const struct ipc_tplg_widget_ops *widget_ops = ipc_tplg_ops->widget;
         |                                                             ^~
   sound/soc/sof/topology.c:1201:25: error: invalid use of undefined type 'struct ipc_tplg_widget_ops'
    1201 |  token_list = widget_ops[w->id].token_list;
         |                         ^
   sound/soc/sof/topology.c:1201:25: error: dereferencing pointer to incomplete type 'const struct ipc_tplg_widget_ops'
   sound/soc/sof/topology.c:1202:30: error: invalid use of undefined type 'struct ipc_tplg_widget_ops'
    1202 |  token_list_size = widget_ops[w->id].token_list_size;
         |                              ^
   sound/soc/sof/topology.c:1286:17: error: invalid use of undefined type 'struct ipc_tplg_widget_ops'
    1286 |   if (widget_ops[w->id].bind_event) {
         |                 ^
   sound/soc/sof/topology.c:1287:20: error: invalid use of undefined type 'struct ipc_tplg_widget_ops'
    1287 |    ret = widget_ops[w->id].bind_event(scomp, swidget,
         |                    ^
   sound/soc/sof/topology.c: In function 'sof_widget_unload':
   sound/soc/sof/topology.c:1326:44: error: initialization of 'const struct ipc_tplg_ops *' from incompatible pointer type 'const struct sof_ipc_tplg_ops * const' [-Werror=incompatible-pointer-types]
    1326 |  const struct ipc_tplg_ops *ipc_tplg_ops = sdev->ipc->ops->tplg;
         |                                            ^~~~
   sound/soc/sof/topology.c:1327:61: error: dereferencing pointer to incomplete type 'const struct ipc_tplg_ops'
    1327 |  const struct ipc_tplg_widget_ops *widget_ops = ipc_tplg_ops->widget;
         |                                                             ^~
   sound/soc/sof/topology.c:1384:16: error: invalid use of undefined type 'struct ipc_tplg_widget_ops'
    1384 |  if (widget_ops[swidget->id].ipc_free)
         |                ^
   sound/soc/sof/topology.c:1384:16: error: dereferencing pointer to incomplete type 'const struct ipc_tplg_widget_ops'
   sound/soc/sof/topology.c:1385:13: error: invalid use of undefined type 'struct ipc_tplg_widget_ops'
    1385 |   widget_ops[swidget->id].ipc_free(swidget);
         |             ^
   sound/soc/sof/topology.c: In function 'sof_link_load':
   sound/soc/sof/topology.c:1542:44: error: initialization of 'const struct ipc_tplg_ops *' from incompatible pointer type 'const struct sof_ipc_tplg_ops * const' [-Werror=incompatible-pointer-types]
    1542 |  const struct ipc_tplg_ops *ipc_tplg_ops = sdev->ipc->ops->tplg;
         |                                            ^~~~
   sound/soc/sof/topology.c:1543:56: error: dereferencing pointer to incomplete type 'const struct ipc_tplg_ops'
    1543 |  const struct sof_token_info *token_list = ipc_tplg_ops->token_list;
         |                                                        ^~
   sound/soc/sof/topology.c: In function 'sof_complete':
   sound/soc/sof/topology.c:1847:44: error: initialization of 'const struct ipc_tplg_ops *' from incompatible pointer type 'const struct sof_ipc_tplg_ops * const' [-Werror=incompatible-pointer-types]
    1847 |  const struct ipc_tplg_ops *ipc_tplg_ops = sdev->ipc->ops->tplg;
         |                                            ^~~~
   sound/soc/sof/topology.c:1848:61: error: dereferencing pointer to incomplete type 'const struct ipc_tplg_ops'
    1848 |  const struct ipc_tplg_widget_ops *widget_ops = ipc_tplg_ops->widget;
         |                                                             ^~
   sound/soc/sof/topology.c:1869:17: error: invalid use of undefined type 'struct ipc_tplg_widget_ops'
    1869 |   if (widget_ops[swidget->id].ipc_setup) {
         |                 ^
   sound/soc/sof/topology.c:1869:17: error: dereferencing pointer to incomplete type 'const struct ipc_tplg_widget_ops'
   sound/soc/sof/topology.c:1870:20: error: invalid use of undefined type 'struct ipc_tplg_widget_ops'
    1870 |    ret = widget_ops[swidget->id].ipc_setup(swidget);
         |                    ^
   cc1: some warnings being treated as errors


vim +60 sound/soc/sof/topology.c

311ce4fe7637d9 Liam Girdwood     2019-04-12   41  
1907d3493e3d89 Ranjani Sridharan 2021-12-02   42  /**
1907d3493e3d89 Ranjani Sridharan 2021-12-02   43   * sof_update_ipc_object - Parse multiple sets of tokens within the token array associated with the
1907d3493e3d89 Ranjani Sridharan 2021-12-02   44   *			    token ID.
1907d3493e3d89 Ranjani Sridharan 2021-12-02   45   * @scomp: pointer to SOC component
1907d3493e3d89 Ranjani Sridharan 2021-12-02   46   * @object: target IPC struct to save the parsed values
1907d3493e3d89 Ranjani Sridharan 2021-12-02   47   * @token_id: token ID for the token array to be searched
1907d3493e3d89 Ranjani Sridharan 2021-12-02   48   * @tuples: pointer to the tuples array
1907d3493e3d89 Ranjani Sridharan 2021-12-02   49   * @num_tuples: number of tuples in the tuples array
1907d3493e3d89 Ranjani Sridharan 2021-12-02   50   * @object_size: size of the object
1907d3493e3d89 Ranjani Sridharan 2021-12-02   51   * @token_instance_num: number of times the same @token_id needs to be parsed i.e. the function
1907d3493e3d89 Ranjani Sridharan 2021-12-02   52   *			looks for @token_instance_num of each token in the token array associated
1907d3493e3d89 Ranjani Sridharan 2021-12-02   53   *			with the @token_id
1907d3493e3d89 Ranjani Sridharan 2021-12-02   54   */
1907d3493e3d89 Ranjani Sridharan 2021-12-02   55  int sof_update_ipc_object(struct snd_soc_component *scomp, void *object, enum sof_tokens token_id,
1907d3493e3d89 Ranjani Sridharan 2021-12-02   56  			  struct snd_sof_tuple *tuples, int num_tuples,
1907d3493e3d89 Ranjani Sridharan 2021-12-02   57  			  size_t object_size, int token_instance_num)
1907d3493e3d89 Ranjani Sridharan 2021-12-02   58  {
1907d3493e3d89 Ranjani Sridharan 2021-12-02   59  	struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
1907d3493e3d89 Ranjani Sridharan 2021-12-02  @60  	const struct ipc_tplg_ops *ipc_tplg_ops = sdev->ipc->ops->tplg;
1907d3493e3d89 Ranjani Sridharan 2021-12-02  @61  	const struct sof_token_info *token_list = ipc_tplg_ops->token_list;
1907d3493e3d89 Ranjani Sridharan 2021-12-02   62  	const struct sof_topology_token *tokens;
1907d3493e3d89 Ranjani Sridharan 2021-12-02   63  	int i, j;
1907d3493e3d89 Ranjani Sridharan 2021-12-02   64  
1907d3493e3d89 Ranjani Sridharan 2021-12-02   65  	if (token_list[token_id].count < 0) {
1907d3493e3d89 Ranjani Sridharan 2021-12-02   66  		dev_err(scomp->dev, "Invalid token count for token ID: %d\n", token_id);
1907d3493e3d89 Ranjani Sridharan 2021-12-02   67  		return -EINVAL;
1907d3493e3d89 Ranjani Sridharan 2021-12-02   68  	}
1907d3493e3d89 Ranjani Sridharan 2021-12-02   69  
1907d3493e3d89 Ranjani Sridharan 2021-12-02   70  	/* No tokens to match */
1907d3493e3d89 Ranjani Sridharan 2021-12-02   71  	if (!token_list[token_id].count)
1907d3493e3d89 Ranjani Sridharan 2021-12-02   72  		return 0;
1907d3493e3d89 Ranjani Sridharan 2021-12-02   73  
1907d3493e3d89 Ranjani Sridharan 2021-12-02   74  	tokens = token_list[token_id].tokens;
1907d3493e3d89 Ranjani Sridharan 2021-12-02   75  	if (!tokens) {
1907d3493e3d89 Ranjani Sridharan 2021-12-02   76  		dev_err(scomp->dev, "Invalid tokens for token id: %d\n", token_id);
1907d3493e3d89 Ranjani Sridharan 2021-12-02   77  		return -EINVAL;
1907d3493e3d89 Ranjani Sridharan 2021-12-02   78  	}
1907d3493e3d89 Ranjani Sridharan 2021-12-02   79  
1907d3493e3d89 Ranjani Sridharan 2021-12-02   80  	for (i = 0; i < token_list[token_id].count; i++) {
1907d3493e3d89 Ranjani Sridharan 2021-12-02   81  		int offset = 0;
1907d3493e3d89 Ranjani Sridharan 2021-12-02   82  		int num_tokens_matched = 0;
1907d3493e3d89 Ranjani Sridharan 2021-12-02   83  
1907d3493e3d89 Ranjani Sridharan 2021-12-02   84  		for (j = 0; j < num_tuples; j++) {
1907d3493e3d89 Ranjani Sridharan 2021-12-02   85  			if (tokens[i].token == tuples[j].token) {
1907d3493e3d89 Ranjani Sridharan 2021-12-02   86  				switch (tokens[i].type) {
1907d3493e3d89 Ranjani Sridharan 2021-12-02   87  				case SND_SOC_TPLG_TUPLE_TYPE_WORD:
1907d3493e3d89 Ranjani Sridharan 2021-12-02   88  				{
1907d3493e3d89 Ranjani Sridharan 2021-12-02   89  					u32 *val = (u32 *)((u8 *)object + tokens[i].offset +
1907d3493e3d89 Ranjani Sridharan 2021-12-02   90  							   offset);
1907d3493e3d89 Ranjani Sridharan 2021-12-02   91  
1907d3493e3d89 Ranjani Sridharan 2021-12-02   92  					*val = tuples[j].value.v;
1907d3493e3d89 Ranjani Sridharan 2021-12-02   93  					break;
1907d3493e3d89 Ranjani Sridharan 2021-12-02   94  				}
1907d3493e3d89 Ranjani Sridharan 2021-12-02   95  				case SND_SOC_TPLG_TUPLE_TYPE_SHORT:
1907d3493e3d89 Ranjani Sridharan 2021-12-02   96  				case SND_SOC_TPLG_TUPLE_TYPE_BOOL:
1907d3493e3d89 Ranjani Sridharan 2021-12-02   97  				{
1907d3493e3d89 Ranjani Sridharan 2021-12-02   98  					u16 *val = (u16 *)((u8 *)object + tokens[i].offset +
1907d3493e3d89 Ranjani Sridharan 2021-12-02   99  							    offset);
1907d3493e3d89 Ranjani Sridharan 2021-12-02  100  
1907d3493e3d89 Ranjani Sridharan 2021-12-02  101  					*val = (u16)tuples[j].value.v;
1907d3493e3d89 Ranjani Sridharan 2021-12-02  102  					break;
1907d3493e3d89 Ranjani Sridharan 2021-12-02  103  				}
1907d3493e3d89 Ranjani Sridharan 2021-12-02  104  				case SND_SOC_TPLG_TUPLE_TYPE_STRING:
1907d3493e3d89 Ranjani Sridharan 2021-12-02  105  				{
1907d3493e3d89 Ranjani Sridharan 2021-12-02  106  					if (!tokens[i].get_token) {
1907d3493e3d89 Ranjani Sridharan 2021-12-02  107  						dev_err(scomp->dev,
1907d3493e3d89 Ranjani Sridharan 2021-12-02  108  							"get_token not defined for token %d in %s\n",
1907d3493e3d89 Ranjani Sridharan 2021-12-02  109  							tokens[i].token, token_list[token_id].name);
1907d3493e3d89 Ranjani Sridharan 2021-12-02  110  						return -EINVAL;
1907d3493e3d89 Ranjani Sridharan 2021-12-02  111  					}
1907d3493e3d89 Ranjani Sridharan 2021-12-02  112  
1907d3493e3d89 Ranjani Sridharan 2021-12-02  113  					tokens[i].get_token((void *)tuples[j].value.s, object,
1907d3493e3d89 Ranjani Sridharan 2021-12-02  114  							    tokens[i].offset + offset);
1907d3493e3d89 Ranjani Sridharan 2021-12-02  115  				}
1907d3493e3d89 Ranjani Sridharan 2021-12-02  116  				default:
1907d3493e3d89 Ranjani Sridharan 2021-12-02  117  					break;
1907d3493e3d89 Ranjani Sridharan 2021-12-02  118  				}
1907d3493e3d89 Ranjani Sridharan 2021-12-02  119  
1907d3493e3d89 Ranjani Sridharan 2021-12-02  120  				num_tokens_matched++;
1907d3493e3d89 Ranjani Sridharan 2021-12-02  121  
1907d3493e3d89 Ranjani Sridharan 2021-12-02  122  				/* found all required sets of current token. Move to the next one */
1907d3493e3d89 Ranjani Sridharan 2021-12-02  123  				if (!(num_tokens_matched % token_instance_num))
1907d3493e3d89 Ranjani Sridharan 2021-12-02  124  					break;
1907d3493e3d89 Ranjani Sridharan 2021-12-02  125  
1907d3493e3d89 Ranjani Sridharan 2021-12-02  126  				/* move to the next object */
1907d3493e3d89 Ranjani Sridharan 2021-12-02  127  				offset += object_size;
1907d3493e3d89 Ranjani Sridharan 2021-12-02  128  			}
1907d3493e3d89 Ranjani Sridharan 2021-12-02  129  		}
1907d3493e3d89 Ranjani Sridharan 2021-12-02  130  	}
1907d3493e3d89 Ranjani Sridharan 2021-12-02  131  
1907d3493e3d89 Ranjani Sridharan 2021-12-02  132  	return 0;
1907d3493e3d89 Ranjani Sridharan 2021-12-02  133  }
1907d3493e3d89 Ranjani Sridharan 2021-12-02  134  

:::::: The code at line 60 was first introduced by commit
:::::: 1907d3493e3d89ee9a66b2b3f33b8a9104f15826 ASoC: SOF: topology: Add helper function for processing tuple arrays

:::::: TO: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
:::::: CC: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-02-10 17:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-10 17:02 [thesofproject:pr/3415 1/26] sound/soc/sof/topology.c:60:44: error: initialization of 'const struct ipc_tplg_ops *' from incompatible pointer type 'const struct sof_ipc_tplg_ops * const' kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.