tree:
https://github.com/morimoto/linux fw-cleanup-2020-11-10-v1
head: 9c69461b4cf4ebccbe80471cd38a70320d9a27ee
commit: 22ad805d527057b9972b3e64dc7fd15674edc0a9 [71/78] simple-card-utils: prepare for
Multi-CPU/Codec support
config: x86_64-randconfig-a011-20201110 (attached as .config)
compiler: clang version 12.0.0 (
https://github.com/llvm/llvm-project
4d81c8adb6ed9840257f6cb6b93f60856d422a15)
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
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
#
https://github.com/morimoto/linux/commit/22ad805d527057b9972b3e64dc7fd156...
git remote add morimoto-linux
https://github.com/morimoto/linux
git fetch --no-tags morimoto-linux fw-cleanup-2020-11-10-v1
git checkout 22ad805d527057b9972b3e64dc7fd15674edc0a9
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
> sound/soc/generic/audio-graph-card.c:265:14: error: no member
named 'cpu_dai' in 'struct simple_dai_props'
dai_props->cpu_dai = &priv->dais[li->dais++];
~~~~~~~~~ ^
> sound/soc/generic/audio-graph-card.c:310:14: error: no member
named 'codec_dai' in 'struct simple_dai_props'
dai_props->codec_dai = &priv->dais[li->dais++];
~~~~~~~~~ ^
sound/soc/generic/audio-graph-card.c:394:13: error: no member named 'cpu_dai'
in 'struct simple_dai_props'
dai_props->cpu_dai = &priv->dais[li->dais++];
~~~~~~~~~ ^
sound/soc/generic/audio-graph-card.c:396:13: error: no member named 'codec_dai'
in 'struct simple_dai_props'
dai_props->codec_dai = &priv->dais[li->dais++];
~~~~~~~~~ ^
4 errors generated.
vim +265 sound/soc/generic/audio-graph-card.c
4346a745df4107d Kuninori Morimoto 2019-03-18 211
e59289cda8dec01 Kuninori Morimoto 2019-03-20 212 static int
graph_dai_link_of_dpcm(struct asoc_simple_priv *priv,
56eb818191fbe4b Kuninori Morimoto 2018-12-14 213 struct device_node *cpu_ep,
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 214 struct device_node *codec_ep,
dd98fbc558a0357 Kuninori Morimoto 2018-12-20 215 struct link_info *li,
dd98fbc558a0357 Kuninori Morimoto 2018-12-20 216 int dup_codec)
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 217 {
e59289cda8dec01 Kuninori Morimoto 2019-03-20 218 struct device *dev =
simple_priv_to_dev(priv);
77e9dd1b66a49b8 Sameer Pujar 2020-11-02 219 struct snd_soc_card *card =
simple_priv_to_card(priv);
e59289cda8dec01 Kuninori Morimoto 2019-03-20 220 struct snd_soc_dai_link *dai_link =
simple_priv_to_link(priv, li->link);
e59289cda8dec01 Kuninori Morimoto 2019-03-20 221 struct simple_dai_props *dai_props
= simple_priv_to_props(priv, li->link);
dd98fbc558a0357 Kuninori Morimoto 2018-12-20 222 struct device_node *top =
dev->of_node;
1e4771a62fd7a6b Kuninori Morimoto 2018-12-20 223 struct device_node *ep = li->cpu
? cpu_ep : codec_ep;
dd98fbc558a0357 Kuninori Morimoto 2018-12-20 224 struct device_node *port;
dd98fbc558a0357 Kuninori Morimoto 2018-12-20 225 struct device_node *ports;
dd98fbc558a0357 Kuninori Morimoto 2018-12-20 226 struct device_node *node;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 227 struct asoc_simple_dai *dai;
f107294c6422e77 Kuninori Morimoto 2019-06-06 228 struct snd_soc_dai_link_component
*cpus = dai_link->cpus;
66164a4da30dd29 Kuninori Morimoto 2018-12-14 229 struct snd_soc_dai_link_component
*codecs = dai_link->codecs;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 230 int ret;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 231
ca2f809d131fdfc Sameer Pujar 2020-11-02 232 /*
ca2f809d131fdfc Sameer Pujar 2020-11-02 233 * Codec endpoint can be NULL for
pluggable audio HW.
ca2f809d131fdfc Sameer Pujar 2020-11-02 234 * Platform DT can populate the
Codec endpoint depending on the
ca2f809d131fdfc Sameer Pujar 2020-11-02 235 * plugged HW.
ca2f809d131fdfc Sameer Pujar 2020-11-02 236 */
ca2f809d131fdfc Sameer Pujar 2020-11-02 237 if (!li->cpu &&
!codec_ep)
ca2f809d131fdfc Sameer Pujar 2020-11-02 238 return 0;
ca2f809d131fdfc Sameer Pujar 2020-11-02 239
dd98fbc558a0357 Kuninori Morimoto 2018-12-20 240 /* Do it all CPU endpoint, and 1st
Codec endpoint */
dd98fbc558a0357 Kuninori Morimoto 2018-12-20 241 if (!li->cpu &&
dup_codec)
dd98fbc558a0357 Kuninori Morimoto 2018-12-20 242 return 0;
dd98fbc558a0357 Kuninori Morimoto 2018-12-20 243
dd98fbc558a0357 Kuninori Morimoto 2018-12-20 244 port = of_get_parent(ep);
dd98fbc558a0357 Kuninori Morimoto 2018-12-20 245 ports = of_get_parent(port);
dd98fbc558a0357 Kuninori Morimoto 2018-12-20 246 node =
of_graph_get_port_parent(ep);
dd98fbc558a0357 Kuninori Morimoto 2018-12-20 247
1e4771a62fd7a6b Kuninori Morimoto 2018-12-20 248 li->link++;
1e4771a62fd7a6b Kuninori Morimoto 2018-12-20 249
1e4771a62fd7a6b Kuninori Morimoto 2018-12-20 250 dev_dbg(dev, "link_of DPCM
(%pOF)\n", ep);
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 251
1e4771a62fd7a6b Kuninori Morimoto 2018-12-20 252 if (li->cpu) {
8f7f298a333761a Kuninori Morimoto 2019-03-20 253 int is_single_links = 0;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 254
9764beeae7cc477 Kuninori Morimoto 2019-10-15 255 /* Codec is dummy */
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 256 codecs->of_node = NULL;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 257 codecs->dai_name =
"snd-soc-dummy-dai";
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 258 codecs->name =
"snd-soc-dummy";
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 259
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 260 /* FE settings */
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 261 dai_link->dynamic = 1;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 262 dai_link->dpcm_merged_format =
1;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 263
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 264 dai =
1e4771a62fd7a6b Kuninori Morimoto 2018-12-20 @265 dai_props->cpu_dai =
&priv->dais[li->dais++];
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 266
ad11e59f52d6fc7 Kuninori Morimoto 2019-03-20 267 ret = asoc_simple_parse_cpu(ep,
dai_link, &is_single_links);
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 268 if (ret)
aa2e362cb6b3f5c Wen Yang 2019-07-10 269 goto out_put_node;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 270
22ad805d527057b Kuninori Morimoto 2020-11-09 271 ret =
asoc_simple_parse_clk_cpu(dev, ep, dai_link, dai_props, 0);
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 272 if (ret < 0)
aa2e362cb6b3f5c Wen Yang 2019-07-10 273 goto out_put_node;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 274
ad11e59f52d6fc7 Kuninori Morimoto 2019-03-20 275 ret =
asoc_simple_set_dailink_name(dev, dai_link,
7cdd350b6a98ce0 Sameer Pujar 2020-11-02 276 "fe.%pOFP.%s",
7cdd350b6a98ce0 Sameer Pujar 2020-11-02 277 cpus->of_node,
f107294c6422e77 Kuninori Morimoto 2019-06-06 278 cpus->dai_name);
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 279 if (ret < 0)
aa2e362cb6b3f5c Wen Yang 2019-07-10 280 goto out_put_node;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 281
77e9dd1b66a49b8 Sameer Pujar 2020-11-02 282 /*
77e9dd1b66a49b8 Sameer Pujar 2020-11-02 283 * In BE<->BE connections it
is not required to create
77e9dd1b66a49b8 Sameer Pujar 2020-11-02 284 * PCM devices at CPU end of the
dai link and thus 'no_pcm'
77e9dd1b66a49b8 Sameer Pujar 2020-11-02 285 * flag needs to be set. It is
useful when there are many
77e9dd1b66a49b8 Sameer Pujar 2020-11-02 286 * BE components and some of these
have to be connected to
77e9dd1b66a49b8 Sameer Pujar 2020-11-02 287 * form a valid audio path.
77e9dd1b66a49b8 Sameer Pujar 2020-11-02 288 *
77e9dd1b66a49b8 Sameer Pujar 2020-11-02 289 * For example: FE <-> BE1
<-> BE2 <-> ... <-> BEn where
77e9dd1b66a49b8 Sameer Pujar 2020-11-02 290 * there are 'n' BE
components in the path.
77e9dd1b66a49b8 Sameer Pujar 2020-11-02 291 */
77e9dd1b66a49b8 Sameer Pujar 2020-11-02 292 if (card->component_chaining
&& !soc_component_is_pcm(cpus))
77e9dd1b66a49b8 Sameer Pujar 2020-11-02 293 dai_link->no_pcm = 1;
77e9dd1b66a49b8 Sameer Pujar 2020-11-02 294
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 295 /* card->num_links includes
Codec */
ad11e59f52d6fc7 Kuninori Morimoto 2019-03-20 296
asoc_simple_canonicalize_cpu(dai_link, is_single_links);
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 297 } else {
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 298 struct snd_soc_codec_conf *cconf;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 299
9764beeae7cc477 Kuninori Morimoto 2019-10-15 300 /* CPU is dummy */
f107294c6422e77 Kuninori Morimoto 2019-06-06 301 cpus->of_node = NULL;
f107294c6422e77 Kuninori Morimoto 2019-06-06 302 cpus->dai_name =
"snd-soc-dummy-dai";
f107294c6422e77 Kuninori Morimoto 2019-06-06 303 cpus->name =
"snd-soc-dummy";
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 304
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 305 /* BE settings */
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 306 dai_link->no_pcm = 1;
629f75440a68220 Kuninori Morimoto 2019-03-20 307 dai_link->be_hw_params_fixup =
asoc_simple_be_hw_params_fixup;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 308
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 309 dai =
1e4771a62fd7a6b Kuninori Morimoto 2018-12-20 @310 dai_props->codec_dai =
&priv->dais[li->dais++];
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 311
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 312 cconf =
1e4771a62fd7a6b Kuninori Morimoto 2018-12-20 313 dai_props->codec_conf =
&priv->codec_conf[li->conf++];
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 314
ad11e59f52d6fc7 Kuninori Morimoto 2019-03-20 315 ret = asoc_simple_parse_codec(ep,
dai_link);
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 316 if (ret < 0)
aa2e362cb6b3f5c Wen Yang 2019-07-10 317 goto out_put_node;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 318
22ad805d527057b Kuninori Morimoto 2020-11-09 319 ret =
asoc_simple_parse_clk_codec(dev, ep, dai_link, dai_props, 0);
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 320 if (ret < 0)
aa2e362cb6b3f5c Wen Yang 2019-07-10 321 goto out_put_node;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 322
ad11e59f52d6fc7 Kuninori Morimoto 2019-03-20 323 ret =
asoc_simple_set_dailink_name(dev, dai_link,
7cdd350b6a98ce0 Sameer Pujar 2020-11-02 324 "be.%pOFP.%s",
7cdd350b6a98ce0 Sameer Pujar 2020-11-02 325 codecs->of_node,
66164a4da30dd29 Kuninori Morimoto 2018-12-14 326 codecs->dai_name);
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 327 if (ret < 0)
aa2e362cb6b3f5c Wen Yang 2019-07-10 328 goto out_put_node;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 329
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 330 /* check "prefix" from
top node */
66164a4da30dd29 Kuninori Morimoto 2018-12-14 331 snd_soc_of_parse_node_prefix(top,
cconf, codecs->of_node,
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 332 "prefix");
66164a4da30dd29 Kuninori Morimoto 2018-12-14 333 snd_soc_of_parse_node_prefix(node,
cconf, codecs->of_node,
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 334 PREFIX
"prefix");
66164a4da30dd29 Kuninori Morimoto 2018-12-14 335
snd_soc_of_parse_node_prefix(ports, cconf, codecs->of_node,
66164a4da30dd29 Kuninori Morimoto 2018-12-14 336 "prefix");
66164a4da30dd29 Kuninori Morimoto 2018-12-14 337 snd_soc_of_parse_node_prefix(port,
cconf, codecs->of_node,
66164a4da30dd29 Kuninori Morimoto 2018-12-14 338 "prefix");
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 339 }
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 340
4346a745df4107d Kuninori Morimoto 2019-03-18 341 graph_parse_convert(dev, ep,
&dai_props->adata);
4346a745df4107d Kuninori Morimoto 2019-03-18 342 graph_parse_mclk_fs(top, ep,
dai_props);
4346a745df4107d Kuninori Morimoto 2019-03-18 343
ad11e59f52d6fc7 Kuninori Morimoto 2019-03-20 344
asoc_simple_canonicalize_platform(dai_link);
fe7ed4dec2e6289 Kuninori Morimoto 2019-01-21 345
ad11e59f52d6fc7 Kuninori Morimoto 2019-03-20 346 ret = asoc_simple_parse_tdm(ep,
dai);
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 347 if (ret)
aa2e362cb6b3f5c Wen Yang 2019-07-10 348 goto out_put_node;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 349
ad11e59f52d6fc7 Kuninori Morimoto 2019-03-20 350 ret = asoc_simple_parse_daifmt(dev,
cpu_ep, codec_ep,
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 351 NULL,
&dai_link->dai_fmt);
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 352 if (ret < 0)
aa2e362cb6b3f5c Wen Yang 2019-07-10 353 goto out_put_node;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 354
25612477d20b522 Pierre-Louis Bossart 2020-07-07 355
snd_soc_dai_link_set_capabilities(dai_link);
25612477d20b522 Pierre-Louis Bossart 2020-07-07 356
97fe6ca4146583d Kuninori Morimoto 2018-12-20 357 dai_link->ops =
&graph_ops;
ec44b99a0aeb61e Sameer Pujar 2020-11-02 358
ec44b99a0aeb61e Sameer Pujar 2020-11-02 359 /* Use custom snd_soc_ops callbacks
if available */
ec44b99a0aeb61e Sameer Pujar 2020-11-02 360 if (priv->ops)
ec44b99a0aeb61e Sameer Pujar 2020-11-02 361 dai_link->ops = priv->ops;
ec44b99a0aeb61e Sameer Pujar 2020-11-02 362
ad934ca80108434 Kuninori Morimoto 2019-03-20 363 dai_link->init =
asoc_simple_dai_init;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 364
aa2e362cb6b3f5c Wen Yang 2019-07-10 365 out_put_node:
aa2e362cb6b3f5c Wen Yang 2019-07-10 366 of_node_put(ports);
aa2e362cb6b3f5c Wen Yang 2019-07-10 367 of_node_put(port);
aa2e362cb6b3f5c Wen Yang 2019-07-10 368 of_node_put(node);
aa2e362cb6b3f5c Wen Yang 2019-07-10 369 return ret;
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 370 }
ae3cb5790906b5c Kuninori Morimoto 2018-12-14 371
:::::: The code at line 265 was first introduced by commit
:::::: 1e4771a62fd7a6bab058529c450d3d87a8bd5b1a ASoC: audio-graph-card: add link_info
:::::: TO: Kuninori Morimoto <kuninori.morimoto.gx(a)renesas.com>
:::::: CC: Mark Brown <broonie(a)kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org