Hi Guenter,
It's probably a bug fix that unveils the link errors.
tree:
https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-5.4
head: b07d702ddc4dd8b8a383dd1502e04af3cc5ce291
commit: 5f0ed9879934735b49f68a7c53eed625d4980f0a [46/57] FIXUP: CHROMIUM: MALI: Apply
Valhall r24p0 EAC release
config: arm64-randconfig-c003-20200618 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
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 >>):
aarch64-linux-ld: drivers/gpu/drm/img-rogue/1.10/pvr_dvfs_device.o: in function
`DeinitDVFS':
drivers/gpu/drm/img-rogue/1.10/pvr_dvfs_device.c:538: undefined reference to
`devfreq_cooling_unregister'
aarch64-linux-ld: drivers/gpu/drm/img-rogue/1.10/pvr_dvfs_device.o: in function
`RegisterCoolingDevice':
drivers/gpu/drm/img-rogue/1.10/pvr_dvfs_device.c:346: undefined reference to
`of_devfreq_cooling_register_power'
aarch64-linux-ld: drivers/gpu/arm/valhall/backend/gpu/mali_kbase_devfreq.o: in function
`kbase_devfreq_init':
> drivers/gpu/arm/valhall/backend/gpu/mali_kbase_devfreq.c:723:
undefined reference to `of_devfreq_cooling_register_power'
aarch64-linux-ld:
drivers/gpu/arm/valhall/backend/gpu/mali_kbase_devfreq.o: in function
`kbase_devfreq_term':
> drivers/gpu/arm/valhall/backend/gpu/mali_kbase_devfreq.c:761:
undefined reference to `devfreq_cooling_unregister'
vim +723 drivers/gpu/arm/valhall/backend/gpu/mali_kbase_devfreq.c
2017d46f1e629c Nicolas Boichat 2020-04-18 643
2017d46f1e629c Nicolas Boichat 2020-04-18 644 int kbase_devfreq_init(struct kbase_device
*kbdev)
2017d46f1e629c Nicolas Boichat 2020-04-18 645 {
2017d46f1e629c Nicolas Boichat 2020-04-18 646 struct devfreq_dev_profile *dp;
2017d46f1e629c Nicolas Boichat 2020-04-18 647 int err;
2017d46f1e629c Nicolas Boichat 2020-04-18 648 unsigned int i;
2017d46f1e629c Nicolas Boichat 2020-04-18 649
2017d46f1e629c Nicolas Boichat 2020-04-18 650 if (kbdev->nr_clocks == 0) {
2017d46f1e629c Nicolas Boichat 2020-04-18 651 dev_err(kbdev->dev, "Clock not
available for devfreq\n");
2017d46f1e629c Nicolas Boichat 2020-04-18 652 return -ENODEV;
2017d46f1e629c Nicolas Boichat 2020-04-18 653 }
2017d46f1e629c Nicolas Boichat 2020-04-18 654
2017d46f1e629c Nicolas Boichat 2020-04-18 655 for (i = 0; i < kbdev->nr_clocks;
i++) {
2017d46f1e629c Nicolas Boichat 2020-04-18 656 if (kbdev->clocks[i])
2017d46f1e629c Nicolas Boichat 2020-04-18 657 kbdev->current_freqs[i] =
2017d46f1e629c Nicolas Boichat 2020-04-18 658 clk_get_rate(kbdev->clocks[i]);
2017d46f1e629c Nicolas Boichat 2020-04-18 659 else
2017d46f1e629c Nicolas Boichat 2020-04-18 660 kbdev->current_freqs[i] = 0;
2017d46f1e629c Nicolas Boichat 2020-04-18 661 }
2017d46f1e629c Nicolas Boichat 2020-04-18 662 kbdev->current_nominal_freq =
kbdev->current_freqs[0];
2017d46f1e629c Nicolas Boichat 2020-04-18 663
2017d46f1e629c Nicolas Boichat 2020-04-18 664 dp = &kbdev->devfreq_profile;
2017d46f1e629c Nicolas Boichat 2020-04-18 665
2017d46f1e629c Nicolas Boichat 2020-04-18 666 dp->initial_freq =
kbdev->current_freqs[0];
2017d46f1e629c Nicolas Boichat 2020-04-18 667 dp->polling_ms = 100;
2017d46f1e629c Nicolas Boichat 2020-04-18 668 dp->target = kbase_devfreq_target;
2017d46f1e629c Nicolas Boichat 2020-04-18 669 dp->get_dev_status =
kbase_devfreq_status;
2017d46f1e629c Nicolas Boichat 2020-04-18 670 dp->get_cur_freq =
kbase_devfreq_cur_freq;
2017d46f1e629c Nicolas Boichat 2020-04-18 671 dp->exit = kbase_devfreq_exit;
2017d46f1e629c Nicolas Boichat 2020-04-18 672
2017d46f1e629c Nicolas Boichat 2020-04-18 673 if (kbase_devfreq_init_freq_table(kbdev,
dp))
2017d46f1e629c Nicolas Boichat 2020-04-18 674 return -EFAULT;
2017d46f1e629c Nicolas Boichat 2020-04-18 675
2017d46f1e629c Nicolas Boichat 2020-04-18 676 if (dp->max_state > 0) {
2017d46f1e629c Nicolas Boichat 2020-04-18 677 /* Record the maximum frequency possible
*/
2017d46f1e629c Nicolas Boichat 2020-04-18 678
kbdev->gpu_props.props.core_props.gpu_freq_khz_max =
2017d46f1e629c Nicolas Boichat 2020-04-18 679 dp->freq_table[0] / 1000;
2017d46f1e629c Nicolas Boichat 2020-04-18 680 };
2017d46f1e629c Nicolas Boichat 2020-04-18 681
2017d46f1e629c Nicolas Boichat 2020-04-18 682 err =
kbase_devfreq_init_core_mask_table(kbdev);
2017d46f1e629c Nicolas Boichat 2020-04-18 683 if (err) {
2017d46f1e629c Nicolas Boichat 2020-04-18 684 kbase_devfreq_term_freq_table(kbdev);
2017d46f1e629c Nicolas Boichat 2020-04-18 685 return err;
2017d46f1e629c Nicolas Boichat 2020-04-18 686 }
2017d46f1e629c Nicolas Boichat 2020-04-18 687
2017d46f1e629c Nicolas Boichat 2020-04-18 688 /* Initialise devfreq suspend/resume
workqueue */
2017d46f1e629c Nicolas Boichat 2020-04-18 689 err = kbase_devfreq_work_init(kbdev);
2017d46f1e629c Nicolas Boichat 2020-04-18 690 if (err) {
2017d46f1e629c Nicolas Boichat 2020-04-18 691 kbase_devfreq_term_freq_table(kbdev);
2017d46f1e629c Nicolas Boichat 2020-04-18 692 dev_err(kbdev->dev, "Devfreq
initialization failed");
2017d46f1e629c Nicolas Boichat 2020-04-18 693 return err;
2017d46f1e629c Nicolas Boichat 2020-04-18 694 }
2017d46f1e629c Nicolas Boichat 2020-04-18 695
2017d46f1e629c Nicolas Boichat 2020-04-18 696 kbdev->devfreq =
devfreq_add_device(kbdev->dev, dp,
2017d46f1e629c Nicolas Boichat 2020-04-18 697 "simple_ondemand",
&kbase_ondemand_data);
2017d46f1e629c Nicolas Boichat 2020-04-18 698 if (IS_ERR(kbdev->devfreq)) {
2017d46f1e629c Nicolas Boichat 2020-04-18 699 err = PTR_ERR(kbdev->devfreq);
2017d46f1e629c Nicolas Boichat 2020-04-18 700 kbase_devfreq_work_term(kbdev);
2017d46f1e629c Nicolas Boichat 2020-04-18 701 kbase_devfreq_term_freq_table(kbdev);
2017d46f1e629c Nicolas Boichat 2020-04-18 702 return err;
2017d46f1e629c Nicolas Boichat 2020-04-18 703 }
2017d46f1e629c Nicolas Boichat 2020-04-18 704
2017d46f1e629c Nicolas Boichat 2020-04-18 705 /* devfreq_add_device only copies a few
of kbdev->dev's fields, so
2017d46f1e629c Nicolas Boichat 2020-04-18 706 * set drvdata explicitly so IPA models
can access kbdev. */
2017d46f1e629c Nicolas Boichat 2020-04-18 707
dev_set_drvdata(&kbdev->devfreq->dev, kbdev);
2017d46f1e629c Nicolas Boichat 2020-04-18 708
2017d46f1e629c Nicolas Boichat 2020-04-18 709 err =
devfreq_register_opp_notifier(kbdev->dev, kbdev->devfreq);
2017d46f1e629c Nicolas Boichat 2020-04-18 710 if (err) {
2017d46f1e629c Nicolas Boichat 2020-04-18 711 dev_err(kbdev->dev,
2017d46f1e629c Nicolas Boichat 2020-04-18 712 "Failed to register OPP notifier
(%d)\n", err);
2017d46f1e629c Nicolas Boichat 2020-04-18 713 goto opp_notifier_failed;
2017d46f1e629c Nicolas Boichat 2020-04-18 714 }
2017d46f1e629c Nicolas Boichat 2020-04-18 715
2017d46f1e629c Nicolas Boichat 2020-04-18 716 #ifdef CONFIG_DEVFREQ_THERMAL
2017d46f1e629c Nicolas Boichat 2020-04-18 717 err = kbase_ipa_init(kbdev);
2017d46f1e629c Nicolas Boichat 2020-04-18 718 if (err) {
2017d46f1e629c Nicolas Boichat 2020-04-18 719 dev_err(kbdev->dev, "IPA
initialization failed\n");
2017d46f1e629c Nicolas Boichat 2020-04-18 720 goto cooling_failed;
2017d46f1e629c Nicolas Boichat 2020-04-18 721 }
2017d46f1e629c Nicolas Boichat 2020-04-18 722
2017d46f1e629c Nicolas Boichat 2020-04-18 @723 kbdev->devfreq_cooling =
of_devfreq_cooling_register_power(
2017d46f1e629c Nicolas Boichat 2020-04-18 724 kbdev->dev->of_node,
2017d46f1e629c Nicolas Boichat 2020-04-18 725 kbdev->devfreq,
2017d46f1e629c Nicolas Boichat 2020-04-18 726 &kbase_ipa_power_model_ops);
2017d46f1e629c Nicolas Boichat 2020-04-18 727 if
(IS_ERR_OR_NULL(kbdev->devfreq_cooling)) {
2017d46f1e629c Nicolas Boichat 2020-04-18 728 err =
PTR_ERR(kbdev->devfreq_cooling);
2017d46f1e629c Nicolas Boichat 2020-04-18 729 dev_err(kbdev->dev,
2017d46f1e629c Nicolas Boichat 2020-04-18 730 "Failed to register cooling device
(%d)\n",
2017d46f1e629c Nicolas Boichat 2020-04-18 731 err);
2017d46f1e629c Nicolas Boichat 2020-04-18 732 goto cooling_failed;
2017d46f1e629c Nicolas Boichat 2020-04-18 733 }
2017d46f1e629c Nicolas Boichat 2020-04-18 734 #endif
2017d46f1e629c Nicolas Boichat 2020-04-18 735
2017d46f1e629c Nicolas Boichat 2020-04-18 736 return 0;
2017d46f1e629c Nicolas Boichat 2020-04-18 737
2017d46f1e629c Nicolas Boichat 2020-04-18 738 #ifdef CONFIG_DEVFREQ_THERMAL
2017d46f1e629c Nicolas Boichat 2020-04-18 739 cooling_failed:
2017d46f1e629c Nicolas Boichat 2020-04-18 740
devfreq_unregister_opp_notifier(kbdev->dev, kbdev->devfreq);
2017d46f1e629c Nicolas Boichat 2020-04-18 741 #endif /* CONFIG_DEVFREQ_THERMAL */
2017d46f1e629c Nicolas Boichat 2020-04-18 742 opp_notifier_failed:
2017d46f1e629c Nicolas Boichat 2020-04-18 743 if
(devfreq_remove_device(kbdev->devfreq))
2017d46f1e629c Nicolas Boichat 2020-04-18 744 dev_err(kbdev->dev, "Failed to
terminate devfreq (%d)\n", err);
2017d46f1e629c Nicolas Boichat 2020-04-18 745 else
2017d46f1e629c Nicolas Boichat 2020-04-18 746 kbdev->devfreq = NULL;
2017d46f1e629c Nicolas Boichat 2020-04-18 747
2017d46f1e629c Nicolas Boichat 2020-04-18 748 kbase_devfreq_work_term(kbdev);
2017d46f1e629c Nicolas Boichat 2020-04-18 749
2017d46f1e629c Nicolas Boichat 2020-04-18 750 return err;
2017d46f1e629c Nicolas Boichat 2020-04-18 751 }
2017d46f1e629c Nicolas Boichat 2020-04-18 752
2017d46f1e629c Nicolas Boichat 2020-04-18 753 void kbase_devfreq_term(struct
kbase_device *kbdev)
2017d46f1e629c Nicolas Boichat 2020-04-18 754 {
2017d46f1e629c Nicolas Boichat 2020-04-18 755 int err;
2017d46f1e629c Nicolas Boichat 2020-04-18 756
2017d46f1e629c Nicolas Boichat 2020-04-18 757 dev_dbg(kbdev->dev, "Term Mali
devfreq\n");
2017d46f1e629c Nicolas Boichat 2020-04-18 758
2017d46f1e629c Nicolas Boichat 2020-04-18 759 #ifdef CONFIG_DEVFREQ_THERMAL
2017d46f1e629c Nicolas Boichat 2020-04-18 760 if (kbdev->devfreq_cooling)
2017d46f1e629c Nicolas Boichat 2020-04-18 @761
devfreq_cooling_unregister(kbdev->devfreq_cooling);
:::::: The code at line 723 was first introduced by commit
:::::: 2017d46f1e629c7c90f3e12f89694e050d9d65fb CHROMIUM: MALI: Apply Valhall r24p0 EAC
release
:::::: TO: Nicolas Boichat <drinkcat(a)chromium.org>
:::::: CC: Commit Bot <commit-bot(a)chromium.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org