16.03.2021 18:51, Krzysztof Kozlowski пишет: > On Tue, 16 Mar 2021 at 16:47, Krzysztof Kozlowski > <krzysztof.kozlowski@xxxxxxxxxxxxx> wrote: >> >> On Tue, 16 Mar 2021 at 16:43, Dmitry Osipenko <digetx@xxxxxxxxx> wrote: >>> >>> 16.03.2021 10:55, Krzysztof Kozlowski пишет: >>>> From: Krzysztof Kozlowski <krzk@xxxxxxxxxx> >>>> >>>> The Tegra USB PHY driver uses Common Clock Framework thus it cannot be >>>> built on platforms without it (e.g. compile test on MIPS with RALINK and >>>> SOC_RT305X): >>>> >>>> /usr/bin/mips-linux-gnu-ld: drivers/usb/phy/phy-tegra-usb.o: in function `tegra_usb_phy_init': >>>> phy-tegra-usb.c:(.text+0x1dd4): undefined reference to `clk_get_parent' >>>> >>>> Reported-by: kernel test robot <lkp@xxxxxxxxx> >>>> Signed-off-by: Krzysztof Kozlowski <krzk@xxxxxxxxxx> >>>> >>>> --- >>>> >>>> Changes since v1: >>>> 1. Depend on COMMON_CLK always, not only for compile test. >>>> --- >>>> drivers/usb/phy/Kconfig | 1 + >>>> 1 file changed, 1 insertion(+) >>>> >>>> diff --git a/drivers/usb/phy/Kconfig b/drivers/usb/phy/Kconfig >>>> index 52eebcb88c1f..7500e77a7d01 100644 >>>> --- a/drivers/usb/phy/Kconfig >>>> +++ b/drivers/usb/phy/Kconfig >>>> @@ -163,6 +163,7 @@ config USB_MXS_PHY >>>> config USB_TEGRA_PHY >>>> tristate "NVIDIA Tegra USB PHY Driver" >>>> depends on ARCH_TEGRA || COMPILE_TEST >>>> + depends on COMMON_CLK >>>> select USB_COMMON >>>> select USB_PHY >>>> select USB_ULPI >>>> >>> >>> But if COMMON_CLK is disabled, then include/linux/clk.h provides a stub >>> for clk_get_parent(), meaning that MIPS has its own COMMON_CLK, no? >> >> Hi, >> >> It depends on the platform. Not all of them implement every clk API, >> so you can have failures: >> https://lore.kernel.org/lkml/202102170017.MgPVy7aZ-lkp@xxxxxxxxx/ > > Ah, you mentioned the stub, so let me clarify more. The common clk > stubs are not used for cases like !COMMON_CLK && HAVE_LEGACY_CLK (or > HAVE_CLK, I don't remember). This is why you can have a MIPS platform > defining some of the clock operations thus not using COMMON_CLK at all > (and neither the stubs). I see now that the stubs depend on CONFIG_HAVE_CLK and not COMMON_CLK, thanks. This raises question about why those platforms select CONFIG_HAVE_CLK, while not implementing it fully. Sounds like a better fix should be to add the missing stubs to the MIPS clk implementation, which should avoid the need to patch each driver individually. https://elixir.bootlin.com/linux/v5.12-rc3/source/arch/mips/ar7/clock.c#L489