[alsa-devel] ASoC: qcom: add mic support

Dan Carpenter dan.carpenter at oracle.com
Fri Mar 25 10:00:02 CET 2016


Hello Srinivas Kandagatla,

The patch fb5d11524eda: "ASoC: qcom: add mic support" from Feb 11,
2016, leads to the following static checker warning:

	sound/soc/qcom/lpass-platform.c:555 lpass_platform_pcm_new()
	error: uninitialized symbol 'ret'.

sound/soc/qcom/lpass-platform.c
   515          csubstream = pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream;
   516          if (csubstream) {
   517                  if (v->alloc_dma_channel)
   518                          data->wrdma_ch = v->alloc_dma_channel(drvdata,
   519                                                  SNDRV_PCM_STREAM_CAPTURE);
   520  
   521                  if (IS_ERR_VALUE(data->wrdma_ch))
   522                          goto capture_alloc_err;

->wrdma_ch is an int so this should just be:

			if (data->wrdma_ch < 0) {
				ret = data->wrdma_ch;
				goto capture_alloc_err;
			}

The other ->alloc_dma_channel uses the same IS_ERR_VALUE() check as well
so we should probably clean that up as well.  The IS_ERR_VALUE()
function is for places which return unsigned long basically.  No need to
be fancy for normal "negative returns are error" code.

   523  
   524                  drvdata->substream[data->wrdma_ch] = csubstream;
   525  
   526                  ret = snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV,
   527                                          soc_runtime->platform->dev,
   528                                          size, &csubstream->dma_buffer);
   529                  if (ret)
   530                          goto capture_alloc_err;
   531  
   532                  ret = regmap_write(drvdata->lpaif_map,
   533                          LPAIF_WRDMACTL_REG(v, data->wrdma_ch), 0);
   534                  if (ret) {
   535                          dev_err(soc_runtime->dev,
   536                                  "%s() error writing to wrdmactl reg: %d\n",
   537                                  __func__, ret);
   538                          goto capture_reg_err;
   539                  }
   540          }
   541  
   542          return 0;
   543  
   544  capture_reg_err:
   545          if (csubstream)
   546                  snd_dma_free_pages(&csubstream->dma_buffer);
   547  
   548  capture_alloc_err:
   549          if (psubstream)
   550                  snd_dma_free_pages(&psubstream->dma_buffer);
   551  
   552   playback_alloc_err:
   553          dev_err(soc_runtime->dev, "Cannot allocate buffer(s)\n");
   554  
   555          return ret;
   556  }

regards,
dan carpenter


More information about the Alsa-devel mailing list