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 --]
next prev parent 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.