[alsa-devel] [sound:topic/asus-e100h-4.10 18/26] drivers/clk/x86/clk-pmc-atom.c:156:29: error: storage size of 'plt_clk_ops' isn't known

kbuild test robot fengguang.wu at intel.com
Thu Feb 23 22:00:23 CET 2017


tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git topic/asus-e100h-4.10
head:   c86c0067e6111324a39f523c250c8b1089b1d822
commit: 19a80107e5cf1d2d02b678bb086f305a05e4f692 [18/26] clk: x86: Add Atom PMC platform clocks
config: x86_64-randconfig-b0-02240418 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        git checkout 19a80107e5cf1d2d02b678bb086f305a05e4f692
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

                            ^~~~~~~~~~~~
   drivers/clk/x86/clk-pmc-atom.c:141:24: note: in expansion of macro 'to_clk_plt'
     struct clk_plt *clk = to_clk_plt(hw);
                           ^~~~~~~~~~
   include/linux/kernel.h:850:48: note: (near initialization for 'clk')
     const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                   ^
   drivers/clk/x86/clk-pmc-atom.c:51:25: note: in expansion of macro 'container_of'
    #define to_clk_plt(_hw) container_of(_hw, struct clk_plt, hw)
                            ^~~~~~~~~~~~
   drivers/clk/x86/clk-pmc-atom.c:141:24: note: in expansion of macro 'to_clk_plt'
     struct clk_plt *clk = to_clk_plt(hw);
                           ^~~~~~~~~~
   drivers/clk/x86/clk-pmc-atom.c: In function 'plt_clk_is_enabled':
   include/linux/kernel.h:850:48: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
     const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                   ^
   drivers/clk/x86/clk-pmc-atom.c:51:25: note: in expansion of macro 'container_of'
    #define to_clk_plt(_hw) container_of(_hw, struct clk_plt, hw)
                            ^~~~~~~~~~~~
   drivers/clk/x86/clk-pmc-atom.c:148:24: note: in expansion of macro 'to_clk_plt'
     struct clk_plt *clk = to_clk_plt(hw);
                           ^~~~~~~~~~
   include/linux/kernel.h:850:48: note: (near initialization for 'clk')
     const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                   ^
   drivers/clk/x86/clk-pmc-atom.c:51:25: note: in expansion of macro 'container_of'
    #define to_clk_plt(_hw) container_of(_hw, struct clk_plt, hw)
                            ^~~~~~~~~~~~
   drivers/clk/x86/clk-pmc-atom.c:148:24: note: in expansion of macro 'to_clk_plt'
     struct clk_plt *clk = to_clk_plt(hw);
                           ^~~~~~~~~~
   drivers/clk/x86/clk-pmc-atom.c: At top level:
   drivers/clk/x86/clk-pmc-atom.c:156:21: error: variable 'plt_clk_ops' has initializer but incomplete type
    static const struct clk_ops plt_clk_ops = {
                        ^~~~~~~
   drivers/clk/x86/clk-pmc-atom.c:157:2: error: unknown field 'enable' specified in initializer
     .enable = plt_clk_enable,
     ^
   drivers/clk/x86/clk-pmc-atom.c:157:12: warning: excess elements in struct initializer
     .enable = plt_clk_enable,
               ^~~~~~~~~~~~~~
   drivers/clk/x86/clk-pmc-atom.c:157:12: note: (near initialization for 'plt_clk_ops')
   drivers/clk/x86/clk-pmc-atom.c:158:2: error: unknown field 'disable' specified in initializer
     .disable = plt_clk_disable,
     ^
   drivers/clk/x86/clk-pmc-atom.c:158:13: warning: excess elements in struct initializer
     .disable = plt_clk_disable,
                ^~~~~~~~~~~~~~~
   drivers/clk/x86/clk-pmc-atom.c:158:13: note: (near initialization for 'plt_clk_ops')
   drivers/clk/x86/clk-pmc-atom.c:159:2: error: unknown field 'is_enabled' specified in initializer
     .is_enabled = plt_clk_is_enabled,
     ^
   drivers/clk/x86/clk-pmc-atom.c:159:16: warning: excess elements in struct initializer
     .is_enabled = plt_clk_is_enabled,
                   ^~~~~~~~~~~~~~~~~~
   drivers/clk/x86/clk-pmc-atom.c:159:16: note: (near initialization for 'plt_clk_ops')
   drivers/clk/x86/clk-pmc-atom.c:160:2: error: unknown field 'get_parent' specified in initializer
     .get_parent = plt_clk_get_parent,
     ^
   drivers/clk/x86/clk-pmc-atom.c:160:16: warning: excess elements in struct initializer
     .get_parent = plt_clk_get_parent,
                   ^~~~~~~~~~~~~~~~~~
   drivers/clk/x86/clk-pmc-atom.c:160:16: note: (near initialization for 'plt_clk_ops')
   drivers/clk/x86/clk-pmc-atom.c:161:2: error: unknown field 'set_parent' specified in initializer
     .set_parent = plt_clk_set_parent,
     ^
   drivers/clk/x86/clk-pmc-atom.c:161:16: warning: excess elements in struct initializer
     .set_parent = plt_clk_set_parent,
                   ^~~~~~~~~~~~~~~~~~
   drivers/clk/x86/clk-pmc-atom.c:161:16: note: (near initialization for 'plt_clk_ops')
   drivers/clk/x86/clk-pmc-atom.c:162:2: error: unknown field 'determine_rate' specified in initializer
     .determine_rate = __clk_mux_determine_rate,
     ^
   drivers/clk/x86/clk-pmc-atom.c:162:20: error: '__clk_mux_determine_rate' undeclared here (not in a function)
     .determine_rate = __clk_mux_determine_rate,
                       ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/clk/x86/clk-pmc-atom.c:162:20: warning: excess elements in struct initializer
   drivers/clk/x86/clk-pmc-atom.c:162:20: note: (near initialization for 'plt_clk_ops')
   drivers/clk/x86/clk-pmc-atom.c: In function 'plt_clk_register':
   drivers/clk/x86/clk-pmc-atom.c:171:23: error: storage size of 'init' isn't known
     struct clk_init_data init;
                          ^~~~
   drivers/clk/x86/clk-pmc-atom.c:188:8: error: implicit declaration of function 'devm_clk_hw_register' [-Werror=implicit-function-declaration]
     ret = devm_clk_hw_register(&pdev->dev, &pclk->hw);
           ^~~~~~~~~~~~~~~~~~~~
   drivers/clk/x86/clk-pmc-atom.c:171:23: warning: unused variable 'init' [-Wunused-variable]
     struct clk_init_data init;
                          ^~~~
   drivers/clk/x86/clk-pmc-atom.c: In function 'plt_clk_register_fixed_rate':
   drivers/clk/x86/clk-pmc-atom.c:221:14: error: implicit declaration of function 'clk_hw_register_fixed_rate' [-Werror=implicit-function-declaration]
     pclk->clk = clk_hw_register_fixed_rate(&pdev->dev, name, parent_name,
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/clk/x86/clk-pmc-atom.c:221:12: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     pclk->clk = clk_hw_register_fixed_rate(&pdev->dev, name, parent_name,
               ^
   drivers/clk/x86/clk-pmc-atom.c:228:3: error: implicit declaration of function 'clk_hw_unregister_fixed_rate' [-Werror=implicit-function-declaration]
      clk_hw_unregister_fixed_rate(pclk->clk);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/clk/x86/clk-pmc-atom.c: At top level:
>> drivers/clk/x86/clk-pmc-atom.c:156:29: error: storage size of 'plt_clk_ops' isn't known
    static const struct clk_ops plt_clk_ops = {
                                ^~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +156 drivers/clk/x86/clk-pmc-atom.c

   150	
   151		value = readl(clk->reg);
   152	
   153		return plt_reg_to_enabled(value);
   154	}
   155	
 > 156	static const struct clk_ops plt_clk_ops = {
   157		.enable = plt_clk_enable,
   158		.disable = plt_clk_disable,
   159		.is_enabled = plt_clk_is_enabled,
   160		.get_parent = plt_clk_get_parent,
   161		.set_parent = plt_clk_set_parent,
   162		.determine_rate = __clk_mux_determine_rate,
   163	};
   164	
   165	static struct clk_plt *plt_clk_register(struct platform_device *pdev, int id,
   166						void __iomem *base,
   167						const char **parent_names,
   168						int num_parents)
   169	{
   170		struct clk_plt *pclk;
   171		struct clk_init_data init;
   172		int ret;
   173	
   174		pclk = devm_kzalloc(&pdev->dev, sizeof(*pclk), GFP_KERNEL);
   175		if (!pclk)
   176			return ERR_PTR(-ENOMEM);
   177	
   178		init.name =  kasprintf(GFP_KERNEL, "%s_%d", PLT_CLK_NAME_BASE, id);
   179		init.ops = &plt_clk_ops;
   180		init.flags = 0;
   181		init.parent_names = parent_names;
   182		init.num_parents = num_parents;
   183	
   184		pclk->hw.init = &init;
   185		pclk->reg = base + PMC_CLK_CTL_OFFSET + id * PMC_CLK_CTL_SIZE;
   186		spin_lock_init(&pclk->lock);
   187	
   188		ret = devm_clk_hw_register(&pdev->dev, &pclk->hw);
   189		if (ret) {
   190			pclk = ERR_PTR(ret);
   191			goto err_free_init;
   192		}
   193	
   194		pclk->lookup = clkdev_hw_create(&pclk->hw, init.name, NULL);
   195		if (!pclk->lookup) {
   196			pclk = ERR_PTR(-ENOMEM);
   197			goto err_free_init;
   198		}
   199	
   200	err_free_init:
   201		kfree(init.name);
   202		return pclk;
   203	}
   204	
   205	static void plt_clk_unregister(struct clk_plt *pclk)
   206	{
   207		clkdev_drop(pclk->lookup);
   208	}
   209	
   210	static struct clk_plt_fixed *plt_clk_register_fixed_rate(struct platform_device *pdev,
   211							 const char *name,
   212							 const char *parent_name,
   213							 unsigned long fixed_rate)
   214	{
   215		struct clk_plt_fixed *pclk;
   216	
   217		pclk = devm_kzalloc(&pdev->dev, sizeof(*pclk), GFP_KERNEL);
   218		if (!pclk)
   219			return ERR_PTR(-ENOMEM);
   220	
 > 221		pclk->clk = clk_hw_register_fixed_rate(&pdev->dev, name, parent_name,
   222						       0, fixed_rate);
   223		if (IS_ERR(pclk->clk))
   224			return ERR_CAST(pclk->clk);

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 28260 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20170224/d0be812b/attachment-0001.bin>


More information about the Alsa-devel mailing list