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]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to