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: <201701280248.Eo1WWeIL%fengguang.wu@intel.com>
Date:   Sat, 28 Jan 2017 03:00:51 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Sebastian Reichel <sre@...nel.org>
Cc:     kbuild-all@...org, Sebastian Reichel <sre@...nel.org>,
        Linus Walleij <linus.walleij@...aro.org>,
        Alexandre Courbot <gnurou@...il.com>,
        linux-gpio@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] gpio: mcp23s08: add pinconf support

Hi Sebastian,

[auto build test ERROR on gpio/for-next]
[also build test ERROR on v4.10-rc5 next-20170125]
[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/Sebastian-Reichel/mcp23s08-pinconf-support/20170127-230243
base:   https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next
config: i386-randconfig-c0-01280104 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   drivers/gpio/gpio-mcp23s08.c:86:22: error: field 'pinctrl_desc' has incomplete type
     struct pinctrl_desc pinctrl_desc;
                         ^
>> drivers/gpio/gpio-mcp23s08.c:139:38: error: array type has incomplete element type
    static const struct pinctrl_pin_desc mcp23x08_pins[] = {
                                         ^
   drivers/gpio/gpio-mcp23s08.c:140:2: error: implicit declaration of function 'PINCTRL_PIN' [-Werror=implicit-function-declaration]
     PINCTRL_PIN(0, "gpio0"),
     ^
   drivers/gpio/gpio-mcp23s08.c:150:38: error: array type has incomplete element type
    static const struct pinctrl_pin_desc mcp23x17_pins[] = {
                                         ^
   drivers/gpio/gpio-mcp23s08.c:188:21: error: variable 'mcp_pinctrl_ops' has initializer but incomplete type
    static const struct pinctrl_ops mcp_pinctrl_ops = {
                        ^
   drivers/gpio/gpio-mcp23s08.c:189:2: error: unknown field 'get_groups_count' specified in initializer
     .get_groups_count = mcp_pinctrl_get_groups_count,
     ^
   drivers/gpio/gpio-mcp23s08.c:189:2: warning: excess elements in struct initializer
   drivers/gpio/gpio-mcp23s08.c:189:2: warning: (near initialization for 'mcp_pinctrl_ops')
   drivers/gpio/gpio-mcp23s08.c:190:2: error: unknown field 'get_group_name' specified in initializer
     .get_group_name = mcp_pinctrl_get_group_name,
     ^
   drivers/gpio/gpio-mcp23s08.c:190:2: warning: excess elements in struct initializer
   drivers/gpio/gpio-mcp23s08.c:190:2: warning: (near initialization for 'mcp_pinctrl_ops')
   drivers/gpio/gpio-mcp23s08.c:191:2: error: unknown field 'get_group_pins' specified in initializer
     .get_group_pins = mcp_pinctrl_get_group_pins,
     ^
   drivers/gpio/gpio-mcp23s08.c:191:2: warning: excess elements in struct initializer
   drivers/gpio/gpio-mcp23s08.c:191:2: warning: (near initialization for 'mcp_pinctrl_ops')
   drivers/gpio/gpio-mcp23s08.c:193:2: error: unknown field 'dt_node_to_map' specified in initializer
     .dt_node_to_map = pinconf_generic_dt_node_to_map_pin,
     ^
   drivers/gpio/gpio-mcp23s08.c:193:20: error: 'pinconf_generic_dt_node_to_map_pin' undeclared here (not in a function)
     .dt_node_to_map = pinconf_generic_dt_node_to_map_pin,
                       ^
   drivers/gpio/gpio-mcp23s08.c:193:2: warning: excess elements in struct initializer
     .dt_node_to_map = pinconf_generic_dt_node_to_map_pin,
     ^
   drivers/gpio/gpio-mcp23s08.c:193:2: warning: (near initialization for 'mcp_pinctrl_ops')
   drivers/gpio/gpio-mcp23s08.c:194:2: error: unknown field 'dt_free_map' specified in initializer
     .dt_free_map = pinconf_generic_dt_free_map,
     ^
   drivers/gpio/gpio-mcp23s08.c:194:17: error: 'pinconf_generic_dt_free_map' undeclared here (not in a function)
     .dt_free_map = pinconf_generic_dt_free_map,
                    ^
   drivers/gpio/gpio-mcp23s08.c:194:2: warning: excess elements in struct initializer
     .dt_free_map = pinconf_generic_dt_free_map,
     ^
   drivers/gpio/gpio-mcp23s08.c:194:2: warning: (near initialization for 'mcp_pinctrl_ops')
   drivers/gpio/gpio-mcp23s08.c: In function 'mcp_pinconf_get':
   drivers/gpio/gpio-mcp23s08.c:201:9: error: implicit declaration of function 'pinctrl_dev_get_drvdata' [-Werror=implicit-function-declaration]
     struct mcp23s08 *mcp = pinctrl_dev_get_drvdata(pctldev);
            ^
   drivers/gpio/gpio-mcp23s08.c:201:25: warning: initialization makes pointer from integer without a cast
     struct mcp23s08 *mcp = pinctrl_dev_get_drvdata(pctldev);
                            ^
   drivers/gpio/gpio-mcp23s08.c: In function 'mcp_pinconf_set':
   drivers/gpio/gpio-mcp23s08.c:226:25: warning: initialization makes pointer from integer without a cast
     struct mcp23s08 *mcp = pinctrl_dev_get_drvdata(pctldev);
                            ^
   drivers/gpio/gpio-mcp23s08.c: At top level:
   drivers/gpio/gpio-mcp23s08.c:252:21: error: variable 'mcp_pinconf_ops' has initializer but incomplete type
    static const struct pinconf_ops mcp_pinconf_ops = {
                        ^
   drivers/gpio/gpio-mcp23s08.c:253:2: error: unknown field 'pin_config_get' specified in initializer
     .pin_config_get = mcp_pinconf_get,
     ^
   drivers/gpio/gpio-mcp23s08.c:253:2: warning: excess elements in struct initializer
   drivers/gpio/gpio-mcp23s08.c:253:2: warning: (near initialization for 'mcp_pinconf_ops')
   drivers/gpio/gpio-mcp23s08.c:254:2: error: unknown field 'pin_config_set' specified in initializer
     .pin_config_set = mcp_pinconf_set,
     ^
   drivers/gpio/gpio-mcp23s08.c:254:2: warning: excess elements in struct initializer
   drivers/gpio/gpio-mcp23s08.c:254:2: warning: (near initialization for 'mcp_pinconf_ops')
   drivers/gpio/gpio-mcp23s08.c:255:2: error: unknown field 'is_generic' specified in initializer
     .is_generic = true,
     ^
   drivers/gpio/gpio-mcp23s08.c:255:2: warning: excess elements in struct initializer
   drivers/gpio/gpio-mcp23s08.c:255:2: warning: (near initialization for 'mcp_pinconf_ops')
   drivers/gpio/gpio-mcp23s08.c: In function 'mcp23s08_probe_one':
   drivers/gpio/gpio-mcp23s08.c:776:2: error: implicit declaration of function 'pinctrl_register' [-Werror=implicit-function-declaration]
     mcp->pctldev = pinctrl_register(&mcp->pinctrl_desc, dev, mcp);
     ^
   drivers/gpio/gpio-mcp23s08.c: At top level:
   drivers/gpio/gpio-mcp23s08.c:139:38: warning: 'mcp23x08_pins' defined but not used [-Wunused-variable]
    static const struct pinctrl_pin_desc mcp23x08_pins[] = {
                                         ^
   drivers/gpio/gpio-mcp23s08.c:150:38: warning: 'mcp23x17_pins' defined but not used [-Wunused-variable]
    static const struct pinctrl_pin_desc mcp23x17_pins[] = {
                                         ^
   cc1: some warnings being treated as errors

vim +139 drivers/gpio/gpio-mcp23s08.c

    80		struct gpio_chip	chip;
    81	
    82		struct regmap		*regmap;
    83		struct device		*dev;
    84	
    85		struct pinctrl_dev	*pctldev;
  > 86		struct pinctrl_desc	pinctrl_desc;
    87	};
    88	
    89	static const struct regmap_config mcp23x08_regmap = {
    90		.reg_bits = 8,
    91		.val_bits = 8,
    92	
    93		.reg_stride = 1,
    94		.max_register = MCP_OLAT,
    95	};
    96	
    97	static const struct regmap_config mcp23x17_regmap = {
    98		.reg_bits = 8,
    99		.val_bits = 16,
   100	
   101		.reg_stride = 2,
   102		.max_register = MCP_OLAT << 1,
   103		.val_format_endian = REGMAP_ENDIAN_LITTLE,
   104	};
   105	
   106	static int mcp_read(struct mcp23s08 *mcp, unsigned int reg, unsigned int *val)
   107	{
   108		return regmap_read(mcp->regmap, reg << mcp->reg_shift, val);
   109	}
   110	
   111	static int mcp_write(struct mcp23s08 *mcp, unsigned int reg, unsigned int val)
   112	{
   113		return regmap_write(mcp->regmap, reg << mcp->reg_shift, val);
   114	}
   115	
   116	static int mcp_set_bit(struct mcp23s08 *mcp, unsigned int reg,
   117			       unsigned int pin, bool enabled)
   118	{
   119		u16 val  = enabled ? 0xffff : 0x0000;
   120		u16 mask = BIT(pin);
   121		return regmap_update_bits(mcp->regmap, reg << mcp->reg_shift,
   122					  mask, val);
   123	}
   124	
   125	static int mcp_update_cache(struct mcp23s08 *mcp)
   126	{
   127		int ret, reg, i;
   128	
   129		for (i = 0; i < ARRAY_SIZE(mcp->cache); i++) {
   130			ret = mcp_read(mcp, i, &reg);
   131			if (ret < 0)
   132				return ret;
   133			mcp->cache[i] = reg;
   134		}
   135	
   136		return 0;
   137	}
   138	
 > 139	static const struct pinctrl_pin_desc mcp23x08_pins[] = {
   140		PINCTRL_PIN(0, "gpio0"),
   141		PINCTRL_PIN(1, "gpio1"),
   142		PINCTRL_PIN(2, "gpio2"),

---
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/gzip" (25466 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