All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Jianqun Xu <jay.xu@rock-chips.com>,
	linus.walleij@linaro.org, heiko@sntech.de
Cc: kbuild-all@lists.01.org, linux-gpio@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org,
	Jianqun Xu <jay.xu@rock-chips.com>
Subject: Re: [PATCH 1/6] pinctrl: rockchip: make driver be tristate module
Date: Tue, 1 Sep 2020 18:13:16 +0800	[thread overview]
Message-ID: <202009011812.LO6Db3sN%lkp@intel.com> (raw)
In-Reply-To: <20200831084753.7115-2-jay.xu@rock-chips.com>

[-- Attachment #1: Type: text/plain, Size: 7313 bytes --]

Hi Jianqun,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on rockchip/for-next]
[also build test ERROR on pinctrl/devel v5.9-rc3 next-20200828]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Jianqun-Xu/rockchip-pinctrl-fixes-for-GKI/20200831-165040
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git for-next
config: x86_64-randconfig-m031-20200901 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
        # save the attached .config to linux build tree
        make W=1 ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/pinctrl/pinctrl-rockchip.c: In function 'rockchip_pinctrl_parse_groups':
>> drivers/pinctrl/pinctrl-rockchip.c:2881:9: error: implicit declaration of function 'pinconf_generic_parse_dt_config'; did you mean 'pinconf_generic_dump_config'? [-Werror=implicit-function-declaration]
    2881 |   ret = pinconf_generic_parse_dt_config(np_config, NULL,
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |         pinconf_generic_dump_config
   drivers/pinctrl/pinctrl-rockchip.c: In function 'rockchip_gpiolib_register':
>> drivers/pinctrl/pinctrl-rockchip.c:3473:5: error: 'struct gpio_chip' has no member named 'of_node'
    3473 |   gc->of_node = bank->of_node;
         |     ^~
   At top level:
   drivers/pinctrl/pinctrl-rockchip.c:2804:34: warning: 'rockchip_bank_match' defined but not used [-Wunused-const-variable=]
    2804 | static const struct of_device_id rockchip_bank_match[] = {
         |                                  ^~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

# https://github.com/0day-ci/linux/commit/38fa905767d010bbbc1035b48494d4a83bb72410
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Jianqun-Xu/rockchip-pinctrl-fixes-for-GKI/20200831-165040
git checkout 38fa905767d010bbbc1035b48494d4a83bb72410
vim +2881 drivers/pinctrl/pinctrl-rockchip.c

d3e5116119bd02 Heiko Stübner   2013-06-10  2823  
d3e5116119bd02 Heiko Stübner   2013-06-10  2824  static int rockchip_pinctrl_parse_groups(struct device_node *np,
d3e5116119bd02 Heiko Stübner   2013-06-10  2825  					      struct rockchip_pin_group *grp,
d3e5116119bd02 Heiko Stübner   2013-06-10  2826  					      struct rockchip_pinctrl *info,
d3e5116119bd02 Heiko Stübner   2013-06-10  2827  					      u32 index)
d3e5116119bd02 Heiko Stübner   2013-06-10  2828  {
d3e5116119bd02 Heiko Stübner   2013-06-10  2829  	struct rockchip_pin_bank *bank;
d3e5116119bd02 Heiko Stübner   2013-06-10  2830  	int size;
d3e5116119bd02 Heiko Stübner   2013-06-10  2831  	const __be32 *list;
d3e5116119bd02 Heiko Stübner   2013-06-10  2832  	int num;
d3e5116119bd02 Heiko Stübner   2013-06-10  2833  	int i, j;
d3e5116119bd02 Heiko Stübner   2013-06-10  2834  	int ret;
d3e5116119bd02 Heiko Stübner   2013-06-10  2835  
94f4e54cecaf3e Rob Herring     2018-08-27  2836  	dev_dbg(info->dev, "group(%d): %pOFn\n", index, np);
d3e5116119bd02 Heiko Stübner   2013-06-10  2837  
d3e5116119bd02 Heiko Stübner   2013-06-10  2838  	/* Initialise group */
d3e5116119bd02 Heiko Stübner   2013-06-10  2839  	grp->name = np->name;
d3e5116119bd02 Heiko Stübner   2013-06-10  2840  
d3e5116119bd02 Heiko Stübner   2013-06-10  2841  	/*
d3e5116119bd02 Heiko Stübner   2013-06-10  2842  	 * the binding format is rockchip,pins = <bank pin mux CONFIG>,
d3e5116119bd02 Heiko Stübner   2013-06-10  2843  	 * do sanity check and calculate pins number
d3e5116119bd02 Heiko Stübner   2013-06-10  2844  	 */
d3e5116119bd02 Heiko Stübner   2013-06-10  2845  	list = of_get_property(np, "rockchip,pins", &size);
d3e5116119bd02 Heiko Stübner   2013-06-10  2846  	/* we do not check return since it's safe node passed down */
d3e5116119bd02 Heiko Stübner   2013-06-10  2847  	size /= sizeof(*list);
d3e5116119bd02 Heiko Stübner   2013-06-10  2848  	if (!size || size % 4) {
d3e5116119bd02 Heiko Stübner   2013-06-10  2849  		dev_err(info->dev, "wrong pins number or pins and configs should be by 4\n");
d3e5116119bd02 Heiko Stübner   2013-06-10  2850  		return -EINVAL;
d3e5116119bd02 Heiko Stübner   2013-06-10  2851  	}
d3e5116119bd02 Heiko Stübner   2013-06-10  2852  
d3e5116119bd02 Heiko Stübner   2013-06-10  2853  	grp->npins = size / 4;
d3e5116119bd02 Heiko Stübner   2013-06-10  2854  
a86854d0c599b3 Kees Cook       2018-06-12  2855  	grp->pins = devm_kcalloc(info->dev, grp->npins, sizeof(unsigned int),
d3e5116119bd02 Heiko Stübner   2013-06-10  2856  						GFP_KERNEL);
a86854d0c599b3 Kees Cook       2018-06-12  2857  	grp->data = devm_kcalloc(info->dev,
a86854d0c599b3 Kees Cook       2018-06-12  2858  					grp->npins,
d3e5116119bd02 Heiko Stübner   2013-06-10  2859  					sizeof(struct rockchip_pin_config),
d3e5116119bd02 Heiko Stübner   2013-06-10  2860  					GFP_KERNEL);
d3e5116119bd02 Heiko Stübner   2013-06-10  2861  	if (!grp->pins || !grp->data)
d3e5116119bd02 Heiko Stübner   2013-06-10  2862  		return -ENOMEM;
d3e5116119bd02 Heiko Stübner   2013-06-10  2863  
d3e5116119bd02 Heiko Stübner   2013-06-10  2864  	for (i = 0, j = 0; i < size; i += 4, j++) {
d3e5116119bd02 Heiko Stübner   2013-06-10  2865  		const __be32 *phandle;
d3e5116119bd02 Heiko Stübner   2013-06-10  2866  		struct device_node *np_config;
d3e5116119bd02 Heiko Stübner   2013-06-10  2867  
d3e5116119bd02 Heiko Stübner   2013-06-10  2868  		num = be32_to_cpu(*list++);
d3e5116119bd02 Heiko Stübner   2013-06-10  2869  		bank = bank_num_to_bank(info, num);
d3e5116119bd02 Heiko Stübner   2013-06-10  2870  		if (IS_ERR(bank))
d3e5116119bd02 Heiko Stübner   2013-06-10  2871  			return PTR_ERR(bank);
d3e5116119bd02 Heiko Stübner   2013-06-10  2872  
d3e5116119bd02 Heiko Stübner   2013-06-10  2873  		grp->pins[j] = bank->pin_base + be32_to_cpu(*list++);
d3e5116119bd02 Heiko Stübner   2013-06-10  2874  		grp->data[j].func = be32_to_cpu(*list++);
d3e5116119bd02 Heiko Stübner   2013-06-10  2875  
d3e5116119bd02 Heiko Stübner   2013-06-10  2876  		phandle = list++;
d3e5116119bd02 Heiko Stübner   2013-06-10  2877  		if (!phandle)
d3e5116119bd02 Heiko Stübner   2013-06-10  2878  			return -EINVAL;
d3e5116119bd02 Heiko Stübner   2013-06-10  2879  
d3e5116119bd02 Heiko Stübner   2013-06-10  2880  		np_config = of_find_node_by_phandle(be32_to_cpup(phandle));
dd4d01f7bad886 Soren Brinkmann 2015-01-09 @2881  		ret = pinconf_generic_parse_dt_config(np_config, NULL,
d3e5116119bd02 Heiko Stübner   2013-06-10  2882  				&grp->data[j].configs, &grp->data[j].nconfigs);
d3e5116119bd02 Heiko Stübner   2013-06-10  2883  		if (ret)
d3e5116119bd02 Heiko Stübner   2013-06-10  2884  			return ret;
d3e5116119bd02 Heiko Stübner   2013-06-10  2885  	}
d3e5116119bd02 Heiko Stübner   2013-06-10  2886  
d3e5116119bd02 Heiko Stübner   2013-06-10  2887  	return 0;
d3e5116119bd02 Heiko Stübner   2013-06-10  2888  }
d3e5116119bd02 Heiko Stübner   2013-06-10  2889  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 36580 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Jianqun Xu <jay.xu@rock-chips.com>,
	linus.walleij@linaro.org, heiko@sntech.de
Cc: linux-gpio@vger.kernel.org, Jianqun Xu <jay.xu@rock-chips.com>,
	kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	linux-rockchip@lists.infradead.org
Subject: Re: [PATCH 1/6] pinctrl: rockchip: make driver be tristate module
Date: Tue, 1 Sep 2020 18:13:16 +0800	[thread overview]
Message-ID: <202009011812.LO6Db3sN%lkp@intel.com> (raw)
In-Reply-To: <20200831084753.7115-2-jay.xu@rock-chips.com>

[-- Attachment #1: Type: text/plain, Size: 7313 bytes --]

Hi Jianqun,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on rockchip/for-next]
[also build test ERROR on pinctrl/devel v5.9-rc3 next-20200828]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Jianqun-Xu/rockchip-pinctrl-fixes-for-GKI/20200831-165040
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git for-next
config: x86_64-randconfig-m031-20200901 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
        # save the attached .config to linux build tree
        make W=1 ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/pinctrl/pinctrl-rockchip.c: In function 'rockchip_pinctrl_parse_groups':
>> drivers/pinctrl/pinctrl-rockchip.c:2881:9: error: implicit declaration of function 'pinconf_generic_parse_dt_config'; did you mean 'pinconf_generic_dump_config'? [-Werror=implicit-function-declaration]
    2881 |   ret = pinconf_generic_parse_dt_config(np_config, NULL,
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |         pinconf_generic_dump_config
   drivers/pinctrl/pinctrl-rockchip.c: In function 'rockchip_gpiolib_register':
>> drivers/pinctrl/pinctrl-rockchip.c:3473:5: error: 'struct gpio_chip' has no member named 'of_node'
    3473 |   gc->of_node = bank->of_node;
         |     ^~
   At top level:
   drivers/pinctrl/pinctrl-rockchip.c:2804:34: warning: 'rockchip_bank_match' defined but not used [-Wunused-const-variable=]
    2804 | static const struct of_device_id rockchip_bank_match[] = {
         |                                  ^~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

# https://github.com/0day-ci/linux/commit/38fa905767d010bbbc1035b48494d4a83bb72410
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Jianqun-Xu/rockchip-pinctrl-fixes-for-GKI/20200831-165040
git checkout 38fa905767d010bbbc1035b48494d4a83bb72410
vim +2881 drivers/pinctrl/pinctrl-rockchip.c

d3e5116119bd02 Heiko Stübner   2013-06-10  2823  
d3e5116119bd02 Heiko Stübner   2013-06-10  2824  static int rockchip_pinctrl_parse_groups(struct device_node *np,
d3e5116119bd02 Heiko Stübner   2013-06-10  2825  					      struct rockchip_pin_group *grp,
d3e5116119bd02 Heiko Stübner   2013-06-10  2826  					      struct rockchip_pinctrl *info,
d3e5116119bd02 Heiko Stübner   2013-06-10  2827  					      u32 index)
d3e5116119bd02 Heiko Stübner   2013-06-10  2828  {
d3e5116119bd02 Heiko Stübner   2013-06-10  2829  	struct rockchip_pin_bank *bank;
d3e5116119bd02 Heiko Stübner   2013-06-10  2830  	int size;
d3e5116119bd02 Heiko Stübner   2013-06-10  2831  	const __be32 *list;
d3e5116119bd02 Heiko Stübner   2013-06-10  2832  	int num;
d3e5116119bd02 Heiko Stübner   2013-06-10  2833  	int i, j;
d3e5116119bd02 Heiko Stübner   2013-06-10  2834  	int ret;
d3e5116119bd02 Heiko Stübner   2013-06-10  2835  
94f4e54cecaf3e Rob Herring     2018-08-27  2836  	dev_dbg(info->dev, "group(%d): %pOFn\n", index, np);
d3e5116119bd02 Heiko Stübner   2013-06-10  2837  
d3e5116119bd02 Heiko Stübner   2013-06-10  2838  	/* Initialise group */
d3e5116119bd02 Heiko Stübner   2013-06-10  2839  	grp->name = np->name;
d3e5116119bd02 Heiko Stübner   2013-06-10  2840  
d3e5116119bd02 Heiko Stübner   2013-06-10  2841  	/*
d3e5116119bd02 Heiko Stübner   2013-06-10  2842  	 * the binding format is rockchip,pins = <bank pin mux CONFIG>,
d3e5116119bd02 Heiko Stübner   2013-06-10  2843  	 * do sanity check and calculate pins number
d3e5116119bd02 Heiko Stübner   2013-06-10  2844  	 */
d3e5116119bd02 Heiko Stübner   2013-06-10  2845  	list = of_get_property(np, "rockchip,pins", &size);
d3e5116119bd02 Heiko Stübner   2013-06-10  2846  	/* we do not check return since it's safe node passed down */
d3e5116119bd02 Heiko Stübner   2013-06-10  2847  	size /= sizeof(*list);
d3e5116119bd02 Heiko Stübner   2013-06-10  2848  	if (!size || size % 4) {
d3e5116119bd02 Heiko Stübner   2013-06-10  2849  		dev_err(info->dev, "wrong pins number or pins and configs should be by 4\n");
d3e5116119bd02 Heiko Stübner   2013-06-10  2850  		return -EINVAL;
d3e5116119bd02 Heiko Stübner   2013-06-10  2851  	}
d3e5116119bd02 Heiko Stübner   2013-06-10  2852  
d3e5116119bd02 Heiko Stübner   2013-06-10  2853  	grp->npins = size / 4;
d3e5116119bd02 Heiko Stübner   2013-06-10  2854  
a86854d0c599b3 Kees Cook       2018-06-12  2855  	grp->pins = devm_kcalloc(info->dev, grp->npins, sizeof(unsigned int),
d3e5116119bd02 Heiko Stübner   2013-06-10  2856  						GFP_KERNEL);
a86854d0c599b3 Kees Cook       2018-06-12  2857  	grp->data = devm_kcalloc(info->dev,
a86854d0c599b3 Kees Cook       2018-06-12  2858  					grp->npins,
d3e5116119bd02 Heiko Stübner   2013-06-10  2859  					sizeof(struct rockchip_pin_config),
d3e5116119bd02 Heiko Stübner   2013-06-10  2860  					GFP_KERNEL);
d3e5116119bd02 Heiko Stübner   2013-06-10  2861  	if (!grp->pins || !grp->data)
d3e5116119bd02 Heiko Stübner   2013-06-10  2862  		return -ENOMEM;
d3e5116119bd02 Heiko Stübner   2013-06-10  2863  
d3e5116119bd02 Heiko Stübner   2013-06-10  2864  	for (i = 0, j = 0; i < size; i += 4, j++) {
d3e5116119bd02 Heiko Stübner   2013-06-10  2865  		const __be32 *phandle;
d3e5116119bd02 Heiko Stübner   2013-06-10  2866  		struct device_node *np_config;
d3e5116119bd02 Heiko Stübner   2013-06-10  2867  
d3e5116119bd02 Heiko Stübner   2013-06-10  2868  		num = be32_to_cpu(*list++);
d3e5116119bd02 Heiko Stübner   2013-06-10  2869  		bank = bank_num_to_bank(info, num);
d3e5116119bd02 Heiko Stübner   2013-06-10  2870  		if (IS_ERR(bank))
d3e5116119bd02 Heiko Stübner   2013-06-10  2871  			return PTR_ERR(bank);
d3e5116119bd02 Heiko Stübner   2013-06-10  2872  
d3e5116119bd02 Heiko Stübner   2013-06-10  2873  		grp->pins[j] = bank->pin_base + be32_to_cpu(*list++);
d3e5116119bd02 Heiko Stübner   2013-06-10  2874  		grp->data[j].func = be32_to_cpu(*list++);
d3e5116119bd02 Heiko Stübner   2013-06-10  2875  
d3e5116119bd02 Heiko Stübner   2013-06-10  2876  		phandle = list++;
d3e5116119bd02 Heiko Stübner   2013-06-10  2877  		if (!phandle)
d3e5116119bd02 Heiko Stübner   2013-06-10  2878  			return -EINVAL;
d3e5116119bd02 Heiko Stübner   2013-06-10  2879  
d3e5116119bd02 Heiko Stübner   2013-06-10  2880  		np_config = of_find_node_by_phandle(be32_to_cpup(phandle));
dd4d01f7bad886 Soren Brinkmann 2015-01-09 @2881  		ret = pinconf_generic_parse_dt_config(np_config, NULL,
d3e5116119bd02 Heiko Stübner   2013-06-10  2882  				&grp->data[j].configs, &grp->data[j].nconfigs);
d3e5116119bd02 Heiko Stübner   2013-06-10  2883  		if (ret)
d3e5116119bd02 Heiko Stübner   2013-06-10  2884  			return ret;
d3e5116119bd02 Heiko Stübner   2013-06-10  2885  	}
d3e5116119bd02 Heiko Stübner   2013-06-10  2886  
d3e5116119bd02 Heiko Stübner   2013-06-10  2887  	return 0;
d3e5116119bd02 Heiko Stübner   2013-06-10  2888  }
d3e5116119bd02 Heiko Stübner   2013-06-10  2889  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 36580 bytes --]

[-- Attachment #3: Type: text/plain, Size: 170 bytes --]

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 1/6] pinctrl: rockchip: make driver be tristate module
Date: Tue, 01 Sep 2020 18:13:16 +0800	[thread overview]
Message-ID: <202009011812.LO6Db3sN%lkp@intel.com> (raw)
In-Reply-To: <20200831084753.7115-2-jay.xu@rock-chips.com>

[-- Attachment #1: Type: text/plain, Size: 7492 bytes --]

Hi Jianqun,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on rockchip/for-next]
[also build test ERROR on pinctrl/devel v5.9-rc3 next-20200828]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Jianqun-Xu/rockchip-pinctrl-fixes-for-GKI/20200831-165040
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git for-next
config: x86_64-randconfig-m031-20200901 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
        # save the attached .config to linux build tree
        make W=1 ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/pinctrl/pinctrl-rockchip.c: In function 'rockchip_pinctrl_parse_groups':
>> drivers/pinctrl/pinctrl-rockchip.c:2881:9: error: implicit declaration of function 'pinconf_generic_parse_dt_config'; did you mean 'pinconf_generic_dump_config'? [-Werror=implicit-function-declaration]
    2881 |   ret = pinconf_generic_parse_dt_config(np_config, NULL,
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |         pinconf_generic_dump_config
   drivers/pinctrl/pinctrl-rockchip.c: In function 'rockchip_gpiolib_register':
>> drivers/pinctrl/pinctrl-rockchip.c:3473:5: error: 'struct gpio_chip' has no member named 'of_node'
    3473 |   gc->of_node = bank->of_node;
         |     ^~
   At top level:
   drivers/pinctrl/pinctrl-rockchip.c:2804:34: warning: 'rockchip_bank_match' defined but not used [-Wunused-const-variable=]
    2804 | static const struct of_device_id rockchip_bank_match[] = {
         |                                  ^~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

# https://github.com/0day-ci/linux/commit/38fa905767d010bbbc1035b48494d4a83bb72410
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Jianqun-Xu/rockchip-pinctrl-fixes-for-GKI/20200831-165040
git checkout 38fa905767d010bbbc1035b48494d4a83bb72410
vim +2881 drivers/pinctrl/pinctrl-rockchip.c

d3e5116119bd02 Heiko Stübner   2013-06-10  2823  
d3e5116119bd02 Heiko Stübner   2013-06-10  2824  static int rockchip_pinctrl_parse_groups(struct device_node *np,
d3e5116119bd02 Heiko Stübner   2013-06-10  2825  					      struct rockchip_pin_group *grp,
d3e5116119bd02 Heiko Stübner   2013-06-10  2826  					      struct rockchip_pinctrl *info,
d3e5116119bd02 Heiko Stübner   2013-06-10  2827  					      u32 index)
d3e5116119bd02 Heiko Stübner   2013-06-10  2828  {
d3e5116119bd02 Heiko Stübner   2013-06-10  2829  	struct rockchip_pin_bank *bank;
d3e5116119bd02 Heiko Stübner   2013-06-10  2830  	int size;
d3e5116119bd02 Heiko Stübner   2013-06-10  2831  	const __be32 *list;
d3e5116119bd02 Heiko Stübner   2013-06-10  2832  	int num;
d3e5116119bd02 Heiko Stübner   2013-06-10  2833  	int i, j;
d3e5116119bd02 Heiko Stübner   2013-06-10  2834  	int ret;
d3e5116119bd02 Heiko Stübner   2013-06-10  2835  
94f4e54cecaf3e Rob Herring     2018-08-27  2836  	dev_dbg(info->dev, "group(%d): %pOFn\n", index, np);
d3e5116119bd02 Heiko Stübner   2013-06-10  2837  
d3e5116119bd02 Heiko Stübner   2013-06-10  2838  	/* Initialise group */
d3e5116119bd02 Heiko Stübner   2013-06-10  2839  	grp->name = np->name;
d3e5116119bd02 Heiko Stübner   2013-06-10  2840  
d3e5116119bd02 Heiko Stübner   2013-06-10  2841  	/*
d3e5116119bd02 Heiko Stübner   2013-06-10  2842  	 * the binding format is rockchip,pins = <bank pin mux CONFIG>,
d3e5116119bd02 Heiko Stübner   2013-06-10  2843  	 * do sanity check and calculate pins number
d3e5116119bd02 Heiko Stübner   2013-06-10  2844  	 */
d3e5116119bd02 Heiko Stübner   2013-06-10  2845  	list = of_get_property(np, "rockchip,pins", &size);
d3e5116119bd02 Heiko Stübner   2013-06-10  2846  	/* we do not check return since it's safe node passed down */
d3e5116119bd02 Heiko Stübner   2013-06-10  2847  	size /= sizeof(*list);
d3e5116119bd02 Heiko Stübner   2013-06-10  2848  	if (!size || size % 4) {
d3e5116119bd02 Heiko Stübner   2013-06-10  2849  		dev_err(info->dev, "wrong pins number or pins and configs should be by 4\n");
d3e5116119bd02 Heiko Stübner   2013-06-10  2850  		return -EINVAL;
d3e5116119bd02 Heiko Stübner   2013-06-10  2851  	}
d3e5116119bd02 Heiko Stübner   2013-06-10  2852  
d3e5116119bd02 Heiko Stübner   2013-06-10  2853  	grp->npins = size / 4;
d3e5116119bd02 Heiko Stübner   2013-06-10  2854  
a86854d0c599b3 Kees Cook       2018-06-12  2855  	grp->pins = devm_kcalloc(info->dev, grp->npins, sizeof(unsigned int),
d3e5116119bd02 Heiko Stübner   2013-06-10  2856  						GFP_KERNEL);
a86854d0c599b3 Kees Cook       2018-06-12  2857  	grp->data = devm_kcalloc(info->dev,
a86854d0c599b3 Kees Cook       2018-06-12  2858  					grp->npins,
d3e5116119bd02 Heiko Stübner   2013-06-10  2859  					sizeof(struct rockchip_pin_config),
d3e5116119bd02 Heiko Stübner   2013-06-10  2860  					GFP_KERNEL);
d3e5116119bd02 Heiko Stübner   2013-06-10  2861  	if (!grp->pins || !grp->data)
d3e5116119bd02 Heiko Stübner   2013-06-10  2862  		return -ENOMEM;
d3e5116119bd02 Heiko Stübner   2013-06-10  2863  
d3e5116119bd02 Heiko Stübner   2013-06-10  2864  	for (i = 0, j = 0; i < size; i += 4, j++) {
d3e5116119bd02 Heiko Stübner   2013-06-10  2865  		const __be32 *phandle;
d3e5116119bd02 Heiko Stübner   2013-06-10  2866  		struct device_node *np_config;
d3e5116119bd02 Heiko Stübner   2013-06-10  2867  
d3e5116119bd02 Heiko Stübner   2013-06-10  2868  		num = be32_to_cpu(*list++);
d3e5116119bd02 Heiko Stübner   2013-06-10  2869  		bank = bank_num_to_bank(info, num);
d3e5116119bd02 Heiko Stübner   2013-06-10  2870  		if (IS_ERR(bank))
d3e5116119bd02 Heiko Stübner   2013-06-10  2871  			return PTR_ERR(bank);
d3e5116119bd02 Heiko Stübner   2013-06-10  2872  
d3e5116119bd02 Heiko Stübner   2013-06-10  2873  		grp->pins[j] = bank->pin_base + be32_to_cpu(*list++);
d3e5116119bd02 Heiko Stübner   2013-06-10  2874  		grp->data[j].func = be32_to_cpu(*list++);
d3e5116119bd02 Heiko Stübner   2013-06-10  2875  
d3e5116119bd02 Heiko Stübner   2013-06-10  2876  		phandle = list++;
d3e5116119bd02 Heiko Stübner   2013-06-10  2877  		if (!phandle)
d3e5116119bd02 Heiko Stübner   2013-06-10  2878  			return -EINVAL;
d3e5116119bd02 Heiko Stübner   2013-06-10  2879  
d3e5116119bd02 Heiko Stübner   2013-06-10  2880  		np_config = of_find_node_by_phandle(be32_to_cpup(phandle));
dd4d01f7bad886 Soren Brinkmann 2015-01-09 @2881  		ret = pinconf_generic_parse_dt_config(np_config, NULL,
d3e5116119bd02 Heiko Stübner   2013-06-10  2882  				&grp->data[j].configs, &grp->data[j].nconfigs);
d3e5116119bd02 Heiko Stübner   2013-06-10  2883  		if (ret)
d3e5116119bd02 Heiko Stübner   2013-06-10  2884  			return ret;
d3e5116119bd02 Heiko Stübner   2013-06-10  2885  	}
d3e5116119bd02 Heiko Stübner   2013-06-10  2886  
d3e5116119bd02 Heiko Stübner   2013-06-10  2887  	return 0;
d3e5116119bd02 Heiko Stübner   2013-06-10  2888  }
d3e5116119bd02 Heiko Stübner   2013-06-10  2889  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36580 bytes --]

  reply	other threads:[~2020-09-01 10:16 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-31  8:47 [PATCH 0/6] rockchip-pinctrl fixes for GKI Jianqun Xu
2020-08-31  8:47 ` Jianqun Xu
2020-08-31  8:47 ` [PATCH 1/6] pinctrl: rockchip: make driver be tristate module Jianqun Xu
2020-08-31  8:47   ` Jianqun Xu
2020-09-01 10:13   ` kernel test robot [this message]
2020-09-01 10:13     ` kernel test robot
2020-09-01 10:13     ` kernel test robot
2020-09-05 21:51     ` Heiko Stübner
2020-09-05 21:51       ` Heiko Stübner
2020-09-05 21:51       ` Heiko Stübner
2020-09-05 22:01   ` Heiko Stübner
2020-09-05 22:01     ` Heiko Stübner
2020-09-05 22:23     ` Heiko Stübner
2020-09-05 22:23       ` Heiko Stübner
2020-08-31  8:47 ` [PATCH 2/6] pinctrl: rockchip: enable gpio pclk for rockchip_gpio_to_irq Jianqun Xu
2020-08-31  8:47   ` Jianqun Xu
2020-09-05 21:54   ` Heiko Stübner
2020-09-05 21:54     ` Heiko Stübner
2020-08-31  8:47 ` [PATCH 3/6] pinctrl: rockchip: create irq mapping in gpio_to_irq Jianqun Xu
2020-08-31  8:47   ` Jianqun Xu
2020-09-05 22:03   ` Heiko Stübner
2020-09-05 22:03     ` Heiko Stübner
2020-08-31  8:47 ` [PATCH 4/6] pinctrl: rockchip: do not set gpio if bank invalid Jianqun Xu
2020-08-31  8:47   ` Jianqun Xu
2020-09-05 22:09   ` Heiko Stübner
2020-09-05 22:09     ` Heiko Stübner
2020-08-31  8:50 ` [PATCH 5/6] pinctrl: rockchip: fix crash caused by invalid gpio bank Jianqun Xu
2020-08-31  8:50   ` Jianqun Xu
2020-09-05 22:14   ` Heiko Stübner
2020-09-05 22:14     ` Heiko Stübner
2020-08-31  8:50 ` [PATCH 6/6] pinctrl: rockchip: populate platform device for rockchip gpio Jianqun Xu
2020-08-31  8:50   ` Jianqun Xu
2020-09-06 10:20   ` Heiko Stübner
2020-09-06 10:20     ` Heiko Stübner
2020-09-07  2:59 ` [PATCH v2 0/5] rockchip-pinctrl fixes for GKI Jianqun Xu
2020-09-07  2:59   ` Jianqun Xu
2020-09-07  2:59   ` [PATCH 1/5] pinctrl: rockchip: depend on OF Jianqun Xu
2020-09-07  2:59     ` Jianqun Xu
2020-09-07  2:59   ` [PATCH 2/5] pinctrl: rockchip: make driver be tristate module Jianqun Xu
2020-09-07  2:59     ` Jianqun Xu
2020-09-07 11:35     ` kernel test robot
2020-09-07 11:35       ` kernel test robot
2020-09-07 11:35       ` kernel test robot
2020-09-12 11:41     ` Heiko Stübner
2020-09-12 11:41       ` Heiko Stübner
2020-09-14  0:38     ` [PATCH 2/2] " Jianqun Xu
2020-09-14  0:38       ` Jianqun Xu
2020-09-20 22:14       ` Heiko Stübner
2020-09-20 22:14         ` Heiko Stübner
2020-09-20 22:18         ` Heiko Stübner
2020-09-20 22:18           ` Heiko Stübner
2020-09-29 13:21           ` Linus Walleij
2020-09-29 13:21             ` Linus Walleij
2020-10-13  6:40             ` jay.xu
2020-10-13  6:40               ` jay.xu
2020-09-07  2:59   ` [PATCH 3/5] pinctrl: rockchip: enable gpio pclk for rockchip_gpio_to_irq Jianqun Xu
2020-09-07  2:59     ` Jianqun Xu
2020-09-07  2:59   ` [PATCH 4/5] pinctrl: rockchip: create irq mapping in gpio_to_irq Jianqun Xu
2020-09-07  2:59     ` Jianqun Xu
2020-09-07  3:38   ` [PATCH 5/5] pinctrl: rockchip: populate platform device for rockchip gpio Jianqun Xu
2020-09-07  3:38     ` Jianqun Xu
2020-09-08  2:19     ` [PATCH] " Jianqun Xu
2020-09-08  2:19       ` Jianqun Xu
2020-09-20 22:16       ` Heiko Stübner
2020-09-20 22:16         ` Heiko Stübner
2020-09-12 11:35   ` [PATCH v2 0/5] rockchip-pinctrl fixes for GKI Linus Walleij
2020-09-12 11:35     ` Linus Walleij

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202009011812.LO6Db3sN%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=heiko@sntech.de \
    --cc=jay.xu@rock-chips.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.