tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: fd8dab197cca2746e1fcd399a218eec5164726d4 commit: aa9430f8a6de9b56247b9d0316801d87c20b6779 [2627/4127] pinctrl: qcom: Add missing header(s) config: arm-randconfig-r011-20221029 compiler: arm-linux-gnueabi-gcc (GCC) 12.1.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=aa9430f8a6de9b56247b9d0316801d87c20b6779 git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout aa9430f8a6de9b56247b9d0316801d87c20b6779 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/pinctrl/qcom/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All errors (new ones prefixed by >>): drivers/pinctrl/qcom/pinctrl-lpass-lpi.c: In function 'lpi_gpio_set_mux': >> drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:102:9: error: implicit declaration of function 'u32p_replace_bits' [-Werror=implicit-function-declaration] 102 | u32p_replace_bits(&val, i, LPI_GPIO_FUNCTION_MASK); | ^~~~~~~~~~~~~~~~~ drivers/pinctrl/qcom/pinctrl-lpass-lpi.c: In function 'lpi_config_get': >> drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:127:16: error: implicit declaration of function 'FIELD_GET' [-Werror=implicit-function-declaration] 127 | pull = FIELD_GET(LPI_GPIO_PULL_MASK, ctl_reg); | ^~~~~~~~~ drivers/pinctrl/qcom/pinctrl-lpass-lpi.c: In function 'lpi_config_set': >> drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:233:23: error: implicit declaration of function 'u32_encode_bits' [-Werror=implicit-function-declaration] 233 | val = u32_encode_bits(value ? 1 : 0, LPI_GPIO_VALUE_OUT_MASK); | ^~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/u32p_replace_bits +102 drivers/pinctrl/qcom/pinctrl-lpass-lpi.c 6e261d1090d6db Srinivas Kandagatla 2020-12-02 84 6e261d1090d6db Srinivas Kandagatla 2020-12-02 85 static int lpi_gpio_set_mux(struct pinctrl_dev *pctldev, unsigned int function, 6e261d1090d6db Srinivas Kandagatla 2020-12-02 86 unsigned int group_num) 6e261d1090d6db Srinivas Kandagatla 2020-12-02 87 { 6e261d1090d6db Srinivas Kandagatla 2020-12-02 88 struct lpi_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 89 const struct lpi_pingroup *g = &pctrl->data->groups[group_num]; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 90 u32 val; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 91 int i, pin = g->pin; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 92 6e261d1090d6db Srinivas Kandagatla 2020-12-02 93 for (i = 0; i < g->nfuncs; i++) { 6e261d1090d6db Srinivas Kandagatla 2020-12-02 94 if (g->funcs[i] == function) 6e261d1090d6db Srinivas Kandagatla 2020-12-02 95 break; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 96 } 6e261d1090d6db Srinivas Kandagatla 2020-12-02 97 6e261d1090d6db Srinivas Kandagatla 2020-12-02 98 if (WARN_ON(i == g->nfuncs)) 6e261d1090d6db Srinivas Kandagatla 2020-12-02 99 return -EINVAL; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 100 6e261d1090d6db Srinivas Kandagatla 2020-12-02 101 val = lpi_gpio_read(pctrl, pin, LPI_GPIO_CFG_REG); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 @102 u32p_replace_bits(&val, i, LPI_GPIO_FUNCTION_MASK); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 103 lpi_gpio_write(pctrl, pin, LPI_GPIO_CFG_REG, val); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 104 6e261d1090d6db Srinivas Kandagatla 2020-12-02 105 return 0; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 106 } 6e261d1090d6db Srinivas Kandagatla 2020-12-02 107 6e261d1090d6db Srinivas Kandagatla 2020-12-02 108 static const struct pinmux_ops lpi_gpio_pinmux_ops = { 6e261d1090d6db Srinivas Kandagatla 2020-12-02 109 .get_functions_count = lpi_gpio_get_functions_count, 6e261d1090d6db Srinivas Kandagatla 2020-12-02 110 .get_function_name = lpi_gpio_get_function_name, 6e261d1090d6db Srinivas Kandagatla 2020-12-02 111 .get_function_groups = lpi_gpio_get_function_groups, 6e261d1090d6db Srinivas Kandagatla 2020-12-02 112 .set_mux = lpi_gpio_set_mux, 6e261d1090d6db Srinivas Kandagatla 2020-12-02 113 }; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 114 6e261d1090d6db Srinivas Kandagatla 2020-12-02 115 static int lpi_config_get(struct pinctrl_dev *pctldev, 6e261d1090d6db Srinivas Kandagatla 2020-12-02 116 unsigned int pin, unsigned long *config) 6e261d1090d6db Srinivas Kandagatla 2020-12-02 117 { 6e261d1090d6db Srinivas Kandagatla 2020-12-02 118 unsigned int param = pinconf_to_config_param(*config); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 119 struct lpi_pinctrl *state = dev_get_drvdata(pctldev->dev); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 120 unsigned int arg = 0; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 121 int is_out; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 122 int pull; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 123 u32 ctl_reg; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 124 6e261d1090d6db Srinivas Kandagatla 2020-12-02 125 ctl_reg = lpi_gpio_read(state, pin, LPI_GPIO_CFG_REG); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 126 is_out = ctl_reg & LPI_GPIO_OE_MASK; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 @127 pull = FIELD_GET(LPI_GPIO_PULL_MASK, ctl_reg); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 128 6e261d1090d6db Srinivas Kandagatla 2020-12-02 129 switch (param) { 6e261d1090d6db Srinivas Kandagatla 2020-12-02 130 case PIN_CONFIG_BIAS_DISABLE: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 131 if (pull == LPI_GPIO_BIAS_DISABLE) 6e261d1090d6db Srinivas Kandagatla 2020-12-02 132 arg = 1; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 133 break; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 134 case PIN_CONFIG_BIAS_PULL_DOWN: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 135 if (pull == LPI_GPIO_PULL_DOWN) 6e261d1090d6db Srinivas Kandagatla 2020-12-02 136 arg = 1; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 137 break; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 138 case PIN_CONFIG_BIAS_BUS_HOLD: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 139 if (pull == LPI_GPIO_KEEPER) 6e261d1090d6db Srinivas Kandagatla 2020-12-02 140 arg = 1; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 141 break; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 142 case PIN_CONFIG_BIAS_PULL_UP: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 143 if (pull == LPI_GPIO_PULL_UP) 6e261d1090d6db Srinivas Kandagatla 2020-12-02 144 arg = 1; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 145 break; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 146 case PIN_CONFIG_INPUT_ENABLE: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 147 case PIN_CONFIG_OUTPUT: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 148 if (is_out) 6e261d1090d6db Srinivas Kandagatla 2020-12-02 149 arg = 1; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 150 break; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 151 default: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 152 return -EINVAL; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 153 } 6e261d1090d6db Srinivas Kandagatla 2020-12-02 154 6e261d1090d6db Srinivas Kandagatla 2020-12-02 155 *config = pinconf_to_config_packed(param, arg); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 156 return 0; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 157 } 6e261d1090d6db Srinivas Kandagatla 2020-12-02 158 6e261d1090d6db Srinivas Kandagatla 2020-12-02 159 static int lpi_config_set(struct pinctrl_dev *pctldev, unsigned int group, 6e261d1090d6db Srinivas Kandagatla 2020-12-02 160 unsigned long *configs, unsigned int nconfs) 6e261d1090d6db Srinivas Kandagatla 2020-12-02 161 { 6e261d1090d6db Srinivas Kandagatla 2020-12-02 162 struct lpi_pinctrl *pctrl = dev_get_drvdata(pctldev->dev); 2a9be38099e338 Jonathan Marek 2021-03-04 163 unsigned int param, arg, pullup = LPI_GPIO_BIAS_DISABLE, strength = 2; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 164 bool value, output_enabled = false; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 165 const struct lpi_pingroup *g; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 166 unsigned long sval; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 167 int i, slew_offset; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 168 u32 val; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 169 6e261d1090d6db Srinivas Kandagatla 2020-12-02 170 g = &pctrl->data->groups[group]; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 171 for (i = 0; i < nconfs; i++) { 6e261d1090d6db Srinivas Kandagatla 2020-12-02 172 param = pinconf_to_config_param(configs[i]); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 173 arg = pinconf_to_config_argument(configs[i]); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 174 6e261d1090d6db Srinivas Kandagatla 2020-12-02 175 switch (param) { 6e261d1090d6db Srinivas Kandagatla 2020-12-02 176 case PIN_CONFIG_BIAS_DISABLE: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 177 pullup = LPI_GPIO_BIAS_DISABLE; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 178 break; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 179 case PIN_CONFIG_BIAS_PULL_DOWN: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 180 pullup = LPI_GPIO_PULL_DOWN; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 181 break; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 182 case PIN_CONFIG_BIAS_BUS_HOLD: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 183 pullup = LPI_GPIO_KEEPER; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 184 break; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 185 case PIN_CONFIG_BIAS_PULL_UP: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 186 pullup = LPI_GPIO_PULL_UP; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 187 break; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 188 case PIN_CONFIG_INPUT_ENABLE: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 189 output_enabled = false; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 190 break; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 191 case PIN_CONFIG_OUTPUT: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 192 output_enabled = true; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 193 value = arg; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 194 break; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 195 case PIN_CONFIG_DRIVE_STRENGTH: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 196 strength = arg; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 197 break; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 198 case PIN_CONFIG_SLEW_RATE: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 199 if (arg > LPI_SLEW_RATE_MAX) { 6e261d1090d6db Srinivas Kandagatla 2020-12-02 200 dev_err(pctldev->dev, "invalid slew rate %u for pin: %d\n", 6e261d1090d6db Srinivas Kandagatla 2020-12-02 201 arg, group); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 202 return -EINVAL; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 203 } 6e261d1090d6db Srinivas Kandagatla 2020-12-02 204 6e261d1090d6db Srinivas Kandagatla 2020-12-02 205 slew_offset = g->slew_offset; 6454711015267f Srinivasa Rao Mandadapu 2022-04-18 206 if (slew_offset == LPI_NO_SLEW) 6e261d1090d6db Srinivas Kandagatla 2020-12-02 207 break; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 208 6e261d1090d6db Srinivas Kandagatla 2020-12-02 209 mutex_lock(&pctrl->slew_access_lock); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 210 6e261d1090d6db Srinivas Kandagatla 2020-12-02 211 sval = ioread32(pctrl->slew_base + LPI_SLEW_RATE_CTL_REG); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 212 sval &= ~(LPI_SLEW_RATE_MASK << slew_offset); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 213 sval |= arg << slew_offset; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 214 iowrite32(sval, pctrl->slew_base + LPI_SLEW_RATE_CTL_REG); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 215 6e261d1090d6db Srinivas Kandagatla 2020-12-02 216 mutex_unlock(&pctrl->slew_access_lock); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 217 break; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 218 default: 6e261d1090d6db Srinivas Kandagatla 2020-12-02 219 return -EINVAL; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 220 } 6e261d1090d6db Srinivas Kandagatla 2020-12-02 221 } 6e261d1090d6db Srinivas Kandagatla 2020-12-02 222 6e261d1090d6db Srinivas Kandagatla 2020-12-02 223 val = lpi_gpio_read(pctrl, group, LPI_GPIO_CFG_REG); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 224 6e261d1090d6db Srinivas Kandagatla 2020-12-02 225 u32p_replace_bits(&val, pullup, LPI_GPIO_PULL_MASK); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 226 u32p_replace_bits(&val, LPI_GPIO_DS_TO_VAL(strength), 6e261d1090d6db Srinivas Kandagatla 2020-12-02 227 LPI_GPIO_OUT_STRENGTH_MASK); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 228 u32p_replace_bits(&val, output_enabled, LPI_GPIO_OE_MASK); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 229 6e261d1090d6db Srinivas Kandagatla 2020-12-02 230 lpi_gpio_write(pctrl, group, LPI_GPIO_CFG_REG, val); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 231 6e261d1090d6db Srinivas Kandagatla 2020-12-02 232 if (output_enabled) { 6e261d1090d6db Srinivas Kandagatla 2020-12-02 @233 val = u32_encode_bits(value ? 1 : 0, LPI_GPIO_VALUE_OUT_MASK); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 234 lpi_gpio_write(pctrl, group, LPI_GPIO_VALUE_REG, val); 6e261d1090d6db Srinivas Kandagatla 2020-12-02 235 } 6e261d1090d6db Srinivas Kandagatla 2020-12-02 236 6e261d1090d6db Srinivas Kandagatla 2020-12-02 237 return 0; 6e261d1090d6db Srinivas Kandagatla 2020-12-02 238 } 6e261d1090d6db Srinivas Kandagatla 2020-12-02 239 :::::: The code at line 102 was first introduced by commit :::::: 6e261d1090d6db0e9dd22978b6f38a2c58558a3f pinctrl: qcom: Add sm8250 lpass lpi pinctrl driver :::::: TO: Srinivas Kandagatla :::::: CC: Linus Walleij -- 0-DAY CI Kernel Test Service https://01.org/lkp