From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [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'
Date: Fri, 11 Feb 2022 01:02:15 +0800 [thread overview]
Message-ID: <202202110022.6FQCY2cP-lkp@intel.com> (raw)
[-- 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
reply other threads:[~2022-02-10 17:02 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202202110022.6FQCY2cP-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.