[alsa-devel] ASoC: ssm4567: Add driver for Analog Devices SSM4567 amplifier

Dan Carpenter dan.carpenter at oracle.com
Wed Oct 1 19:02:57 CEST 2014


Hello Anatol Pomozov,

The patch 1ee44ce03011: "ASoC: ssm4567: Add driver for Analog Devices
SSM4567 amplifier" from Sep 26, 2014, leads to the following static
checker warning:

	sound/soc/codecs/ssm4567.c:176 ssm4567_hw_params()
	warn: we tested 'rate <= 96000' before and it was 'false'

sound/soc/codecs/ssm4567.c
   160  static int ssm4567_hw_params(struct snd_pcm_substream *substream,
   161          struct snd_pcm_hw_params *params, struct snd_soc_dai *dai)
   162  {
   163          struct snd_soc_codec *codec = dai->codec;
   164          struct ssm4567 *ssm4567 = snd_soc_codec_get_drvdata(codec);
   165          unsigned int rate = params_rate(params);
   166          unsigned int dacfs;
   167  
   168          if (rate >= 8000 && rate <= 12000)
   169                  dacfs = SSM4567_DAC_FS_8000_12000;
   170          else if (rate >= 16000 && rate <= 24000)
   171                  dacfs = SSM4567_DAC_FS_16000_24000;
   172          else if (rate >= 32000 && rate <= 48000)
   173                  dacfs = SSM4567_DAC_FS_32000_48000;
   174          else if (rate >= 64000 && rate <= 96000)
   175                  dacfs = SSM4567_DAC_FS_64000_96000;
   176          else if (rate >= 64000 && rate <= 96000)
   177                  dacfs = SSM4567_DAC_FS_64000_96000;

These two lines are a cut and paste error.  The intent is not clear.

   178          else if (rate >= 128000 && rate <= 192000)
   179                  dacfs = SSM4567_DAC_FS_128000_192000;
   180          else
   181                  return -EINVAL;
   182  
   183          return regmap_update_bits(ssm4567->regmap, SSM4567_REG_DAC_CTRL,
   184                                  SSM4567_DAC_FS_MASK, dacfs);
   185  }

regards,
dan carpenter


More information about the Alsa-devel mailing list