diff mbox

mmc: Kconfig: select QorIQ clock driver for eSDHC

Message ID 20180322084532.40486-1-yangbo.lu@nxp.com (mailing list archive)
State New, archived
Headers show

Commit Message

Yangbo Lu March 22, 2018, 8:45 a.m. UTC
The eSDHC driver gets periperhal clock through common clk
API, and QorIQ clock driver must be selected.

Fixes: 19c3a0ef65ad ("mmc: sdhci-of-esdhc: add peripheral clock support")
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
---
 drivers/mmc/host/Kconfig |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

Comments

kernel test robot March 25, 2018, 9:09 a.m. UTC | #1
Hi Yangbo,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.16-rc6 next-20180323]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Yangbo-Lu/mmc-Kconfig-select-QorIQ-clock-driver-for-eSDHC/20180325-133738
config: powerpc-allmodconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=powerpc 

All error/warnings (new ones prefixed by >>):

warning: (QORIQ_CPUFREQ && MMC_SDHCI_OF_ESDHC) selects CLK_QORIQ which has unmet direct dependencies (COMMON_CLK && (PPC_E500MC || ARM || ARM64 || COMPILE_TEST) && OF)
>> drivers/clk/clk-qoriq.c:697:16: error: field 'hw' has incomplete type
     struct clk_hw hw;
                   ^~
   In file included from include/linux/err.h:5:0,
                    from include/linux/clk.h:15,
                    from drivers/clk/clk-qoriq.c:13:
   drivers/clk/clk-qoriq.c: In function 'mux_set_parent':
   include/linux/kernel.h:931:32: error: dereferencing pointer to incomplete type 'struct clk_hw'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                                   ^~~~~~
   include/linux/compiler.h:316:19: note: in definition of macro '__compiletime_assert'
      bool __cond = !(condition);    \
                      ^~~~~~~~~
   include/linux/compiler.h:339:2: note: in expansion of macro '_compiletime_assert'
     _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
     ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:45:37: note: in expansion of macro 'compiletime_assert'
    #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                        ^~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:931:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
     ^~~~~~~~~~~~~~~~
   include/linux/kernel.h:931:20: note: in expansion of macro '__same_type'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                       ^~~~~~~~~~~
>> drivers/clk/clk-qoriq.c:706:27: note: in expansion of macro 'container_of'
    #define to_mux_hwclock(p) container_of(p, struct mux_hwclock, hw)
                              ^~~~~~~~~~~~
>> drivers/clk/clk-qoriq.c:712:28: note: in expansion of macro 'to_mux_hwclock'
     struct mux_hwclock *hwc = to_mux_hwclock(hw);
                               ^~~~~~~~~~~~~~
   drivers/clk/clk-qoriq.c: At top level:
