[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202505232000.eTkDhRzd-lkp@intel.com>
Date: Fri, 23 May 2025 20:59:15 +0800
From: kernel test robot <lkp@...el.com>
To: Alexey Klimov <alexey.klimov@...aro.org>,
Srinivas Kandagatla <srini@...nel.org>,
Mark Brown <broonie@...nel.org>, linux-sound@...r.kernel.org
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
Liam Girdwood <lgirdwood@...il.com>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Bjorn Andersson <andersson@...nel.org>,
Dmitry Baryshkov <lumag@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>,
Jaroslav Kysela <perex@...ex.cz>, Takashi Iwai <tiwai@...e.com>,
linux-arm-msm@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-gpio@...r.kernel.org
Subject: Re: [PATCH v3 06/12] ASoC: codecs: add wsa881x-i2c amplifier codec
driver
Hi Alexey,
kernel test robot noticed the following build errors:
[auto build test ERROR on 7bac2c97af4078d7a627500c9bcdd5b033f97718]
url: https://github.com/intel-lab-lkp/linux/commits/Alexey-Klimov/ASoC-dt-bindings-qcom-Add-SM6115-LPASS-rxmacro-and-vamacro-codecs/20250523-014432
base: 7bac2c97af4078d7a627500c9bcdd5b033f97718
patch link: https://lore.kernel.org/r/20250522-rb2_audio_v3-v3-6-9eeb08cab9dc%40linaro.org
patch subject: [PATCH v3 06/12] ASoC: codecs: add wsa881x-i2c amplifier codec driver
config: x86_64-buildonly-randconfig-004-20250523 (https://download.01.org/0day-ci/archive/20250523/202505232000.eTkDhRzd-lkp@intel.com/config)
compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250523/202505232000.eTkDhRzd-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202505232000.eTkDhRzd-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
>> sound/soc/codecs/wsa881x-i2c.c:555:5: warning: variable 'reg_addr' set but not used [-Wunused-but-set-variable]
555 | u8 reg_addr = 0;
| ^
>> sound/soc/codecs/wsa881x-i2c.c:1263:24: error: cannot assign to non-static data member 'driver' with const-qualified type 'const struct snd_soc_component_driver *'
1263 | wsa881x->driver->name = devm_kasprintf(dev, GFP_KERNEL, "wsa-codec%d",
| ~~~~~~~~~~~~~~~~~~~~~ ^
sound/soc/codecs/wsa881x-common.h:260:41: note: non-static data member 'driver' declared const here
260 | const struct snd_soc_component_driver *driver;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
1 warning and 1 error generated.
vim +1263 sound/soc/codecs/wsa881x-i2c.c
1171
1172 static int wsa881x_i2c_probe(struct i2c_client *client)
1173 {
1174 struct device *dev = &client->dev;
1175 struct wsa881x_priv *wsa881x;
1176 int leftright;
1177 int ret;
1178
1179 ret = wsa881x_probe_common(&wsa881x, dev);
1180 if (ret)
1181 return ret;
1182
1183 wsa881x->mclk_pin = devm_gpiod_get(dev, "mclk",
1184 GPIOD_FLAGS_BIT_NONEXCLUSIVE);
1185 if (IS_ERR(wsa881x->mclk_pin))
1186 dev_err_probe(dev, PTR_ERR(wsa881x->mclk_pin),
1187 "MCLK GPIO not found\n");
1188
1189 wsa881x->wsa_mclk = devm_clk_get_enabled(&client->dev, NULL);
1190 if (IS_ERR(wsa881x->wsa_mclk))
1191 return dev_err_probe(dev, PTR_ERR(wsa881x->wsa_mclk),
1192 "failed to get mclk\n");
1193 gpiod_direction_output(wsa881x->mclk_pin, 1);
1194 clk_set_rate(wsa881x->wsa_mclk, 9600000);
1195
1196 wsa881x->client[DIGITAL] = client;
1197 ret = check_wsa881x_presence(wsa881x);
1198 if (ret < 0) {
1199 dev_err(&client->dev,
1200 "failed to ping wsa with addr:%x, ret = %d\n",
1201 client->addr, ret);
1202 return -ENODEV;
1203 }
1204
1205 wsa881x->regmap = devm_regmap_init_i2c(client,
1206 &wsa881x_ana_regmap_config[DIGITAL]);
1207 if (IS_ERR(wsa881x->regmap)) {
1208 dev_err(dev, "digital regmap init failed %d\n", ret);
1209 return PTR_ERR(wsa881x->regmap);
1210 }
1211 regcache_cache_bypass(wsa881x->regmap, true);
1212
1213 wsa881x_init_common(wsa881x);
1214
1215 wsa881x->version = wsa881x_i2c_read_device(wsa881x, WSA881X_CHIP_ID1);
1216 if (wsa881x->version == WSA881X_2_0) {
1217 wsa881x_update_reg_defaults_2_0();
1218 wsa881x_update_regmap_2_0(wsa881x->regmap, DIGITAL);
1219 }
1220
1221 /*
1222 * If we reached this point, then device is present and we're good to
1223 * go to initialise analog part of the amplifier
1224 */
1225 wsa881x->client[ANALOG] = devm_i2c_new_dummy_device(&client->dev,
1226 client->adapter,
1227 client->addr + I2C_ANALOG_OFFSET);
1228 if (IS_ERR(wsa881x->client[ANALOG])) {
1229 dev_err(dev,
1230 "failed to register i2c device for analog part\n");
1231 return PTR_ERR(wsa881x->client[ANALOG]);
1232 }
1233
1234 wsa881x->regmap_analog = devm_regmap_init_i2c(wsa881x->client[ANALOG],
1235 &wsa881x_ana_regmap_config[ANALOG]);
1236 if (IS_ERR(wsa881x->regmap_analog)) {
1237 dev_err(dev, "analog regmap init failed %d\n", ret);
1238 return PTR_ERR(wsa881x->regmap_analog);
1239 }
1240 regcache_cache_bypass(wsa881x->regmap_analog, true);
1241
1242 wsa881x->client[ANALOG]->dev.platform_data = wsa881x;
1243 i2c_set_clientdata(wsa881x->client[ANALOG], wsa881x);
1244 wsa881x->regmap_flag = true;
1245
1246 if (wsa881x->version == WSA881X_2_0)
1247 wsa881x_update_regmap_2_0(wsa881x->regmap_analog, ANALOG);
1248 /* finished initialising analog part */
1249
1250 leftright = wsa881x_i2c_read_device(wsa881x, WSA881X_BUS_ID) & 0x1;
1251
1252 wsa881x->driver = devm_kmemdup(dev, &soc_codec_dev_wsa881x,
1253 sizeof(*wsa881x->driver), GFP_KERNEL);
1254 if (!wsa881x->driver)
1255 return -ENOMEM;
1256
1257 wsa881x->dai_driver = devm_kmemdup(dev, wsa_dai,
1258 sizeof(struct snd_soc_dai_driver),
1259 GFP_KERNEL);
1260 if (!wsa881x->dai_driver)
1261 return -ENOMEM;
1262
> 1263 wsa881x->driver->name = devm_kasprintf(dev, GFP_KERNEL, "wsa-codec%d",
1264 leftright);
1265 if (!wsa881x->driver->name)
1266 return -ENOMEM;
1267
1268 wsa881x->dai_driver->name = devm_kasprintf(dev, GFP_KERNEL,
1269 "wsa_rx%d", leftright);
1270 if (!wsa881x->dai_driver->name)
1271 return -ENOMEM;
1272
1273 wsa881x->dai_driver->playback.stream_name = devm_kasprintf(dev,
1274 GFP_KERNEL, "WSA881X_AIF%d Playback",
1275 leftright);
1276 if (!wsa881x->dai_driver->playback.stream_name)
1277 return -ENOMEM;
1278
1279 pm_runtime_set_autosuspend_delay(dev, 3000);
1280 pm_runtime_use_autosuspend(dev);
1281 pm_runtime_mark_last_busy(dev);
1282 pm_runtime_set_active(dev);
1283 pm_runtime_enable(dev);
1284
1285 return devm_snd_soc_register_component(dev,
1286 wsa881x->driver,
1287 wsa881x->dai_driver,
1288 ARRAY_SIZE(wsa_dai));
1289 }
1290
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists