* [linusw-pinctrl:ib-mux-pinctrl 5/6] drivers/pinctrl/pinctrl-generic.c:20:5: error: conflicting types for 'pinctrl_generic_to_map'
@ 2026-05-12 12:57 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-05-12 12:57 UTC (permalink / raw)
To: Frank Li; +Cc: oe-kbuild-all, linux-gpio, Linus Walleij
tree: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git ib-mux-pinctrl
head: d8074fd57a0231457e580c1f6cd33f089f09fd12
commit: 34acc5a8adfb76f2de63c8b8317397fb72b0aec8 [5/6] pinctrl: add generic board-level pinctrl driver using mux framework
config: m68k-randconfig-r073-20260512 (https://download.01.org/0day-ci/archive/20260512/202605122043.UepkxK9V-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 8.5.0
smatch: v0.5.0-9065-ge9cc34fd
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260512/202605122043.UepkxK9V-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605122043.UepkxK9V-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/pinctrl/pinctrl-generic.c:20:5: error: conflicting types for 'pinctrl_generic_to_map'
int pinctrl_generic_to_map(struct pinctrl_dev *pctldev, struct device_node *parent,
^~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/pinctrl/pinctrl-generic.c:16:
drivers/pinctrl/pinconf.h:193:1: note: previous definition of 'pinctrl_generic_to_map' was here
pinctrl_generic_to_map(struct pinctrl_dev *pctldev, struct device_node *parent,
^~~~~~~~~~~~~~~~~~~~~~
>> drivers/pinctrl/pinctrl-generic.c:130:5: error: redefinition of 'pinctrl_generic_pins_function_dt_node_to_map'
int pinctrl_generic_pins_function_dt_node_to_map(struct pinctrl_dev *pctldev,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/pinctrl/pinctrl-generic.c:16:
drivers/pinctrl/pinconf.h:184:1: note: previous definition of 'pinctrl_generic_pins_function_dt_node_to_map' was here
pinctrl_generic_pins_function_dt_node_to_map(struct pinctrl_dev *pctldev,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/pinctrl_generic_to_map +20 drivers/pinctrl/pinctrl-generic.c
43722575e5cdcc Conor Dooley 2026-01-20 19
aaaf31be042603 Frank Li 2026-05-04 @20 int pinctrl_generic_to_map(struct pinctrl_dev *pctldev, struct device_node *parent,
aaaf31be042603 Frank Li 2026-05-04 21 struct device_node *np, struct pinctrl_map **maps,
aaaf31be042603 Frank Li 2026-05-04 22 unsigned int *num_maps, unsigned int *num_reserved_maps,
aaaf31be042603 Frank Li 2026-05-04 23 const char **group_names, unsigned int ngroups,
aaaf31be042603 Frank Li 2026-05-04 24 const char **functions, unsigned int *pins,
aaaf31be042603 Frank Li 2026-05-04 25 unsigned int npins)
43722575e5cdcc Conor Dooley 2026-01-20 26 {
43722575e5cdcc Conor Dooley 2026-01-20 27 struct device *dev = pctldev->dev;
aaaf31be042603 Frank Li 2026-05-04 28 unsigned int num_configs;
43722575e5cdcc Conor Dooley 2026-01-20 29 const char *group_name;
43722575e5cdcc Conor Dooley 2026-01-20 30 unsigned long *configs;
aaaf31be042603 Frank Li 2026-05-04 31 int ret, reserve = 1;
43722575e5cdcc Conor Dooley 2026-01-20 32
43722575e5cdcc Conor Dooley 2026-01-20 33 group_name = devm_kasprintf(dev, GFP_KERNEL, "%pOFn.%pOFn", parent, np);
43722575e5cdcc Conor Dooley 2026-01-20 34 if (!group_name)
43722575e5cdcc Conor Dooley 2026-01-20 35 return -ENOMEM;
43722575e5cdcc Conor Dooley 2026-01-20 36
43722575e5cdcc Conor Dooley 2026-01-20 37 group_names[ngroups] = group_name;
43722575e5cdcc Conor Dooley 2026-01-20 38
43722575e5cdcc Conor Dooley 2026-01-20 39 ret = pinctrl_utils_reserve_map(pctldev, maps, num_reserved_maps, num_maps, reserve);
43722575e5cdcc Conor Dooley 2026-01-20 40 if (ret)
43722575e5cdcc Conor Dooley 2026-01-20 41 return ret;
43722575e5cdcc Conor Dooley 2026-01-20 42
43722575e5cdcc Conor Dooley 2026-01-20 43 ret = pinctrl_utils_add_map_mux(pctldev, maps, num_reserved_maps, num_maps, group_name,
43722575e5cdcc Conor Dooley 2026-01-20 44 parent->name);
43722575e5cdcc Conor Dooley 2026-01-20 45 if (ret < 0)
43722575e5cdcc Conor Dooley 2026-01-20 46 return ret;
43722575e5cdcc Conor Dooley 2026-01-20 47
43722575e5cdcc Conor Dooley 2026-01-20 48 ret = pinctrl_generic_add_group(pctldev, group_name, pins, npins, functions);
43722575e5cdcc Conor Dooley 2026-01-20 49 if (ret < 0)
43722575e5cdcc Conor Dooley 2026-01-20 50 return dev_err_probe(dev, ret, "failed to add group %s: %d\n",
43722575e5cdcc Conor Dooley 2026-01-20 51 group_name, ret);
43722575e5cdcc Conor Dooley 2026-01-20 52
43722575e5cdcc Conor Dooley 2026-01-20 53 ret = pinconf_generic_parse_dt_config(np, pctldev, &configs, &num_configs);
43722575e5cdcc Conor Dooley 2026-01-20 54 if (ret)
43722575e5cdcc Conor Dooley 2026-01-20 55 return dev_err_probe(dev, ret, "failed to parse pin config of group %s\n",
43722575e5cdcc Conor Dooley 2026-01-20 56 group_name);
43722575e5cdcc Conor Dooley 2026-01-20 57
43722575e5cdcc Conor Dooley 2026-01-20 58 if (num_configs == 0)
43722575e5cdcc Conor Dooley 2026-01-20 59 return 0;
43722575e5cdcc Conor Dooley 2026-01-20 60
43722575e5cdcc Conor Dooley 2026-01-20 61 ret = pinctrl_utils_reserve_map(pctldev, maps, num_reserved_maps, num_maps, reserve);
43722575e5cdcc Conor Dooley 2026-01-20 62 if (ret)
43722575e5cdcc Conor Dooley 2026-01-20 63 return ret;
43722575e5cdcc Conor Dooley 2026-01-20 64
43722575e5cdcc Conor Dooley 2026-01-20 65 ret = pinctrl_utils_add_map_configs(pctldev, maps, num_reserved_maps, num_maps, group_name,
43722575e5cdcc Conor Dooley 2026-01-20 66 configs,
43722575e5cdcc Conor Dooley 2026-01-20 67 num_configs, PIN_MAP_TYPE_CONFIGS_GROUP);
43722575e5cdcc Conor Dooley 2026-01-20 68 kfree(configs);
43722575e5cdcc Conor Dooley 2026-01-20 69 if (ret)
43722575e5cdcc Conor Dooley 2026-01-20 70 return ret;
43722575e5cdcc Conor Dooley 2026-01-20 71
43722575e5cdcc Conor Dooley 2026-01-20 72 return 0;
43722575e5cdcc Conor Dooley 2026-01-20 73 };
aaaf31be042603 Frank Li 2026-05-04 74 EXPORT_SYMBOL_GPL(pinctrl_generic_to_map);
aaaf31be042603 Frank Li 2026-05-04 75
aaaf31be042603 Frank Li 2026-05-04 76 static int pinctrl_generic_pins_function_dt_subnode_to_map(struct pinctrl_dev *pctldev,
aaaf31be042603 Frank Li 2026-05-04 77 struct device_node *parent,
aaaf31be042603 Frank Li 2026-05-04 78 struct device_node *np,
aaaf31be042603 Frank Li 2026-05-04 79 struct pinctrl_map **maps,
aaaf31be042603 Frank Li 2026-05-04 80 unsigned int *num_maps,
aaaf31be042603 Frank Li 2026-05-04 81 unsigned int *num_reserved_maps,
aaaf31be042603 Frank Li 2026-05-04 82 const char **group_names,
aaaf31be042603 Frank Li 2026-05-04 83 unsigned int ngroups)
aaaf31be042603 Frank Li 2026-05-04 84 {
aaaf31be042603 Frank Li 2026-05-04 85 struct device *dev = pctldev->dev;
aaaf31be042603 Frank Li 2026-05-04 86 unsigned int pin, *pins;
aaaf31be042603 Frank Li 2026-05-04 87 const char **functions;
aaaf31be042603 Frank Li 2026-05-04 88 int npins, ret;
aaaf31be042603 Frank Li 2026-05-04 89
aaaf31be042603 Frank Li 2026-05-04 90 npins = of_property_count_u32_elems(np, "pins");
aaaf31be042603 Frank Li 2026-05-04 91
aaaf31be042603 Frank Li 2026-05-04 92 if (npins < 1) {
aaaf31be042603 Frank Li 2026-05-04 93 dev_err(dev, "invalid pinctrl group %pOFn.%pOFn %d\n",
aaaf31be042603 Frank Li 2026-05-04 94 parent, np, npins);
aaaf31be042603 Frank Li 2026-05-04 95 return npins;
aaaf31be042603 Frank Li 2026-05-04 96 }
aaaf31be042603 Frank Li 2026-05-04 97
aaaf31be042603 Frank Li 2026-05-04 98 pins = devm_kcalloc(dev, npins, sizeof(*pins), GFP_KERNEL);
aaaf31be042603 Frank Li 2026-05-04 99 if (!pins)
aaaf31be042603 Frank Li 2026-05-04 100 return -ENOMEM;
aaaf31be042603 Frank Li 2026-05-04 101
aaaf31be042603 Frank Li 2026-05-04 102 functions = devm_kcalloc(dev, npins, sizeof(*functions), GFP_KERNEL);
aaaf31be042603 Frank Li 2026-05-04 103 if (!functions)
aaaf31be042603 Frank Li 2026-05-04 104 return -ENOMEM;
aaaf31be042603 Frank Li 2026-05-04 105
aaaf31be042603 Frank Li 2026-05-04 106 for (int i = 0; i < npins; i++) {
aaaf31be042603 Frank Li 2026-05-04 107 ret = of_property_read_u32_index(np, "pins", i, &pin);
aaaf31be042603 Frank Li 2026-05-04 108 if (ret)
aaaf31be042603 Frank Li 2026-05-04 109 return ret;
aaaf31be042603 Frank Li 2026-05-04 110
aaaf31be042603 Frank Li 2026-05-04 111 pins[i] = pin;
aaaf31be042603 Frank Li 2026-05-04 112
aaaf31be042603 Frank Li 2026-05-04 113 ret = of_property_read_string(np, "function", &functions[i]);
aaaf31be042603 Frank Li 2026-05-04 114 if (ret)
aaaf31be042603 Frank Li 2026-05-04 115 return ret;
aaaf31be042603 Frank Li 2026-05-04 116 }
aaaf31be042603 Frank Li 2026-05-04 117
aaaf31be042603 Frank Li 2026-05-04 118 return pinctrl_generic_to_map(pctldev, parent, np, maps, num_maps,
aaaf31be042603 Frank Li 2026-05-04 119 num_reserved_maps, group_names, ngroups,
aaaf31be042603 Frank Li 2026-05-04 120 functions, pins, npins);
aaaf31be042603 Frank Li 2026-05-04 121 }
43722575e5cdcc Conor Dooley 2026-01-20 122
43722575e5cdcc Conor Dooley 2026-01-20 123 /*
43722575e5cdcc Conor Dooley 2026-01-20 124 * For platforms that do not define groups or functions in the driver, but
43722575e5cdcc Conor Dooley 2026-01-20 125 * instead use the devicetree to describe them. This function will, unlike
43722575e5cdcc Conor Dooley 2026-01-20 126 * pinconf_generic_dt_node_to_map() etc which rely on driver defined groups
43722575e5cdcc Conor Dooley 2026-01-20 127 * and functions, create them in addition to parsing pinconf properties and
43722575e5cdcc Conor Dooley 2026-01-20 128 * adding mappings.
43722575e5cdcc Conor Dooley 2026-01-20 129 */
43722575e5cdcc Conor Dooley 2026-01-20 @130 int pinctrl_generic_pins_function_dt_node_to_map(struct pinctrl_dev *pctldev,
:::::: The code at line 20 was first introduced by commit
:::::: aaaf31be04260316036f50a05b7d015c0d36b55a pinctrl: extract pinctrl_generic_to_map() from pinctrl_generic_pins_function_dt_node_to_map()
:::::: TO: Frank Li <Frank.Li@nxp.com>
:::::: CC: Linus Walleij <linusw@kernel.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-05-12 12:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-12 12:57 [linusw-pinctrl:ib-mux-pinctrl 5/6] drivers/pinctrl/pinctrl-generic.c:20:5: error: conflicting types for 'pinctrl_generic_to_map' kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox