lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201601050310.g8dRfxpW%fengguang.wu@intel.com>
Date:	Tue, 5 Jan 2016 04:02:33 +0800
From:	kbuild test robot <lkp@...el.com>
To:	Chen Feng <puck.chen@...ilicon.com>
Cc:	kbuild-all@...org, lee.jones@...aro.org, lgirdwood@...il.com,
	broonie@...nel.org, linux-kernel@...r.kernel.org,
	puck.chen@...ilicon.com, yudongbin@...ilicon.com,
	saberlily.xia@...ilicon.com, suzhuangluan@...ilicon.com,
	kong.kongxinwei@...ilicon.com, xuyiping@...ilicon.com,
	z.liuxinliang@...ilicon.com, puck.chenfeng@...il.com,
	weidong2@...ilicon.com, w.f@...wei.com, qijiwen@...ilicon.com,
	peter.panshilin@...ilicon.com, dan.zhao@...ilicon.com,
	linuxarm@...wei.com, liguozhu@...ilicon.com,
	shimingxing@...ilicon.com, albert.lubing@...ilicon.com,
	oliver.fu@...ilicon.com, haojian.zhuang@...aro.org
Subject: Re: [PATCH v4 3/5] mfd: hi655x: Add hi665x pmic driver

Hi Chen,

[auto build test WARNING on v4.4-rc8]
[also build test WARNING on next-20160104]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Chen-Feng/Add-Support-for-Hi6220-PMIC-Hi6553-MFD-Core/20160104-203635
config: parisc-allmodconfig (attached as .config)
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=parisc 

