* [krzk-github:b4/qcom-audio-wsa-second-speaker 9/10] sound/soc/codecs/lpass-wsa-macro.c:2488:undefined reference to `lpass_macro_get_codec_version'
@ 2024-06-27 12:05 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-06-27 12:05 UTC (permalink / raw)
To: Krzysztof Kozlowski; +Cc: oe-kbuild-all
tree: https://github.com/krzk/linux b4/qcom-audio-wsa-second-speaker
head: c35e67b6ff23e63ae09b9a646451564ba5f813ef
commit: b27895f445fc9f200663b4134586b96575b70ec0 [9/10] ASoC: codecs: lpass-wsa-macro: Prepare to accommodate new codec versions
config: x86_64-randconfig-072-20240627 (https://download.01.org/0day-ci/archive/20240627/202406272231.th1LtuLk-lkp@intel.com/config)
compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240627/202406272231.th1LtuLk-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202406272231.th1LtuLk-lkp@intel.com/
All errors (new ones prefixed by >>):
ld: sound/soc/codecs/lpass-wsa-macro.o: in function `wsa_macro_probe':
>> sound/soc/codecs/lpass-wsa-macro.c:2488:(.text+0x244f): undefined reference to `lpass_macro_get_codec_version'
vim +2488 sound/soc/codecs/lpass-wsa-macro.c
2445
2446 static int wsa_macro_probe(struct platform_device *pdev)
2447 {
2448 struct device *dev = &pdev->dev;
2449 struct reg_default *reg_defaults;
2450 struct regmap_config *reg_config;
2451 struct wsa_macro *wsa;
2452 kernel_ulong_t flags;
2453 void __iomem *base;
2454 int ret, def_count;
2455
2456 flags = (kernel_ulong_t)device_get_match_data(dev);
2457
2458 wsa = devm_kzalloc(dev, sizeof(*wsa), GFP_KERNEL);
2459 if (!wsa)
2460 return -ENOMEM;
2461
2462 wsa->macro = devm_clk_get_optional(dev, "macro");
2463 if (IS_ERR(wsa->macro))
2464 return dev_err_probe(dev, PTR_ERR(wsa->macro), "unable to get macro clock\n");
2465
2466 wsa->dcodec = devm_clk_get_optional(dev, "dcodec");
2467 if (IS_ERR(wsa->dcodec))
2468 return dev_err_probe(dev, PTR_ERR(wsa->dcodec), "unable to get dcodec clock\n");
2469
2470 wsa->mclk = devm_clk_get(dev, "mclk");
2471 if (IS_ERR(wsa->mclk))
2472 return dev_err_probe(dev, PTR_ERR(wsa->mclk), "unable to get mclk clock\n");
2473
2474 if (flags & LPASS_MACRO_FLAG_HAS_NPL_CLOCK) {
2475 wsa->npl = devm_clk_get(dev, "npl");
2476 if (IS_ERR(wsa->npl))
2477 return dev_err_probe(dev, PTR_ERR(wsa->npl), "unable to get npl clock\n");
2478 }
2479
2480 wsa->fsgen = devm_clk_get(dev, "fsgen");
2481 if (IS_ERR(wsa->fsgen))
2482 return dev_err_probe(dev, PTR_ERR(wsa->fsgen), "unable to get fsgen clock\n");
2483
2484 base = devm_platform_ioremap_resource(pdev, 0);
2485 if (IS_ERR(base))
2486 return PTR_ERR(base);
2487
> 2488 wsa->codec_version = lpass_macro_get_codec_version();
2489 switch (wsa->codec_version) {
2490 default:
2491 wsa->reg_layout = &wsa_codec_v2_1;
2492 def_count = ARRAY_SIZE(wsa_defaults) + ARRAY_SIZE(wsa_defaults_v2_1);
2493 reg_defaults = devm_kmalloc_array(dev, def_count,
2494 sizeof(*reg_defaults),
2495 GFP_KERNEL);
2496 if (!reg_defaults)
2497 return -ENOMEM;
2498 memcpy(®_defaults[0], wsa_defaults, sizeof(wsa_defaults));
2499 memcpy(®_defaults[ARRAY_SIZE(wsa_defaults)],
2500 wsa_defaults_v2_1, sizeof(wsa_defaults_v2_1));
2501 break;
2502 }
2503
2504 reg_config = devm_kmemdup(dev, &wsa_regmap_config,
2505 sizeof(*reg_config), GFP_KERNEL);
2506 if (!reg_config)
2507 return -ENOMEM;
2508
2509 reg_config->reg_defaults = reg_defaults;
2510 reg_config->num_reg_defaults = def_count;
2511
2512 wsa->regmap = devm_regmap_init_mmio(dev, base, reg_config);
2513 if (IS_ERR(wsa->regmap))
2514 return PTR_ERR(wsa->regmap);
2515
2516 devm_kfree(dev, reg_config);
2517 devm_kfree(dev, reg_defaults);
2518 dev_set_drvdata(dev, wsa);
2519
2520 wsa->dev = dev;
2521
2522 /* set MCLK and NPL rates */
2523 clk_set_rate(wsa->mclk, WSA_MACRO_MCLK_FREQ);
2524 clk_set_rate(wsa->npl, WSA_MACRO_MCLK_FREQ);
2525
2526 ret = clk_prepare_enable(wsa->macro);
2527 if (ret)
2528 goto err;
2529
2530 ret = clk_prepare_enable(wsa->dcodec);
2531 if (ret)
2532 goto err_dcodec;
2533
2534 ret = clk_prepare_enable(wsa->mclk);
2535 if (ret)
2536 goto err_mclk;
2537
2538 ret = clk_prepare_enable(wsa->npl);
2539 if (ret)
2540 goto err_npl;
2541
2542 ret = clk_prepare_enable(wsa->fsgen);
2543 if (ret)
2544 goto err_fsgen;
2545
2546 /* reset swr ip */
2547 regmap_update_bits(wsa->regmap, CDC_WSA_CLK_RST_CTRL_SWR_CONTROL,
2548 CDC_WSA_SWR_RST_EN_MASK, CDC_WSA_SWR_RST_ENABLE);
2549
2550 regmap_update_bits(wsa->regmap, CDC_WSA_CLK_RST_CTRL_SWR_CONTROL,
2551 CDC_WSA_SWR_CLK_EN_MASK, CDC_WSA_SWR_CLK_ENABLE);
2552
2553 /* Bring out of reset */
2554 regmap_update_bits(wsa->regmap, CDC_WSA_CLK_RST_CTRL_SWR_CONTROL,
2555 CDC_WSA_SWR_RST_EN_MASK, CDC_WSA_SWR_RST_DISABLE);
2556
2557 ret = devm_snd_soc_register_component(dev, &wsa_macro_component_drv,
2558 wsa_macro_dai,
2559 ARRAY_SIZE(wsa_macro_dai));
2560 if (ret)
2561 goto err_clkout;
2562
2563 pm_runtime_set_autosuspend_delay(dev, 3000);
2564 pm_runtime_use_autosuspend(dev);
2565 pm_runtime_mark_last_busy(dev);
2566 pm_runtime_set_active(dev);
2567 pm_runtime_enable(dev);
2568
2569 ret = wsa_macro_register_mclk_output(wsa);
2570 if (ret)
2571 goto err_clkout;
2572
2573 return 0;
2574
2575 err_clkout:
2576 clk_disable_unprepare(wsa->fsgen);
2577 err_fsgen:
2578 clk_disable_unprepare(wsa->npl);
2579 err_npl:
2580 clk_disable_unprepare(wsa->mclk);
2581 err_mclk:
2582 clk_disable_unprepare(wsa->dcodec);
2583 err_dcodec:
2584 clk_disable_unprepare(wsa->macro);
2585 err:
2586 return ret;
2587
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-06-27 12:05 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-27 12:05 [krzk-github:b4/qcom-audio-wsa-second-speaker 9/10] sound/soc/codecs/lpass-wsa-macro.c:2488:undefined reference to `lpass_macro_get_codec_version' 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.