Message ID | 20240402103406.3638821-3-quic_varada@quicinc.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add interconnect driver for IPQ9574 SoC | expand |
On Tue, 2 Apr 2024 at 13:34, Varadarajan Narayanan <quic_varada@quicinc.com> wrote: > > drivers/clk/qcom/common.c uses devm_icc_clk_register under > IS_ENABLED(CONFIG_INTERCONNECT_CLK). However, in kernel bot > random config build test, with the following combination > > CONFIG_COMMON_CLK_QCOM=y > and > CONFIG_INTERCONNECT_CLK=m > > the following error is seen as devm_icc_clk_register is in a > module and being referenced from vmlinux. > > powerpc64-linux-ld: drivers/clk/qcom/common.o: in function `qcom_cc_really_probe': > >> common.c:(.text+0x980): undefined reference to `devm_icc_clk_register' > > Hence, ensure INTERCONNECT_CLK is not selected as a module. NAK. Please use `depends on INTERCONNECT_CLK || !INTERCONNECT_CLK` in your Kconfig dependencies. > > Reported-by: kernel test robot <lkp@intel.com> > Closes: https://lore.kernel.org/oe-kbuild-all/202404012258.MFriF5BV-lkp@intel.com/ > Fixes: 0ac2a08f42ce ("interconnect: add clk-based icc provider support") > Signed-off-by: Varadarajan Narayanan <quic_varada@quicinc.com> > --- > drivers/interconnect/Kconfig | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/interconnect/Kconfig b/drivers/interconnect/Kconfig > index 5faa8d2aecff..f44be5469382 100644 > --- a/drivers/interconnect/Kconfig > +++ b/drivers/interconnect/Kconfig > @@ -16,7 +16,6 @@ source "drivers/interconnect/qcom/Kconfig" > source "drivers/interconnect/samsung/Kconfig" > > config INTERCONNECT_CLK > - tristate > depends on COMMON_CLK > help > Support for wrapping clocks into the interconnect nodes. > -- > 2.34.1 > -- With best wishes Dmitry
On 2.04.2024 12:39 PM, Dmitry Baryshkov wrote: > On Tue, 2 Apr 2024 at 13:34, Varadarajan Narayanan > <quic_varada@quicinc.com> wrote: >> >> drivers/clk/qcom/common.c uses devm_icc_clk_register under >> IS_ENABLED(CONFIG_INTERCONNECT_CLK). However, in kernel bot >> random config build test, with the following combination >> >> CONFIG_COMMON_CLK_QCOM=y >> and >> CONFIG_INTERCONNECT_CLK=m >> >> the following error is seen as devm_icc_clk_register is in a >> module and being referenced from vmlinux. >> >> powerpc64-linux-ld: drivers/clk/qcom/common.o: in function `qcom_cc_really_probe': >> >> common.c:(.text+0x980): undefined reference to `devm_icc_clk_register' >> >> Hence, ensure INTERCONNECT_CLK is not selected as a module. > > NAK. Please use `depends on INTERCONNECT_CLK || !INTERCONNECT_CLK` in > your Kconfig dependencies. Should icc-clk ever be built as a module? It really seems like it should be a part of the core framework.. And dependency management would be easier Konrad
Hi Varadarajan, kernel test robot noticed the following build errors: [auto build test ERROR on clk/clk-next] [also build test ERROR on robh/for-next linus/master v6.9-rc2 next-20240403] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Varadarajan-Narayanan/dt-bindings-interconnect-Add-Qualcomm-IPQ9574-support/20240402-223729 base: https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-next patch link: https://lore.kernel.org/r/20240402103406.3638821-3-quic_varada%40quicinc.com patch subject: [PATCH v6 2/6] interconnect: icc-clk: Remove tristate from INTERCONNECT_CLK config: arm64-defconfig (https://download.01.org/0day-ci/archive/20240403/202404032328.7zrla6d9-lkp@intel.com/config) compiler: aarch64-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240403/202404032328.7zrla6d9-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/202404032328.7zrla6d9-lkp@intel.com/ All errors (new ones prefixed by >>): aarch64-linux-ld: Unexpected GOT/PLT entries detected! aarch64-linux-ld: Unexpected run-time procedure linkages detected! aarch64-linux-ld: drivers/clk/qcom/clk-cbf-8996.o: in function `qcom_msm8996_cbf_icc_remove': >> drivers/clk/qcom/clk-cbf-8996.c:257:(.text+0x10): undefined reference to `icc_clk_unregister' aarch64-linux-ld: drivers/clk/qcom/clk-cbf-8996.o: in function `qcom_msm8996_cbf_icc_register': >> drivers/clk/qcom/clk-cbf-8996.c:244:(.text+0x360): undefined reference to `icc_clk_register' vim +257 drivers/clk/qcom/clk-cbf-8996.c 12dc71953e664f Dmitry Baryshkov 2023-05-12 234 12dc71953e664f Dmitry Baryshkov 2023-05-12 235 static int qcom_msm8996_cbf_icc_register(struct platform_device *pdev, struct clk_hw *cbf_hw) 12dc71953e664f Dmitry Baryshkov 2023-05-12 236 { 12dc71953e664f Dmitry Baryshkov 2023-05-12 237 struct device *dev = &pdev->dev; 12dc71953e664f Dmitry Baryshkov 2023-05-12 238 struct clk *clk = devm_clk_hw_get_clk(dev, cbf_hw, "cbf"); 12dc71953e664f Dmitry Baryshkov 2023-05-12 239 const struct icc_clk_data data[] = { 12dc71953e664f Dmitry Baryshkov 2023-05-12 240 { .clk = clk, .name = "cbf", }, 12dc71953e664f Dmitry Baryshkov 2023-05-12 241 }; 12dc71953e664f Dmitry Baryshkov 2023-05-12 242 struct icc_provider *provider; 12dc71953e664f Dmitry Baryshkov 2023-05-12 243 12dc71953e664f Dmitry Baryshkov 2023-05-12 @244 provider = icc_clk_register(dev, CBF_MASTER_NODE, ARRAY_SIZE(data), data); 12dc71953e664f Dmitry Baryshkov 2023-05-12 245 if (IS_ERR(provider)) 12dc71953e664f Dmitry Baryshkov 2023-05-12 246 return PTR_ERR(provider); 12dc71953e664f Dmitry Baryshkov 2023-05-12 247 12dc71953e664f Dmitry Baryshkov 2023-05-12 248 platform_set_drvdata(pdev, provider); 12dc71953e664f Dmitry Baryshkov 2023-05-12 249 12dc71953e664f Dmitry Baryshkov 2023-05-12 250 return 0; 12dc71953e664f Dmitry Baryshkov 2023-05-12 251 } 12dc71953e664f Dmitry Baryshkov 2023-05-12 252 abaf59c470a7c9 Uwe Kleine-König 2023-09-11 253 static void qcom_msm8996_cbf_icc_remove(struct platform_device *pdev) 12dc71953e664f Dmitry Baryshkov 2023-05-12 254 { 12dc71953e664f Dmitry Baryshkov 2023-05-12 255 struct icc_provider *provider = platform_get_drvdata(pdev); 12dc71953e664f Dmitry Baryshkov 2023-05-12 256 12dc71953e664f Dmitry Baryshkov 2023-05-12 @257 icc_clk_unregister(provider); 12dc71953e664f Dmitry Baryshkov 2023-05-12 258 } 12dc71953e664f Dmitry Baryshkov 2023-05-12 259 #define qcom_msm8996_cbf_icc_sync_state icc_sync_state 12dc71953e664f Dmitry Baryshkov 2023-05-12 260 #else 12dc71953e664f Dmitry Baryshkov 2023-05-12 261 static int qcom_msm8996_cbf_icc_register(struct platform_device *pdev, struct clk_hw *cbf_hw) 12dc71953e664f Dmitry Baryshkov 2023-05-12 262 { 12dc71953e664f Dmitry Baryshkov 2023-05-12 263 dev_warn(&pdev->dev, "CONFIG_INTERCONNECT is disabled, CBF clock is fixed\n"); 12dc71953e664f Dmitry Baryshkov 2023-05-12 264 12dc71953e664f Dmitry Baryshkov 2023-05-12 265 return 0; 12dc71953e664f Dmitry Baryshkov 2023-05-12 266 } abaf59c470a7c9 Uwe Kleine-König 2023-09-11 267 #define qcom_msm8996_cbf_icc_remove(pdev) { } 12dc71953e664f Dmitry Baryshkov 2023-05-12 268 #define qcom_msm8996_cbf_icc_sync_state NULL 12dc71953e664f Dmitry Baryshkov 2023-05-12 269 #endif 12dc71953e664f Dmitry Baryshkov 2023-05-12 270
diff --git a/drivers/interconnect/Kconfig b/drivers/interconnect/Kconfig index 5faa8d2aecff..f44be5469382 100644 --- a/drivers/interconnect/Kconfig +++ b/drivers/interconnect/Kconfig @@ -16,7 +16,6 @@ source "drivers/interconnect/qcom/Kconfig" source "drivers/interconnect/samsung/Kconfig" config INTERCONNECT_CLK - tristate depends on COMMON_CLK help Support for wrapping clocks into the interconnect nodes.