All warnings (new ones prefixed by >>):

   In file included from include/linux/platform_device.h:14:0,
                    from drivers/mfd/hi655x-pmic.c:19:
   include/linux/device.h:1329:1: warning: data definition has no type or storage class
    module_init(__driver##_init); \
    ^
   include/linux/platform_device.h:222:2: note: in expansion of macro 'module_driver'
     module_driver(__platform_driver, platform_driver_register, \
     ^
>> drivers/mfd/hi655x-pmic.c:156:1: note: in expansion of macro 'module_platform_driver'
    module_platform_driver(hi655x_pmic_driver);
    ^
   include/linux/device.h:1329:1: error: type defaults to 'int' in declaration of 'module_init' [-Werror=implicit-int]
    module_init(__driver##_init); \
    ^
   include/linux/platform_device.h:222:2: note: in expansion of macro 'module_driver'
     module_driver(__platform_driver, platform_driver_register, \
     ^
>> drivers/mfd/hi655x-pmic.c:156:1: note: in expansion of macro 'module_platform_driver'
    module_platform_driver(hi655x_pmic_driver);
    ^
   drivers/mfd/hi655x-pmic.c:156:1: warning: parameter names (without types) in function declaration
   In file included from include/linux/platform_device.h:14:0,
                    from drivers/mfd/hi655x-pmic.c:19:
   include/linux/device.h:1334:1: warning: data definition has no type or storage class
    module_exit(__driver##_exit);
    ^
   include/linux/platform_device.h:222:2: note: in expansion of macro 'module_driver'
     module_driver(__platform_driver, platform_driver_register, \
     ^
>> drivers/mfd/hi655x-pmic.c:156:1: note: in expansion of macro 'module_platform_driver'
    module_platform_driver(hi655x_pmic_driver);
    ^
   include/linux/device.h:1334:1: error: type defaults to 'int' in declaration of 'module_exit' [-Werror=implicit-int]
    module_exit(__driver##_exit);
    ^
   include/linux/platform_device.h:222:2: note: in expansion of macro 'module_driver'
     module_driver(__platform_driver, platform_driver_register, \
     ^
>> drivers/mfd/hi655x-pmic.c:156:1: note: in expansion of macro 'module_platform_driver'
    module_platform_driver(hi655x_pmic_driver);
    ^
   drivers/mfd/hi655x-pmic.c:156:1: warning: parameter names (without types) in function declaration
   drivers/mfd/hi655x-pmic.c:158:15: error: expected declaration specifiers or '...' before string constant
    MODULE_AUTHOR("Chen Feng <puck.chen@...ilicon.com>");
                  ^
   drivers/mfd/hi655x-pmic.c:159:20: error: expected declaration specifiers or '...' before string constant
    MODULE_DESCRIPTION("Hisi hi655x pmic driver");
                       ^
   drivers/mfd/hi655x-pmic.c:160:16: error: expected declaration specifiers or '...' before string constant
    MODULE_LICENSE("GPL v2");
                   ^
   In file included from include/linux/platform_device.h:14:0,
                    from drivers/mfd/hi655x-pmic.c:19:
   drivers/mfd/hi655x-pmic.c:156:24: warning: 'hi655x_pmic_driver_init' defined but not used [-Wunused-function]
    module_platform_driver(hi655x_pmic_driver);
                           ^
   include/linux/device.h:1325:19: note: in definition of macro 'module_driver'
    static int __init __driver##_init(void) \
                      ^
>> drivers/mfd/hi655x-pmic.c:156:1: note: in expansion of macro 'module_platform_driver'
    module_platform_driver(hi655x_pmic_driver);
    ^
   drivers/mfd/hi655x-pmic.c:156:24: warning: 'hi655x_pmic_driver_exit' defined but not used [-Wunused-function]
    module_platform_driver(hi655x_pmic_driver);
                           ^
   include/linux/device.h:1330:20: note: in definition of macro 'module_driver'
    static void __exit __driver##_exit(void) \
                       ^
>> drivers/mfd/hi655x-pmic.c:156:1: note: in expansion of macro 'module_platform_driver'
    module_platform_driver(hi655x_pmic_driver);
    ^
   cc1: some warnings being treated as errors

vim +/module_platform_driver +156 drivers/mfd/hi655x-pmic.c

    13	
    14	#include <linux/io.h>
    15	#include <linux/interrupt.h>
    16	#include <linux/init.h>
    17	#include <linux/gpio.h>
    18	#include <linux/of_gpio.h>
  > 19	#include <linux/platform_device.h>
    20	#include <linux/of_platform.h>
    21	#include <linux/mfd/hi655x-pmic.h>
    22	#include <linux/regmap.h>
    23	
    24	static const struct of_device_id of_hi655x_pmic_child_match_tbl[] = {
    25		{ .compatible = "hisilicon,hi655x-regulator", },
    26		{},
    27	};
    28	
    29	static const struct of_device_id of_hi655x_pmic_match_tbl[] = {
    30		{ .compatible = "hisilicon,hi655x-pmic", },
    31		{},
    32	};
    33	
    34	static const struct regmap_irq hi655x_irqs[] = {
    35		{ .reg_offset = 0, .mask = OTMP_D1R_INT },
    36		{ .reg_offset = 0, .mask = VSYS_2P5_R_INT },
    37		{ .reg_offset = 0, .mask = VSYS_UV_D3R_INT },
    38		{ .reg_offset = 0, .mask = VSYS_6P0_D200UR_INT },
    39		{ .reg_offset = 0, .mask = PWRON_D4SR_INT },
    40		{ .reg_offset = 0, .mask = PWRON_D20F_INT },
    41		{ .reg_offset = 0, .mask = PWRON_D20R_INT },
    42		{ .reg_offset = 0, .mask = RESERVE_INT },
    43	};
    44	
    45	static const struct regmap_irq_chip hi655x_irq_chip = {
    46		.name = "hi655x-pmic",
    47		.irqs = hi655x_irqs,
    48		.num_regs = 1,
    49		.num_irqs = ARRAY_SIZE(hi655x_irqs),
    50		.status_base = HI655X_IRQ_STAT_BASE,
    51		.mask_base = HI655X_IRQ_MASK_BASE,
    52	};
    53	
    54	static unsigned int hi655x_pmic_get_version(struct hi655x_pmic *pmic)
    55	{
    56		u32 val;
    57	
    58		regmap_read(pmic->regmap,
    59			    HI655X_BUS_ADDR(HI655X_VER_REG), &val);
    60	
    61		return val;
    62	}
    63	
    64	static struct regmap_config hi655x_regmap_config = {
    65		.reg_bits = 32,
    66		.reg_stride = HI655X_STRIDE,
    67		.val_bits = 8,
    68		.max_register = HI655X_BUS_ADDR(0xFFF),
    69	};
    70	
    71	static void hi655x_local_irq_clear(struct regmap *map)
    72	{
    73		int i;
    74	
    75		regmap_write(map, HI655X_ANA_IRQM_BASE, HI655X_IRQ_CLR);
    76		for (i = 0; i < HI655X_IRQ_ARRAY; i++) {
    77			regmap_write(map, HI655X_IRQ_STAT_BASE + i * HI655X_STRIDE,
    78				     HI655X_IRQ_CLR);
    79		}
    80	}
    81	
    82	static int hi655x_pmic_probe(struct platform_device *pdev)
    83	{
    84		int ret;
    85		struct hi655x_pmic *pmic;
    86		struct device *dev = &pdev->dev;
    87		struct device_node *np = dev->of_node;
    88		void __iomem *base;
    89	
    90		pmic = devm_kzalloc(dev, sizeof(*pmic), GFP_KERNEL);
    91		pmic->dev = dev;
    92	
    93		pmic->res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
    94		if (!pmic->res) {
    95			dev_err(dev, "platform_get_resource err\n");
    96			return -ENOENT;
    97		}
    98		base = devm_ioremap_resource(dev, pmic->res);
    99		if (!base) {
   100			dev_err(dev, "cannot map register memory\n");
   101			return -ENOMEM;
   102		}
   103		pmic->regmap = devm_regmap_init_mmio_clk(dev, NULL, base,
   104							 &hi655x_regmap_config);
   105	
   106		pmic->ver = hi655x_pmic_get_version(pmic);
   107		if ((pmic->ver < PMU_VER_START) || (pmic->ver > PMU_VER_END)) {
   108			dev_warn(dev, "it is wrong pmu version\n");
   109			return -EINVAL;
   110		}
   111	
   112		hi655x_local_irq_clear(pmic->regmap);
   113	
   114		pmic->gpio = of_get_named_gpio(np, "pmic-gpios", 0);
   115		if (!gpio_is_valid(pmic->gpio)) {
   116			dev_err(dev, "cannot get the pmic-gpios\n");
   117			return -ENODEV;
   118		}
   119	
   120		ret = devm_gpio_request_one(dev, pmic->gpio, GPIOF_IN, "hi655x_pmic_irq");
   121		if (ret < 0) {
   122			dev_err(dev, "failed to request gpio %d  ret = %d\n",
   123				pmic->gpio, ret);
   124			return ret;
   125		}
   126	
   127		ret = regmap_add_irq_chip(pmic->regmap, gpio_to_irq(pmic->gpio),
   128					  IRQF_TRIGGER_LOW | IRQF_NO_SUSPEND, 0,
   129					  &hi655x_irq_chip, &pmic->irq_data);
   130		if (ret) {
   131			dev_err(dev, "add pmic irq chip error! ret %d\n", ret);
   132			return ret;
   133		}
   134	
   135		/* bind pmic to device */
   136		platform_set_drvdata(pdev, pmic);
   137	
   138		/* populate sub nodes */
   139		ret = of_platform_populate(np, of_hi655x_pmic_child_match_tbl,
   140					   NULL, dev);
   141		if (ret) {
   142			regmap_del_irq_chip(pmic->irq, pmic->irq_data);
   143			return ret;
   144		}
   145	
   146		return 0;
   147	}
   148	
   149	static struct platform_driver hi655x_pmic_driver = {
   150		.driver	= {
   151			.name =	"hi655x-pmic",
   152			.of_match_table = of_hi655x_pmic_match_tbl,
   153		},
   154		.probe  = hi655x_pmic_probe,
   155	};
 > 156	module_platform_driver(hi655x_pmic_driver);
   157	
   158	MODULE_AUTHOR("Chen Feng <puck.chen@...ilicon.com>");
   159	MODULE_DESCRIPTION("Hisi hi655x pmic driver");

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

Download attachment ".config.gz" of type "application/octet-stream" (42716 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