>> drivers/clk/clk-qoriq.c:741:21: error: variable 'cmux_ops' has initializer but incomplete type
    static const struct clk_ops cmux_ops = {
                        ^~~~~~~
>> drivers/clk/clk-qoriq.c:742:3: error: 'const struct clk_ops' has no member named 'get_parent'
     .get_parent = mux_get_parent,
      ^~~~~~~~~~
>> drivers/clk/clk-qoriq.c:742:16: warning: excess elements in struct initializer
     .get_parent = mux_get_parent,
                   ^~~~~~~~~~~~~~
   drivers/clk/clk-qoriq.c:742:16: note: (near initialization for 'cmux_ops')
>> drivers/clk/clk-qoriq.c:743:3: error: 'const struct clk_ops' has no member named 'set_parent'
     .set_parent = mux_set_parent,
      ^~~~~~~~~~
   drivers/clk/clk-qoriq.c:743:16: warning: excess elements in struct initializer
     .set_parent = mux_set_parent,
                   ^~~~~~~~~~~~~~
   drivers/clk/clk-qoriq.c:743:16: note: (near initialization for 'cmux_ops')
>> drivers/clk/clk-qoriq.c:750:21: error: variable 'hwaccel_ops' has initializer but incomplete type
    static const struct clk_ops hwaccel_ops = {
                        ^~~~~~~
   drivers/clk/clk-qoriq.c:751:3: error: 'const struct clk_ops' has no member named 'get_parent'
     .get_parent = mux_get_parent,
      ^~~~~~~~~~
   drivers/clk/clk-qoriq.c:751:16: warning: excess elements in struct initializer
     .get_parent = mux_get_parent,
                   ^~~~~~~~~~~~~~
   drivers/clk/clk-qoriq.c:751:16: note: (near initialization for 'hwaccel_ops')
   drivers/clk/clk-qoriq.c: In function 'create_mux_common':
>> drivers/clk/clk-qoriq.c:777:9: error: variable 'init' has initializer but incomplete type
     struct clk_init_data init = {};
            ^~~~~~~~~~~~~
>> drivers/clk/clk-qoriq.c:777:23: error: storage size of 'init' isn't known
     struct clk_init_data init = {};
                          ^~~~
>> drivers/clk/clk-qoriq.c:819:8: error: implicit declaration of function 'clk_register'; did you mean 'bus_register'? [-Werror=implicit-function-declaration]
     clk = clk_register(NULL, &hwc->hw);
           ^~~~~~~~~~~~
           bus_register
   drivers/clk/clk-qoriq.c:777:23: warning: unused variable 'init' [-Wunused-variable]
     struct clk_init_data init = {};
                          ^~~~
   drivers/clk/clk-qoriq.c: In function 'core_mux_init':
>> drivers/clk/clk-qoriq.c:946:7: error: implicit declaration of function 'of_clk_add_provider'; did you mean 'of_clk_get_from_provider'? [-Werror=implicit-function-declaration]
     rc = of_clk_add_provider(np, of_clk_src_simple_get, clk);
          ^~~~~~~~~~~~~~~~~~~
          of_clk_get_from_provider
>> drivers/clk/clk-qoriq.c:946:31: error: 'of_clk_src_simple_get' undeclared (first use in this function); did you mean 'ida_simple_get'?
     rc = of_clk_add_provider(np, of_clk_src_simple_get, clk);
                                  ^~~~~~~~~~~~~~~~~~~~~
                                  ida_simple_get
   drivers/clk/clk-qoriq.c:946:31: note: each undeclared identifier is reported only once for each function it appears in
   drivers/clk/clk-qoriq.c: In function 'sysclk_from_fixed':
>> drivers/clk/clk-qoriq.c:962:9: error: implicit declaration of function 'clk_register_fixed_rate'; did you mean 'clk_register_clkdev'? [-Werror=implicit-function-declaration]
     return clk_register_fixed_rate(NULL, name, NULL, 0, rate);
            ^~~~~~~~~~~~~~~~~~~~~~~
            clk_register_clkdev
>> drivers/clk/clk-qoriq.c:962:9: warning: return makes pointer from integer without a cast [-Wint-conversion]
     return clk_register_fixed_rate(NULL, name, NULL, 0, rate);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/clk/clk-qoriq.c: In function 'input_clock':
>> drivers/clk/clk-qoriq.c:970:15: error: implicit declaration of function '__clk_get_name'; did you mean 'clk_get_rate'? [-Werror=implicit-function-declaration]
     input_name = __clk_get_name(clk);
                  ^~~~~~~~~~~~~~
                  clk_get_rate
>> drivers/clk/clk-qoriq.c:970:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     input_name = __clk_get_name(clk);
                ^
>> drivers/clk/clk-qoriq.c:971:8: error: implicit declaration of function 'clk_register_fixed_factor'; did you mean 'clk_register_clkdev'? [-Werror=implicit-function-declaration]
     clk = clk_register_fixed_factor(NULL, name, input_name,
           ^~~~~~~~~~~~~~~~~~~~~~~~~
           clk_register_clkdev
   drivers/clk/clk-qoriq.c:971:6: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     clk = clk_register_fixed_factor(NULL, name, input_name,
         ^
   drivers/clk/clk-qoriq.c: In function 'sysclk_init':
   drivers/clk/clk-qoriq.c:1060:29: error: 'of_clk_src_simple_get' undeclared (first use in this function); did you mean 'ida_simple_get'?
      of_clk_add_provider(node, of_clk_src_simple_get, clk);
                                ^~~~~~~~~~~~~~~~~~~~~
                                ida_simple_get
   drivers/clk/clk-qoriq.c: In function 'create_one_pll':
   drivers/clk/clk-qoriq.c:1140:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
      clk = clk_register_fixed_factor(NULL,
          ^
   drivers/clk/clk-qoriq.c: In function 'legacy_pll_init':
>> drivers/clk/clk-qoriq.c:1182:32: error: dereferencing pointer to incomplete type 'struct clk_onecell_data'
     onecell_data = kmalloc(sizeof(*onecell_data), GFP_KERNEL);
                                   ^~~~~~~~~~~~~
>> drivers/clk/clk-qoriq.c:1200:31: error: 'of_clk_src_onecell_get' undeclared (first use in this function); did you mean 'clk_onecell_data'?
     rc = of_clk_add_provider(np, of_clk_src_onecell_get, onecell_data);
                                  ^~~~~~~~~~~~~~~~~~~~~~
                                  clk_onecell_data
   drivers/clk/clk-qoriq.c: At top level:

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
diff mbox

Patch

diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
index de36fff..d70b84b 100644
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
@@ -155,6 +155,7 @@  config MMC_SDHCI_OF_ESDHC
 	depends on PPC || ARCH_MXC || ARCH_LAYERSCAPE
 	select MMC_SDHCI_IO_ACCESSORS
 	select FSL_GUTS
+	select CLK_QORIQ
 	help
 	  This selects the Freescale eSDHC controller support.