Hi Mark, I love your patch! Yet something to improve: [auto build test ERROR on asoc/for-next] [also build test ERROR on v5.14-rc2 next-20210723] [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/Mark-Brown/ASoC-tlv320aic31xx-Fix-jack-detection-after-suspend/20210724-020429 base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next config: x86_64-randconfig-c022-20210723 (attached as .config) compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/fd727e56e60de06a923175ce246e965e27c6df88 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Mark-Brown/ASoC-tlv320aic31xx-Fix-jack-detection-after-suspend/20210724-020429 git checkout fd727e56e60de06a923175ce246e965e27c6df88 # 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 All errors (new ones prefixed by >>): sound/soc/codecs/tlv320aic31xx.c: In function 'aic31xx_power_on': >> sound/soc/codecs/tlv320aic31xx.c:1264:2: error: implicit declaration of function 'aic31xx_set_jack'; did you mean 'aic31xx_set_dai_fmt'? [-Werror=implicit-function-declaration] 1264 | aic31xx_set_jack(component, aic31xx->jack, NULL); | ^~~~~~~~~~~~~~~~ | aic31xx_set_dai_fmt sound/soc/codecs/tlv320aic31xx.c: At top level: >> sound/soc/codecs/tlv320aic31xx.c:1312:12: error: static declaration of 'aic31xx_set_jack' follows non-static declaration 1312 | static int aic31xx_set_jack(struct snd_soc_component *component, | ^~~~~~~~~~~~~~~~ sound/soc/codecs/tlv320aic31xx.c:1264:2: note: previous implicit declaration of 'aic31xx_set_jack' was here 1264 | aic31xx_set_jack(component, aic31xx->jack, NULL); | ^~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +1264 sound/soc/codecs/tlv320aic31xx.c 1231 1232 static int aic31xx_power_on(struct snd_soc_component *component) 1233 { 1234 struct aic31xx_priv *aic31xx = snd_soc_component_get_drvdata(component); 1235 int ret; 1236 1237 ret = regulator_bulk_enable(ARRAY_SIZE(aic31xx->supplies), 1238 aic31xx->supplies); 1239 if (ret) 1240 return ret; 1241 1242 regcache_cache_only(aic31xx->regmap, false); 1243 1244 /* Reset device registers for a consistent power-on like state */ 1245 ret = aic31xx_reset(aic31xx); 1246 if (ret < 0) 1247 dev_err(aic31xx->dev, "Could not reset device: %d\n", ret); 1248 1249 ret = regcache_sync(aic31xx->regmap); 1250 if (ret) { 1251 dev_err(component->dev, 1252 "Failed to restore cache: %d\n", ret); 1253 regcache_cache_only(aic31xx->regmap, true); 1254 regulator_bulk_disable(ARRAY_SIZE(aic31xx->supplies), 1255 aic31xx->supplies); 1256 return ret; 1257 } 1258 1259 /* 1260 * The jack detection configuration is in the same register 1261 * that is used to report jack detect status so is volatile 1262 * and not covered by the cache sync, restore it separately. 1263 */ > 1264 aic31xx_set_jack(component, aic31xx->jack, NULL); 1265 1266 return 0; 1267 } 1268 1269 static void aic31xx_power_off(struct snd_soc_component *component) 1270 { 1271 struct aic31xx_priv *aic31xx = snd_soc_component_get_drvdata(component); 1272 1273 regcache_cache_only(aic31xx->regmap, true); 1274 regulator_bulk_disable(ARRAY_SIZE(aic31xx->supplies), 1275 aic31xx->supplies); 1276 } 1277 1278 static int aic31xx_set_bias_level(struct snd_soc_component *component, 1279 enum snd_soc_bias_level level) 1280 { 1281 dev_dbg(component->dev, "## %s: %d -> %d\n", __func__, 1282 snd_soc_component_get_bias_level(component), level); 1283 1284 switch (level) { 1285 case SND_SOC_BIAS_ON: 1286 break; 1287 case SND_SOC_BIAS_PREPARE: 1288 if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_STANDBY) 1289 aic31xx_clk_on(component); 1290 break; 1291 case SND_SOC_BIAS_STANDBY: 1292 switch (snd_soc_component_get_bias_level(component)) { 1293 case SND_SOC_BIAS_OFF: 1294 aic31xx_power_on(component); 1295 break; 1296 case SND_SOC_BIAS_PREPARE: 1297 aic31xx_clk_off(component); 1298 break; 1299 default: 1300 BUG(); 1301 } 1302 break; 1303 case SND_SOC_BIAS_OFF: 1304 if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_STANDBY) 1305 aic31xx_power_off(component); 1306 break; 1307 } 1308 1309 return 0; 1310 } 1311 > 1312 static int aic31xx_set_jack(struct snd_soc_component *component, 1313 struct snd_soc_jack *jack, void *data) 1314 { 1315 struct aic31xx_priv *aic31xx = snd_soc_component_get_drvdata(component); 1316 1317 aic31xx->jack = jack; 1318 1319 /* Enable/Disable jack detection */ 1320 regmap_write(aic31xx->regmap, AIC31XX_HSDETECT, 1321 jack ? AIC31XX_HSD_ENABLE : 0); 1322 1323 return 0; 1324 } 1325 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org