CC: [email protected] CC: Linux Memory Management List <[email protected]> TO: "朱灿灿" <[email protected]> CC: Mark Brown <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 1c925d2030afd354a02c23500386e620e662622b commit: 2c1382840c194533399818d0ed39dfc94f906187 [1927/2336] ASoC: soc-pcm: disconnect BEs if the FE is not ready :::::: branch date: 9 hours ago :::::: commit date: 22 hours ago config: i386-randconfig-m021-20210108 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: sound/soc/soc-pcm.c:2523 dpcm_run_update_startup() error: uninitialized symbol 'ret'. vim +/ret +2523 sound/soc/soc-pcm.c 618dae11f809aac Liam Girdwood 2012-04-25 2428 618dae11f809aac Liam Girdwood 2012-04-25 2429 static int dpcm_run_update_startup(struct snd_soc_pcm_runtime *fe, int stream) 618dae11f809aac Liam Girdwood 2012-04-25 2430 { 07bf84aaf736781 Liam Girdwood 2012-04-25 2431 struct snd_pcm_substream *substream = 07bf84aaf736781 Liam Girdwood 2012-04-25 2432 snd_soc_dpcm_get_substream(fe, stream); 618dae11f809aac Liam Girdwood 2012-04-25 2433 struct snd_soc_dpcm *dpcm; 07bf84aaf736781 Liam Girdwood 2012-04-25 2434 enum snd_soc_dpcm_trigger trigger = fe->dai_link->trigger[stream]; 618dae11f809aac Liam Girdwood 2012-04-25 2435 int ret; a9764869779081e KaiChieh Chuang 2019-03-08 2436 unsigned long flags; 618dae11f809aac Liam Girdwood 2012-04-25 2437 103d84a3cbe1e70 Liam Girdwood 2012-11-19 2438 dev_dbg(fe->dev, "ASoC: runtime %s open on FE %s\n", 618dae11f809aac Liam Girdwood 2012-04-25 2439 stream ? "capture" : "playback", fe->dai_link->name); 618dae11f809aac Liam Girdwood 2012-04-25 2440 618dae11f809aac Liam Girdwood 2012-04-25 2441 /* Only start the BE if the FE is ready */ 618dae11f809aac Liam Girdwood 2012-04-25 2442 if (fe->dpcm[stream].state == SND_SOC_DPCM_STATE_HW_FREE || 2c1382840c19453 朱灿灿 2020-12-25 2443 fe->dpcm[stream].state == SND_SOC_DPCM_STATE_CLOSE) { 2c1382840c19453 朱灿灿 2020-12-25 2444 dev_err(fe->dev, "ASoC: FE %s is not ready %d\n", 2c1382840c19453 朱灿灿 2020-12-25 2445 fe->dai_link->name, fe->dpcm[stream].state); 2c1382840c19453 朱灿灿 2020-12-25 2446 goto disconnect; 2c1382840c19453 朱灿灿 2020-12-25 2447 } 618dae11f809aac Liam Girdwood 2012-04-25 2448 618dae11f809aac Liam Girdwood 2012-04-25 2449 /* startup must always be called for new BEs */ 618dae11f809aac Liam Girdwood 2012-04-25 2450 ret = dpcm_be_dai_startup(fe, stream); fffc0ca29fdf3a7 Dan Carpenter 2013-01-10 2451 if (ret < 0) 618dae11f809aac Liam Girdwood 2012-04-25 2452 goto disconnect; 618dae11f809aac Liam Girdwood 2012-04-25 2453 618dae11f809aac Liam Girdwood 2012-04-25 2454 /* keep going if FE state is > open */ 618dae11f809aac Liam Girdwood 2012-04-25 2455 if (fe->dpcm[stream].state == SND_SOC_DPCM_STATE_OPEN) 618dae11f809aac Liam Girdwood 2012-04-25 2456 return 0; 618dae11f809aac Liam Girdwood 2012-04-25 2457 618dae11f809aac Liam Girdwood 2012-04-25 2458 ret = dpcm_be_dai_hw_params(fe, stream); fffc0ca29fdf3a7 Dan Carpenter 2013-01-10 2459 if (ret < 0) 618dae11f809aac Liam Girdwood 2012-04-25 2460 goto close; 618dae11f809aac Liam Girdwood 2012-04-25 2461 618dae11f809aac Liam Girdwood 2012-04-25 2462 /* keep going if FE state is > hw_params */ 618dae11f809aac Liam Girdwood 2012-04-25 2463 if (fe->dpcm[stream].state == SND_SOC_DPCM_STATE_HW_PARAMS) 618dae11f809aac Liam Girdwood 2012-04-25 2464 return 0; 618dae11f809aac Liam Girdwood 2012-04-25 2465 618dae11f809aac Liam Girdwood 2012-04-25 2466 618dae11f809aac Liam Girdwood 2012-04-25 2467 ret = dpcm_be_dai_prepare(fe, stream); fffc0ca29fdf3a7 Dan Carpenter 2013-01-10 2468 if (ret < 0) 618dae11f809aac Liam Girdwood 2012-04-25 2469 goto hw_free; 618dae11f809aac Liam Girdwood 2012-04-25 2470 618dae11f809aac Liam Girdwood 2012-04-25 2471 /* run the stream event for each BE */ 618dae11f809aac Liam Girdwood 2012-04-25 2472 dpcm_dapm_stream_event(fe, stream, SND_SOC_DAPM_STREAM_NOP); 618dae11f809aac Liam Girdwood 2012-04-25 2473 618dae11f809aac Liam Girdwood 2012-04-25 2474 /* keep going if FE state is > prepare */ 618dae11f809aac Liam Girdwood 2012-04-25 2475 if (fe->dpcm[stream].state == SND_SOC_DPCM_STATE_PREPARE || 618dae11f809aac Liam Girdwood 2012-04-25 2476 fe->dpcm[stream].state == SND_SOC_DPCM_STATE_STOP) 618dae11f809aac Liam Girdwood 2012-04-25 2477 return 0; 618dae11f809aac Liam Girdwood 2012-04-25 2478 07bf84aaf736781 Liam Girdwood 2012-04-25 2479 if (trigger == SND_SOC_DPCM_TRIGGER_BESPOKE) { 07bf84aaf736781 Liam Girdwood 2012-04-25 2480 /* call trigger on the frontend - FE takes care of all BE triggers */ 103d84a3cbe1e70 Liam Girdwood 2012-11-19 2481 dev_dbg(fe->dev, "ASoC: bespoke trigger FE %s cmd start\n", 07bf84aaf736781 Liam Girdwood 2012-04-25 2482 fe->dai_link->name); 07bf84aaf736781 Liam Girdwood 2012-04-25 2483 30819358ae73326 Kuninori Morimoto 2020-04-24 2484 ret = snd_soc_pcm_dai_bespoke_trigger(substream, SNDRV_PCM_TRIGGER_START); 07bf84aaf736781 Liam Girdwood 2012-04-25 2485 if (ret < 0) { 103d84a3cbe1e70 Liam Girdwood 2012-11-19 2486 dev_err(fe->dev,"ASoC: bespoke trigger FE failed %d\n", ret); 07bf84aaf736781 Liam Girdwood 2012-04-25 2487 goto hw_free; 07bf84aaf736781 Liam Girdwood 2012-04-25 2488 } 07bf84aaf736781 Liam Girdwood 2012-04-25 2489 } else { 103d84a3cbe1e70 Liam Girdwood 2012-11-19 2490 dev_dbg(fe->dev, "ASoC: trigger FE %s cmd start\n", 618dae11f809aac Liam Girdwood 2012-04-25 2491 fe->dai_link->name); 618dae11f809aac Liam Girdwood 2012-04-25 2492 618dae11f809aac Liam Girdwood 2012-04-25 2493 ret = dpcm_be_dai_trigger(fe, stream, 618dae11f809aac Liam Girdwood 2012-04-25 2494 SNDRV_PCM_TRIGGER_START); 618dae11f809aac Liam Girdwood 2012-04-25 2495 if (ret < 0) { 103d84a3cbe1e70 Liam Girdwood 2012-11-19 2496 dev_err(fe->dev,"ASoC: trigger FE failed %d\n", ret); 618dae11f809aac Liam Girdwood 2012-04-25 2497 goto hw_free; 618dae11f809aac Liam Girdwood 2012-04-25 2498 } 07bf84aaf736781 Liam Girdwood 2012-04-25 2499 } 618dae11f809aac Liam Girdwood 2012-04-25 2500 618dae11f809aac Liam Girdwood 2012-04-25 2501 return 0; 618dae11f809aac Liam Girdwood 2012-04-25 2502 618dae11f809aac Liam Girdwood 2012-04-25 2503 hw_free: 618dae11f809aac Liam Girdwood 2012-04-25 2504 dpcm_be_dai_hw_free(fe, stream); 618dae11f809aac Liam Girdwood 2012-04-25 2505 close: 618dae11f809aac Liam Girdwood 2012-04-25 2506 dpcm_be_dai_shutdown(fe, stream); 618dae11f809aac Liam Girdwood 2012-04-25 2507 disconnect: 2c1382840c19453 朱灿灿 2020-12-25 2508 /* disconnect any pending BEs */ a9764869779081e KaiChieh Chuang 2019-03-08 2509 spin_lock_irqsave(&fe->card->dpcm_lock, flags); 8d6258a4dd26783 Kuninori Morimoto 2018-09-18 2510 for_each_dpcm_be(fe, stream, dpcm) { 618dae11f809aac Liam Girdwood 2012-04-25 2511 struct snd_soc_pcm_runtime *be = dpcm->be; 2c1382840c19453 朱灿灿 2020-12-25 2512 2c1382840c19453 朱灿灿 2020-12-25 2513 /* is this op for this BE ? */ 2c1382840c19453 朱灿灿 2020-12-25 2514 if (!snd_soc_dpcm_be_can_update(fe, be, stream)) 2c1382840c19453 朱灿灿 2020-12-25 2515 continue; 2c1382840c19453 朱灿灿 2020-12-25 2516 2c1382840c19453 朱灿灿 2020-12-25 2517 if (be->dpcm[stream].state == SND_SOC_DPCM_STATE_CLOSE || 2c1382840c19453 朱灿灿 2020-12-25 2518 be->dpcm[stream].state == SND_SOC_DPCM_STATE_NEW) 618dae11f809aac Liam Girdwood 2012-04-25 2519 dpcm->state = SND_SOC_DPCM_LINK_STATE_FREE; 618dae11f809aac Liam Girdwood 2012-04-25 2520 } a9764869779081e KaiChieh Chuang 2019-03-08 2521 spin_unlock_irqrestore(&fe->card->dpcm_lock, flags); 01d7584cd2e5a93 Liam Girdwood 2012-04-25 2522 618dae11f809aac Liam Girdwood 2012-04-25 @2523 return ret; 618dae11f809aac Liam Girdwood 2012-04-25 2524 } 618dae11f809aac Liam Girdwood 2012-04-25 2525 :::::: The code at line 2523 was first introduced by commit :::::: 618dae11f809aaccd05710aa8cee8c46a9cef1a7 ASoC: dpcm: Add runtime dynamic route update :::::: TO: Liam Girdwood <[email protected]> :::::: CC: Mark Brown <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
