tree:
https://github.com/Freescale/linux-fslc pr/416
head: 915e71b823c877d351de1cbe650344ef6eace94b
commit: a452c44357d9c68c27c39327e50b41e4b6cffe8d [15428/20667] MLK-25015: sound: soc:
codecs: pcm512x: set input sclk
config: parisc-allyesconfig (attached as .config)
compiler: hppa-linux-gcc (GCC) 11.2.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/Freescale/linux-fslc/commit/a452c44357d9c68c27c39327e5...
git remote add freescale-fslc
https://github.com/Freescale/linux-fslc
git fetch --no-tags freescale-fslc pr/416
git checkout a452c44357d9c68c27c39327e50b41e4b6cffe8d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=parisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
226 | (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \
| ^~
sound/soc/fsl/imx-pcm512x.c:246:21: note: in expansion of macro 'do_div'
246 | if (do_div(sample_rate, 8000)) {
| ^~~~~~
In file included from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/module.h:9,
from sound/soc/fsl/imx-pcm512x.c:13:
include/asm-generic/div64.h:239:32: warning: right shift count >= width of type
[-Wshift-count-overflow]
239 | } else if (likely(((n) >> 32) == 0)) { \
| ^~
include/linux/compiler.h:77:45: note: in definition of macro 'likely'
77 | # define likely(x) __builtin_expect(!!(x), 1)
| ^
sound/soc/fsl/imx-pcm512x.c:246:21: note: in expansion of macro 'do_div'
246 | if (do_div(sample_rate, 8000)) {
| ^~~~~~
In file included from ./arch/parisc/include/generated/asm/div64.h:1,
from include/linux/kernel.h:18,
from include/linux/list.h:9,
from include/linux/module.h:9,
from sound/soc/fsl/imx-pcm512x.c:13:
include/asm-generic/div64.h:243:36: error: passing argument 1 of '__div64_32'
from incompatible pointer type [-Werror=incompatible-pointer-types]
243 | __rem = __div64_32(&(n), __base); \
| ^~~~
| |
| unsigned int *
sound/soc/fsl/imx-pcm512x.c:246:21: note: in expansion of macro 'do_div'
246 | if (do_div(sample_rate, 8000)) {
| ^~~~~~
include/asm-generic/div64.h:217:38: note: expected 'uint64_t *' {aka 'long
long unsigned int *'} but argument is of type 'unsigned int *'
217 | extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
| ~~~~~~~~~~^~~~~~~~
In file included from sound/soc/fsl/imx-pcm512x.c:21:
sound/soc/fsl/imx-pcm512x.c: At top level:
sound/soc/fsl/imx-pcm512x.c:357:37: warning: initialized field overwritten
[-Woverride-init]
357 | SND_SOC_DAILINK_REG(hifi),
| ^~~~
include/sound/soc.h:919:27: note: in definition of macro
'SND_SOC_DAILINK_REG3'
919 | .codecs = codec, \
| ^~~~~
include/sound/soc.h:924:53: note: in expansion of macro 'SND_SOC_DAILINK_REG1'
924 | #define SND_SOC_DAILINK_REGx(_1, _2, _3, func, ...) func
| ^~~~
sound/soc/fsl/imx-pcm512x.c:357:17: note: in expansion of macro
'SND_SOC_DAILINK_REG'
357 | SND_SOC_DAILINK_REG(hifi),
| ^~~~~~~~~~~~~~~~~~~
sound/soc/fsl/imx-pcm512x.c:357:37: note: (near initialization for
'imx_pcm512x_dai[0].codecs')
357 | SND_SOC_DAILINK_REG(hifi),
| ^~~~
include/sound/soc.h:919:27: note: in definition of macro
'SND_SOC_DAILINK_REG3'
919 | .codecs = codec, \
| ^~~~~
include/sound/soc.h:924:53: note: in expansion of macro 'SND_SOC_DAILINK_REG1'
924 | #define SND_SOC_DAILINK_REGx(_1, _2, _3, func, ...) func
| ^~~~
sound/soc/fsl/imx-pcm512x.c:357:17: note: in expansion of macro
'SND_SOC_DAILINK_REG'
357 | SND_SOC_DAILINK_REG(hifi),
| ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/list.h:9,
from include/linux/module.h:9,
from sound/soc/fsl/imx-pcm512x.c:13:
include/linux/kernel.h:47:25: warning: initialized field overwritten [-Woverride-init]
47 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) +
__must_be_array(arr))
| ^
include/sound/soc.h:920:27: note: in expansion of macro 'ARRAY_SIZE'
920 | .num_codecs = ARRAY_SIZE(codec), \
| ^~~~~~~~~~
include/sound/soc.h:914:42: note: in expansion of macro 'SND_SOC_DAILINK_REG3'
914 | #define SND_SOC_DAILINK_REG1(name) SND_SOC_DAILINK_REG3(name##_cpus,
name##_codecs, name##_platforms)
| ^~~~~~~~~~~~~~~~~~~~
include/sound/soc.h:924:53: note: in expansion of macro 'SND_SOC_DAILINK_REG1'
924 | #define SND_SOC_DAILINK_REGx(_1, _2, _3, func, ...) func
| ^~~~
include/sound/soc.h:926:9: note: in expansion of macro 'SND_SOC_DAILINK_REGx'
926 | SND_SOC_DAILINK_REGx(__VA_ARGS__, \
| ^~~~~~~~~~~~~~~~~~~~
sound/soc/fsl/imx-pcm512x.c:357:17: note: in expansion of macro
'SND_SOC_DAILINK_REG'
357 | SND_SOC_DAILINK_REG(hifi),
| ^~~~~~~~~~~~~~~~~~~
include/linux/kernel.h:47:25: note: (near initialization for
'imx_pcm512x_dai[0].num_codecs')
47 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) +
__must_be_array(arr))
| ^
include/sound/soc.h:920:27: note: in expansion of macro 'ARRAY_SIZE'
920 | .num_codecs = ARRAY_SIZE(codec), \
| ^~~~~~~~~~
include/sound/soc.h:914:42: note: in expansion of macro 'SND_SOC_DAILINK_REG3'
914 | #define SND_SOC_DAILINK_REG1(name) SND_SOC_DAILINK_REG3(name##_cpus,
name##_codecs, name##_platforms)
| ^~~~~~~~~~~~~~~~~~~~
include/sound/soc.h:924:53: note: in expansion of macro 'SND_SOC_DAILINK_REG1'
924 | #define SND_SOC_DAILINK_REGx(_1, _2, _3, func, ...) func
| ^~~~
include/sound/soc.h:926:9: note: in expansion of macro 'SND_SOC_DAILINK_REGx'
926 | SND_SOC_DAILINK_REGx(__VA_ARGS__, \
| ^~~~~~~~~~~~~~~~~~~~
sound/soc/fsl/imx-pcm512x.c:357:17: note: in expansion of macro
'SND_SOC_DAILINK_REG'
357 | SND_SOC_DAILINK_REG(hifi),
| ^~~~~~~~~~~~~~~~~~~
sound/soc/fsl/imx-pcm512x.c: In function 'imx_pcm512x_probe':
> sound/soc/fsl/imx-pcm512x.c:429:9: warning: 'memcpy'
reading 360 bytes from a region of size 120 [-Wstringop-overread]
429 |
memcpy(data->dai_link, imx_pcm512x_dai,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
430 | sizeof(struct snd_soc_dai_link) *
ARRAY_SIZE(data->dai_link));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/fsl/imx-pcm512x.c:348:32: note: source object 'imx_pcm512x_dai' of
size 120
348 | static struct snd_soc_dai_link imx_pcm512x_dai[] = {
| ^~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for PCIE_MOBIVEIL_HOST
Depends on PCI && PCI_MSI_IRQ_DOMAIN
Selected by
- PCIE_MOBIVEIL_PLAT && PCI && (ARCH_ZYNQMP || COMPILE_TEST &&
OF
vim +/memcpy +429 sound/soc/fsl/imx-pcm512x.c
8efc3af011c524 Adrian Alonso 2020-11-09 360
8efc3af011c524 Adrian Alonso 2020-11-09 361 static int imx_pcm512x_probe(struct
platform_device *pdev)
8efc3af011c524 Adrian Alonso 2020-11-09 362 {
8efc3af011c524 Adrian Alonso 2020-11-09 363 struct device_node *bitclkmaster,
*framemaster = NULL;
8efc3af011c524 Adrian Alonso 2020-11-09 364 struct device_node *cpu_np, *codec_np =
NULL;
8efc3af011c524 Adrian Alonso 2020-11-09 365 struct device_node *np =
pdev->dev.of_node;
8efc3af011c524 Adrian Alonso 2020-11-09 366 struct platform_device *cpu_pdev = NULL;
8efc3af011c524 Adrian Alonso 2020-11-09 367 struct snd_soc_dai_link_component *comp;
8efc3af011c524 Adrian Alonso 2020-11-09 368 struct imx_pcm512x_data *data;
8efc3af011c524 Adrian Alonso 2020-11-09 369 struct i2c_client *codec_dev;
8efc3af011c524 Adrian Alonso 2020-11-09 370 int ret;
8efc3af011c524 Adrian Alonso 2020-11-09 371
8efc3af011c524 Adrian Alonso 2020-11-09 372 data = devm_kzalloc(&pdev->dev,
sizeof(*data), GFP_KERNEL);
8efc3af011c524 Adrian Alonso 2020-11-09 373 if (!data)
8efc3af011c524 Adrian Alonso 2020-11-09 374 return -ENOMEM;
8efc3af011c524 Adrian Alonso 2020-11-09 375
8efc3af011c524 Adrian Alonso 2020-11-09 376 comp = devm_kzalloc(&pdev->dev, 3 *
sizeof(*comp), GFP_KERNEL);
8efc3af011c524 Adrian Alonso 2020-11-09 377 if (!comp)
8efc3af011c524 Adrian Alonso 2020-11-09 378 return -ENOMEM;
8efc3af011c524 Adrian Alonso 2020-11-09 379
8efc3af011c524 Adrian Alonso 2020-11-09 380 cpu_np = of_parse_phandle(np,
"audio-cpu", 0);
8efc3af011c524 Adrian Alonso 2020-11-09 381 if (!cpu_np) {
8efc3af011c524 Adrian Alonso 2020-11-09 382 dev_err(&pdev->dev, "audio dai
phandle missing or invalid\n");
8efc3af011c524 Adrian Alonso 2020-11-09 383 ret = -EINVAL;
8efc3af011c524 Adrian Alonso 2020-11-09 384 goto fail;
8efc3af011c524 Adrian Alonso 2020-11-09 385 }
8efc3af011c524 Adrian Alonso 2020-11-09 386
8efc3af011c524 Adrian Alonso 2020-11-09 387 codec_np = of_parse_phandle(np,
"audio-codec", 0);
8efc3af011c524 Adrian Alonso 2020-11-09 388 if (!codec_np) {
8efc3af011c524 Adrian Alonso 2020-11-09 389 dev_err(&pdev->dev, "audio
codec phandle missing or invalid\n");
8efc3af011c524 Adrian Alonso 2020-11-09 390 ret = -EINVAL;
8efc3af011c524 Adrian Alonso 2020-11-09 391 goto fail;
8efc3af011c524 Adrian Alonso 2020-11-09 392 }
8efc3af011c524 Adrian Alonso 2020-11-09 393
8efc3af011c524 Adrian Alonso 2020-11-09 394 cpu_pdev = of_find_device_by_node(cpu_np);
8efc3af011c524 Adrian Alonso 2020-11-09 395 if (!cpu_pdev) {
8efc3af011c524 Adrian Alonso 2020-11-09 396 dev_err(&pdev->dev, "failed to
find SAI platform device\n");
8efc3af011c524 Adrian Alonso 2020-11-09 397 ret = -EINVAL;
8efc3af011c524 Adrian Alonso 2020-11-09 398 goto fail;
8efc3af011c524 Adrian Alonso 2020-11-09 399 }
8efc3af011c524 Adrian Alonso 2020-11-09 400
8efc3af011c524 Adrian Alonso 2020-11-09 401 codec_dev =
of_find_i2c_device_by_node(codec_np);
8efc3af011c524 Adrian Alonso 2020-11-09 402 if (!codec_dev ||
!codec_dev->dev.driver) {
8efc3af011c524 Adrian Alonso 2020-11-09 403 dev_err(&pdev->dev, "failed to
find codec device\n");
8efc3af011c524 Adrian Alonso 2020-11-09 404 ret = -EPROBE_DEFER;
8efc3af011c524 Adrian Alonso 2020-11-09 405 goto fail;
8efc3af011c524 Adrian Alonso 2020-11-09 406 }
8efc3af011c524 Adrian Alonso 2020-11-09 407
8efc3af011c524 Adrian Alonso 2020-11-09 408 data->dac_gain_limit =
of_property_read_bool(np, "dac,24db_digital_gain");
8efc3af011c524 Adrian Alonso 2020-11-09 409 data->dac_auto_mute =
of_property_read_bool(np, "dac,auto_mute_amp");
8efc3af011c524 Adrian Alonso 2020-11-09 410 data->dac_gpio_unmute =
of_property_read_bool(np, "dac,unmute_amp");
8efc3af011c524 Adrian Alonso 2020-11-09 411 data->dac_led_status =
of_property_read_bool(np, "dac,led_status");
8efc3af011c524 Adrian Alonso 2020-11-09 412
8efc3af011c524 Adrian Alonso 2020-11-09 413 if (data->dac_auto_mute ||
data->dac_gpio_unmute) {
8efc3af011c524 Adrian Alonso 2020-11-09 414 data->mute_gpio =
devm_gpiod_get_optional(&pdev->dev,
8efc3af011c524 Adrian Alonso 2020-11-09 415 "mute-amp", GPIOD_OUT_LOW);
8efc3af011c524 Adrian Alonso 2020-11-09 416 if (IS_ERR(data->mute_gpio)) {
8efc3af011c524 Adrian Alonso 2020-11-09 417 dev_err(&pdev->dev, "failed
to get mute amp gpio\n");
8efc3af011c524 Adrian Alonso 2020-11-09 418 ret = PTR_ERR(data->mute_gpio);
8efc3af011c524 Adrian Alonso 2020-11-09 419 goto fail;
8efc3af011c524 Adrian Alonso 2020-11-09 420 }
8efc3af011c524 Adrian Alonso 2020-11-09 421 }
8efc3af011c524 Adrian Alonso 2020-11-09 422
8efc3af011c524 Adrian Alonso 2020-11-09 423 if (data->dac_auto_mute &&
data->dac_gpio_unmute)
8efc3af011c524 Adrian Alonso 2020-11-09 424 data->card.set_bias_level =
imx_pcm512x_set_bias_level;
8efc3af011c524 Adrian Alonso 2020-11-09 425
8efc3af011c524 Adrian Alonso 2020-11-09 426 platform_set_drvdata(pdev,
&data->card);
8efc3af011c524 Adrian Alonso 2020-11-09 427
snd_soc_card_set_drvdata(&data->card, data);
8efc3af011c524 Adrian Alonso 2020-11-09 428
8efc3af011c524 Adrian Alonso 2020-11-09 @429 memcpy(data->dai_link, imx_pcm512x_dai,
8efc3af011c524 Adrian Alonso 2020-11-09 430 sizeof(struct snd_soc_dai_link) *
ARRAY_SIZE(data->dai_link));
8efc3af011c524 Adrian Alonso 2020-11-09 431
8efc3af011c524 Adrian Alonso 2020-11-09 432 data->card.owner = THIS_MODULE;
8efc3af011c524 Adrian Alonso 2020-11-09 433 data->card.dev = &pdev->dev;
8efc3af011c524 Adrian Alonso 2020-11-09 434 data->card.dai_link =
data->dai_link;
8efc3af011c524 Adrian Alonso 2020-11-09 435 data->card.num_links = 1;
8efc3af011c524 Adrian Alonso 2020-11-09 436
8efc3af011c524 Adrian Alonso 2020-11-09 437 ret =
snd_soc_of_parse_card_name(&data->card, "model");
8efc3af011c524 Adrian Alonso 2020-11-09 438 if (ret) {
8efc3af011c524 Adrian Alonso 2020-11-09 439 dev_err(&pdev->dev, "failed to
find card model name\n");
8efc3af011c524 Adrian Alonso 2020-11-09 440 goto fail;
8efc3af011c524 Adrian Alonso 2020-11-09 441 }
8efc3af011c524 Adrian Alonso 2020-11-09 442
8efc3af011c524 Adrian Alonso 2020-11-09 443 if (of_property_read_bool(np,
"audio-routing")) {
8efc3af011c524 Adrian Alonso 2020-11-09 444 ret =
snd_soc_of_parse_audio_routing(&data->card, "audio-routing");
8efc3af011c524 Adrian Alonso 2020-11-09 445 if (ret) {
8efc3af011c524 Adrian Alonso 2020-11-09 446 dev_err(&pdev->dev, "failed
to parse audio-routing\n");
8efc3af011c524 Adrian Alonso 2020-11-09 447 goto fail;
8efc3af011c524 Adrian Alonso 2020-11-09 448 }
8efc3af011c524 Adrian Alonso 2020-11-09 449 }
8efc3af011c524 Adrian Alonso 2020-11-09 450
8efc3af011c524 Adrian Alonso 2020-11-09 451 if (of_property_read_bool(np,
"audio-widgets")) {
8efc3af011c524 Adrian Alonso 2020-11-09 452 ret =
snd_soc_of_parse_audio_simple_widgets(&data->card, "audio-widgets");
8efc3af011c524 Adrian Alonso 2020-11-09 453 if (ret) {
8efc3af011c524 Adrian Alonso 2020-11-09 454 dev_err(&pdev->dev, "failed
to parse audio-widgets\n");
8efc3af011c524 Adrian Alonso 2020-11-09 455 goto fail;
8efc3af011c524 Adrian Alonso 2020-11-09 456 }
8efc3af011c524 Adrian Alonso 2020-11-09 457 }
8efc3af011c524 Adrian Alonso 2020-11-09 458
8efc3af011c524 Adrian Alonso 2020-11-09 459 data->daifmt =
snd_soc_of_parse_daifmt(np, NULL, &bitclkmaster, &framemaster);
8efc3af011c524 Adrian Alonso 2020-11-09 460 data->daifmt &=
~SND_SOC_DAIFMT_MASTER_MASK;
8efc3af011c524 Adrian Alonso 2020-11-09 461
8efc3af011c524 Adrian Alonso 2020-11-09 462 if (codec_np == bitclkmaster)
8efc3af011c524 Adrian Alonso 2020-11-09 463 data->daifmt |= (codec_np ==
framemaster) ?
8efc3af011c524 Adrian Alonso 2020-11-09 464 SND_SOC_DAIFMT_CBM_CFM :
SND_SOC_DAIFMT_CBM_CFS;
8efc3af011c524 Adrian Alonso 2020-11-09 465 else
8efc3af011c524 Adrian Alonso 2020-11-09 466 data->daifmt |= (codec_np ==
framemaster) ?
8efc3af011c524 Adrian Alonso 2020-11-09 467 SND_SOC_DAIFMT_CBS_CFM :
SND_SOC_DAIFMT_CBS_CFS;
8efc3af011c524 Adrian Alonso 2020-11-09 468
8efc3af011c524 Adrian Alonso 2020-11-09 469 if (!bitclkmaster)
8efc3af011c524 Adrian Alonso 2020-11-09 470 of_node_put(bitclkmaster);
8efc3af011c524 Adrian Alonso 2020-11-09 471 if (!framemaster)
8efc3af011c524 Adrian Alonso 2020-11-09 472 of_node_put(framemaster);
8efc3af011c524 Adrian Alonso 2020-11-09 473
8efc3af011c524 Adrian Alonso 2020-11-09 474 if (of_property_read_bool(codec_np,
"clocks"))
8efc3af011c524 Adrian Alonso 2020-11-09 475 data->dac_sclk = true;
8efc3af011c524 Adrian Alonso 2020-11-09 476
8efc3af011c524 Adrian Alonso 2020-11-09 477 data->dai_link[0].cpus = &comp[0];
8efc3af011c524 Adrian Alonso 2020-11-09 478 data->dai_link[0].num_cpus = 1;
8efc3af011c524 Adrian Alonso 2020-11-09 479 data->dai_link[0].codecs =
&comp[1];
8efc3af011c524 Adrian Alonso 2020-11-09 480 data->dai_link[0].num_codecs = 1;
8efc3af011c524 Adrian Alonso 2020-11-09 481 data->dai_link[0].platforms =
&comp[2];
8efc3af011c524 Adrian Alonso 2020-11-09 482 data->dai_link[0].num_platforms = 1;
8efc3af011c524 Adrian Alonso 2020-11-09 483
8efc3af011c524 Adrian Alonso 2020-11-09 484 data->dai_link[0].cpus->of_node =
cpu_np;
8efc3af011c524 Adrian Alonso 2020-11-09 485 data->dai_link[0].platforms->of_node
= cpu_np;
8efc3af011c524 Adrian Alonso 2020-11-09 486 data->dai_link[0].codecs->of_node =
codec_np;
8efc3af011c524 Adrian Alonso 2020-11-09 487 data->dai_link[0].codecs->dai_name =
"pcm512x-hifi";
8efc3af011c524 Adrian Alonso 2020-11-09 488 data->dai_link[0].dai_fmt =
data->daifmt;
8efc3af011c524 Adrian Alonso 2020-11-09 489
8efc3af011c524 Adrian Alonso 2020-11-09 490 ret =
devm_snd_soc_register_card(&pdev->dev, &data->card);
8efc3af011c524 Adrian Alonso 2020-11-09 491 if (ret) {
8efc3af011c524 Adrian Alonso 2020-11-09 492 dev_err(&pdev->dev,
"snd_soc_register_card failed (%d)\n", ret);
8efc3af011c524 Adrian Alonso 2020-11-09 493 goto fail;
8efc3af011c524 Adrian Alonso 2020-11-09 494 }
8efc3af011c524 Adrian Alonso 2020-11-09 495
8efc3af011c524 Adrian Alonso 2020-11-09 496 if (data->dac_gpio_unmute &&
data->dac_auto_mute)
8efc3af011c524 Adrian Alonso 2020-11-09 497
gpiod_set_value_cansleep(data->mute_gpio, 1);
8efc3af011c524 Adrian Alonso 2020-11-09 498
8efc3af011c524 Adrian Alonso 2020-11-09 499 ret = 0;
8efc3af011c524 Adrian Alonso 2020-11-09 500 fail:
8efc3af011c524 Adrian Alonso 2020-11-09 501 if (cpu_np)
8efc3af011c524 Adrian Alonso 2020-11-09 502 of_node_put(cpu_np);
8efc3af011c524 Adrian Alonso 2020-11-09 503 if (codec_np)
8efc3af011c524 Adrian Alonso 2020-11-09 504 of_node_put(codec_np);
8efc3af011c524 Adrian Alonso 2020-11-09 505
8efc3af011c524 Adrian Alonso 2020-11-09 506 return ret;
8efc3af011c524 Adrian Alonso 2020-11-09 507 }
8efc3af011c524 Adrian Alonso 2020-11-09 508
:::::: The code at line 429 was first introduced by commit
:::::: 8efc3af011c524745935866310f8ec44a37bf384 MLK-24930-1: sound: soc: fsl: imx pcm512x:
iqaudio dac
:::::: TO: Adrian Alonso <adrian.alonso(a)nxp.com>
:::::: CC: Adrian Alonso <adrian.alonso(a)nxp.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org