[alsa-devel] [asoc:for-5.5 32/32] sound/soc/codecs/tas2770.c:211:14: sparse: sparse: restricted snd_pcm_format_t degrades to integer

kbuild test robot lkp at intel.com
Tue Oct 1 21:58:27 CEST 2019


tree:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-5.5
head:   1a476abc723e644248dba975b71122fcf878703b
commit: 1a476abc723e644248dba975b71122fcf878703b [32/32] tas2770: add tas2770 smart PA kernel driver
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-rc1-37-gd466a02-dirty
        git checkout 1a476abc723e644248dba975b71122fcf878703b
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp at intel.com>


sparse warnings: (new ones prefixed by >>)

>> sound/soc/codecs/tas2770.c:211:14: sparse: sparse: restricted snd_pcm_format_t degrades to integer
   sound/soc/codecs/tas2770.c:218:14: sparse: sparse: restricted snd_pcm_format_t degrades to integer
   sound/soc/codecs/tas2770.c:225:14: sparse: sparse: restricted snd_pcm_format_t degrades to integer
>> sound/soc/codecs/tas2770.c:361:58: sparse: sparse: incorrect type in argument 2 (different base types) @@    expected int bitwidth @@    got restricted snd_pcm_formint bitwidth @@
>> sound/soc/codecs/tas2770.c:361:58: sparse:    expected int bitwidth
>> sound/soc/codecs/tas2770.c:361:58: sparse:    got restricted snd_pcm_format_t

