Quoting Krzysztof Kozlowski (2023-03-10 00:42:47) > On 10/03/2023 00:47, Stephen Boyd wrote: > > Quoting zhuyinbo (2023-03-08 18:58:02) > >> > >> 在 2023/3/8 下午8:16, kernel test robot 写道: > >>> Hi Yinbo, > >>> > > [...] > >>> > >>> drivers/clk/clk-loongson2.c: In function 'loongson2_calc_pll_rate': > >>>>> drivers/clk/clk-loongson2.c:79:15: error: implicit declaration of function 'readq'; did you mean 'readl'? [-Werror=implicit-function-declaration] > >>> 79 | val = readq(loongson2_pll_base + offset); > >>> | ^~~~~ > >>> | readl > >>> cc1: some warnings being treated as errors > >> > >> The CONFIG_64BIT not enabled in your config file, I will add a depend on > >> "CONFIG_64BIT" in my clock driver to fix this compile error. > > > > Do you need to use readq() here? Can you read two 32-bit registers with > > readl() and put them together for a 64-bit number? > > If the platform supports 64-bit reads and these are actually one > register, then readq makes sense - code is more readable, smaller, more > efficient. > Please read the section in Documentation/driver-api/device-io.rst about hi_lo_readq() and <linux/io-64-nonatomic-lo-hi.h>. We shouldn't need to restrict the driver to CONFIG_64BIT. Instead, include one of these header files to get the IO access primitives.