Hi Ajit,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on broonie-sound/for-next]
[also build test ERROR on next-20220117]
[cannot apply to v5.16]
[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/Ajit-Kumar-Pandey/ASOC-amd-acp-A...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
config: x86_64-randconfig-r014-20211215
(
https://download.01.org/0day-ci/archive/20220117/202201171356.6vrZs5rw-lk...)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
#
https://github.com/0day-ci/linux/commit/bc740a222d4191f55c5f7a197e919e94a...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Ajit-Kumar-Pandey/ASOC-amd-acp-Add-generic-PDM-and-PCI-driver-support-for-ACP/20220114-003620
git checkout bc740a222d4191f55c5f7a197e919e94a5f63419
# save the config file to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
vmlinux.o: warning: objtool: do_machine_check()+0xb08: call to queue_task_work() leaves
.noinstr.text section
vmlinux.o: warning: objtool: enter_from_user_mode()+0x52: call to on_thread_stack()
leaves .noinstr.text section
vmlinux.o: warning: objtool: syscall_enter_from_user_mode()+0x59: call to
on_thread_stack() leaves .noinstr.text section
vmlinux.o: warning: objtool: syscall_enter_from_user_mode_prepare()+0x52: call to
on_thread_stack() leaves .noinstr.text section
vmlinux.o: warning: objtool: irqentry_enter_from_user_mode()+0x52: call to
on_thread_stack() leaves .noinstr.text section
ld: sound/soc/amd/renoir/rn-pci-acp3x.o: in function `snd_rn_acp_probe':
> sound/soc/amd/renoir/rn-pci-acp3x.c:220: undefined reference to
`snd_amd_acp_find_config'
vim +220 sound/soc/amd/renoir/rn-pci-acp3x.c
204
205 static int snd_rn_acp_probe(struct pci_dev *pci,
206 const struct pci_device_id *pci_id)
207 {
208 struct acp_dev_data *adata;
209 struct platform_device_info pdevinfo[ACP_DEVS];
210 #if defined(CONFIG_ACPI)
211 acpi_handle handle;
212 acpi_integer dmic_status;
213 #endif
214 const struct dmi_system_id *dmi_id;
215 unsigned int irqflags, flag;
216 int ret, index;
217 u32 addr;
218
219 /* Return if acp config flag is defined */
220 flag = snd_amd_acp_find_config(pci);
221 if (flag)
222 return -ENODEV;
223
224 /* Renoir device check */
225 if (pci->revision != 0x01)
226 return -ENODEV;
227
228 if (pci_enable_device(pci)) {
229 dev_err(&pci->dev, "pci_enable_device failed\n");
230 return -ENODEV;
231 }
232
233 ret = pci_request_regions(pci, "AMD ACP3x audio");
234 if (ret < 0) {
235 dev_err(&pci->dev, "pci_request_regions failed\n");
236 goto disable_pci;
237 }
238
239 adata = devm_kzalloc(&pci->dev, sizeof(struct acp_dev_data),
240 GFP_KERNEL);
241 if (!adata) {
242 ret = -ENOMEM;
243 goto release_regions;
244 }
245
246 /* check for msi interrupt support */
247 ret = pci_enable_msi(pci);
248 if (ret)
249 /* msi is not enabled */
250 irqflags = IRQF_SHARED;
251 else
252 /* msi is enabled */
253 irqflags = 0;
254
255 addr = pci_resource_start(pci, 0);
256 adata->acp_base = devm_ioremap(&pci->dev, addr,
257 pci_resource_len(pci, 0));
258 if (!adata->acp_base) {
259 ret = -ENOMEM;
260 goto disable_msi;
261 }
262 pci_set_master(pci);
263 pci_set_drvdata(pci, adata);
264 ret = rn_acp_init(adata->acp_base);
265 if (ret)
266 goto disable_msi;
267
268 if (!dmic_acpi_check) {
269 ret = -ENODEV;
270 goto de_init;
271 } else if (dmic_acpi_check == ACP_DMIC_AUTO) {
272 #if defined(CONFIG_ACPI)
273 handle = ACPI_HANDLE(&pci->dev);
274 ret = acpi_evaluate_integer(handle, "_WOV", NULL, &dmic_status);
275 if (ACPI_FAILURE(ret)) {
276 ret = -ENODEV;
277 goto de_init;
278 }
279 if (!dmic_status) {
280 ret = -ENODEV;
281 goto de_init;
282 }
283 #endif
284 dmi_id = dmi_first_match(rn_acp_quirk_table);
285 if (dmi_id && !dmi_id->driver_data) {
286 dev_info(&pci->dev, "ACPI settings override using DMI (ACP mic is
not present)");
287 ret = -ENODEV;
288 goto de_init;
289 }
290 }
291
292 adata->res = devm_kzalloc(&pci->dev,
293 sizeof(struct resource) * 2,
294 GFP_KERNEL);
295 if (!adata->res) {
296 ret = -ENOMEM;
297 goto de_init;
298 }
299
300 adata->res[0].name = "acp_pdm_iomem";
301 adata->res[0].flags = IORESOURCE_MEM;
302 adata->res[0].start = addr;
303 adata->res[0].end = addr + (ACP_REG_END - ACP_REG_START);
304 adata->res[1].name = "acp_pdm_irq";
305 adata->res[1].flags = IORESOURCE_IRQ;
306 adata->res[1].start = pci->irq;
307 adata->res[1].end = pci->irq;
308
309 memset(&pdevinfo, 0, sizeof(pdevinfo));
310 pdevinfo[0].name = "acp_rn_pdm_dma";
311 pdevinfo[0].id = 0;
312 pdevinfo[0].parent = &pci->dev;
313 pdevinfo[0].num_res = 2;
314 pdevinfo[0].res = adata->res;
315 pdevinfo[0].data = &irqflags;
316 pdevinfo[0].size_data = sizeof(irqflags);
317
318 pdevinfo[1].name = "dmic-codec";
319 pdevinfo[1].id = 0;
320 pdevinfo[1].parent = &pci->dev;
321 pdevinfo[2].name = "acp_pdm_mach";
322 pdevinfo[2].id = 0;
323 pdevinfo[2].parent = &pci->dev;
324 for (index = 0; index < ACP_DEVS; index++) {
325 adata->pdev[index] =
326 platform_device_register_full(&pdevinfo[index]);
327 if (IS_ERR(adata->pdev[index])) {
328 dev_err(&pci->dev, "cannot register %s device\n",
329 pdevinfo[index].name);
330 ret = PTR_ERR(adata->pdev[index]);
331 goto unregister_devs;
332 }
333 }
334 pm_runtime_set_autosuspend_delay(&pci->dev, ACP_SUSPEND_DELAY_MS);
335 pm_runtime_use_autosuspend(&pci->dev);
336 pm_runtime_put_noidle(&pci->dev);
337 pm_runtime_allow(&pci->dev);
338 return 0;
339
340 unregister_devs:
341 for (index = 0; index < ACP_DEVS; index++)
342 platform_device_unregister(adata->pdev[index]);
343 de_init:
344 if (rn_acp_deinit(adata->acp_base))
345 dev_err(&pci->dev, "ACP de-init failed\n");
346 disable_msi:
347 pci_disable_msi(pci);
348 release_regions:
349 pci_release_regions(pci);
350 disable_pci:
351 pci_disable_device(pci);
352
353 return ret;
354 }
355
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org