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] [day] [month] [year] [list]
Message-ID: <20160111054940.GI3331@x1>
Date:	Mon, 11 Jan 2016 05:49:40 +0000
From:	Lee Jones <lee.jones@...aro.org>
To:	kbuild test robot <lkp@...el.com>
Cc:	Chen Feng <puck.chen@...ilicon.com>, kbuild-all@...org,
	lgirdwood@...il.com, broonie@...nel.org,
	linux-kernel@...r.kernel.org, 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

Obviously I am unable to accept (or even review) this patch until
these issues are resolved.  Please fix and resubmit the set.

On Tue, 05 Jan 2016, kbuild test robot wrote:
> [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



-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