vim +211 sound/soc/codecs/tas2770.c

   204	
   205	static int tas2770_set_bitwidth(struct tas2770_priv *tas2770, int bitwidth)
   206	{
   207		int ret;
   208		struct snd_soc_component *component = tas2770->component;
   209	
   210		switch (bitwidth) {
 > 211		case SNDRV_PCM_FORMAT_S16_LE:
   212			ret = snd_soc_component_update_bits(component,
   213				TAS2770_TDM_CFG_REG2,
   214				TAS2770_TDM_CFG_REG2_RXW_MASK,
   215				TAS2770_TDM_CFG_REG2_RXW_16BITS);
   216			tas2770->v_sense_slot = tas2770->i_sense_slot + 2;
   217			break;
   218		case SNDRV_PCM_FORMAT_S24_LE:
   219			ret = snd_soc_component_update_bits(component,
   220				TAS2770_TDM_CFG_REG2,
   221				TAS2770_TDM_CFG_REG2_RXW_MASK,
   222				TAS2770_TDM_CFG_REG2_RXW_24BITS);
   223			tas2770->v_sense_slot = tas2770->i_sense_slot + 4;
   224			break;
   225		case SNDRV_PCM_FORMAT_S32_LE:
   226			ret = snd_soc_component_update_bits(component,
   227				TAS2770_TDM_CFG_REG2,
   228				TAS2770_TDM_CFG_REG2_RXW_MASK,
   229				TAS2770_TDM_CFG_REG2_RXW_32BITS);
   230			tas2770->v_sense_slot = tas2770->i_sense_slot + 4;
   231			break;
   232	
   233		default:
   234			return -EINVAL;
   235		}
   236	
   237		tas2770->channel_size = bitwidth;
   238	
   239		ret = snd_soc_component_update_bits(component,
   240			TAS2770_TDM_CFG_REG5,
   241			TAS2770_TDM_CFG_REG5_VSNS_MASK |
   242			TAS2770_TDM_CFG_REG5_50_MASK,
   243			TAS2770_TDM_CFG_REG5_VSNS_ENABLE |
   244			tas2770->v_sense_slot);
   245		if (ret)
   246			goto end;
   247		ret = snd_soc_component_update_bits(component,
   248			TAS2770_TDM_CFG_REG6,
   249			TAS2770_TDM_CFG_REG6_ISNS_MASK |
   250			TAS2770_TDM_CFG_REG6_50_MASK,
   251			TAS2770_TDM_CFG_REG6_ISNS_ENABLE |
   252			tas2770->i_sense_slot);
   253	
   254	end:
   255		return ret;
   256	}
   257	
   258	static int tas2770_set_samplerate(struct tas2770_priv *tas2770, int samplerate)
   259	{
   260		int ret;
   261		struct snd_soc_component *component = tas2770->component;
   262	
   263		switch (samplerate) {
   264		case 48000:
   265			ret = snd_soc_component_update_bits(component,
   266				TAS2770_TDM_CFG_REG0,
   267				TAS2770_TDM_CFG_REG0_SMP_MASK,
   268				TAS2770_TDM_CFG_REG0_SMP_48KHZ);
   269			if (ret)
   270				goto end;
   271			ret = snd_soc_component_update_bits(component,
   272				TAS2770_TDM_CFG_REG0,
   273				TAS2770_TDM_CFG_REG0_31_MASK,
   274				TAS2770_TDM_CFG_REG0_31_44_1_48KHZ);
   275			if (ret)
   276				goto end;
   277			break;
   278		case 44100:
   279			ret = snd_soc_component_update_bits(component,
   280				TAS2770_TDM_CFG_REG0,
   281				TAS2770_TDM_CFG_REG0_SMP_MASK,
   282				TAS2770_TDM_CFG_REG0_SMP_44_1KHZ);
   283			if (ret)
   284				goto end;
   285			ret = snd_soc_component_update_bits(component,
   286				TAS2770_TDM_CFG_REG0,
   287				TAS2770_TDM_CFG_REG0_31_MASK,
   288				TAS2770_TDM_CFG_REG0_31_44_1_48KHZ);
   289			if (ret)
   290				goto end;
   291			break;
   292		case 96000:
   293			ret = snd_soc_component_update_bits(component,
   294				TAS2770_TDM_CFG_REG0,
   295				TAS2770_TDM_CFG_REG0_SMP_MASK,
   296				TAS2770_TDM_CFG_REG0_SMP_48KHZ);
   297			if (ret)
   298				goto end;
   299			ret = snd_soc_component_update_bits(component,
   300				TAS2770_TDM_CFG_REG0,
   301				TAS2770_TDM_CFG_REG0_31_MASK,
   302				TAS2770_TDM_CFG_REG0_31_88_2_96KHZ);
   303			break;
   304		case 88200:
   305			ret = snd_soc_component_update_bits(component,
   306				TAS2770_TDM_CFG_REG0,
   307				TAS2770_TDM_CFG_REG0_SMP_MASK,
   308				TAS2770_TDM_CFG_REG0_SMP_44_1KHZ);
   309			if (ret)
   310				goto end;
   311			ret = snd_soc_component_update_bits(component,
   312				TAS2770_TDM_CFG_REG0,
   313				TAS2770_TDM_CFG_REG0_31_MASK,
   314				TAS2770_TDM_CFG_REG0_31_88_2_96KHZ);
   315			break;
   316		case 19200:
   317			ret = snd_soc_component_update_bits(component,
   318				TAS2770_TDM_CFG_REG0,
   319				TAS2770_TDM_CFG_REG0_SMP_MASK,
   320				TAS2770_TDM_CFG_REG0_SMP_48KHZ);
   321			if (ret)
   322				goto end;
   323			ret = snd_soc_component_update_bits(component,
   324				TAS2770_TDM_CFG_REG0,
   325				TAS2770_TDM_CFG_REG0_31_MASK,
   326				TAS2770_TDM_CFG_REG0_31_176_4_192KHZ);
   327			if (ret)
   328				goto end;
   329			break;
   330		case 17640:
   331			ret = snd_soc_component_update_bits(component,
   332				TAS2770_TDM_CFG_REG0,
   333				TAS2770_TDM_CFG_REG0_SMP_MASK,
   334				TAS2770_TDM_CFG_REG0_SMP_44_1KHZ);
   335			if (ret)
   336				goto end;
   337			ret = snd_soc_component_update_bits(component,
   338				TAS2770_TDM_CFG_REG0,
   339				TAS2770_TDM_CFG_REG0_31_MASK,
   340				TAS2770_TDM_CFG_REG0_31_176_4_192KHZ);
   341			break;
   342		default:
   343			ret = -EINVAL;
   344		}
   345	
   346	end:
   347		if (!ret)
   348			tas2770->sampling_rate = samplerate;
   349		return ret;
   350	}
   351	
   352	static int tas2770_hw_params(struct snd_pcm_substream *substream,
   353				     struct snd_pcm_hw_params *params,
   354				     struct snd_soc_dai *dai)
   355	{
   356		struct snd_soc_component *component = dai->component;
   357		struct tas2770_priv *tas2770 =
   358				snd_soc_component_get_drvdata(component);
   359		int ret;
   360	
 > 361		ret = tas2770_set_bitwidth(tas2770, params_format(params));
   362		if (ret < 0)
   363			goto end;
   364	
   365	
   366		ret = tas2770_set_samplerate(tas2770, params_rate(params));
   367	
   368	end:
   369		return ret;
   370	}
   371	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation


More information about the Alsa-devel mailing list