[PATCH] ona10iv: add ona10iv smart PA kernel driver

kernel test robot lkp at intel.com
Fri Nov 13 16:48:38 CET 2020


Hi Jamie,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on asoc/for-next]
[also build test WARNING on v5.10-rc3 next-20201113]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Jamie-Meacham/ona10iv-add-ona10iv-smart-PA-kernel-driver/20201105-004426
base:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
config: xtensa-randconfig-s031-20201113 (attached as .config)
compiler: xtensa-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.3-107-gaf3512a6-dirty
        # https://github.com/0day-ci/linux/commit/f91836c114d9be24432bbe5e0a968ebd8156a1c1
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Jamie-Meacham/ona10iv-add-ona10iv-smart-PA-kernel-driver/20201105-004426
        git checkout f91836c114d9be24432bbe5e0a968ebd8156a1c1
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=xtensa 

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


"sparse warnings: (new ones prefixed by >>)"
>> sound/soc/codecs/ona10iv.c:256:14: sparse: sparse: restricted snd_pcm_format_t degrades to integer
   sound/soc/codecs/ona10iv.c:260:14: sparse: sparse: restricted snd_pcm_format_t degrades to integer
   sound/soc/codecs/ona10iv.c:264:14: sparse: sparse: restricted snd_pcm_format_t degrades to integer
   sound/soc/codecs/ona10iv.c:265:14: sparse: sparse: restricted snd_pcm_format_t degrades to integer
>> sound/soc/codecs/ona10iv.c:355:58: sparse: sparse: incorrect type in argument 2 (different base types) @@     expected int format @@     got restricted snd_pcm_format_t @@
>> sound/soc/codecs/ona10iv.c:355:58: sparse:     expected int format
>> sound/soc/codecs/ona10iv.c:355:58: sparse:     got restricted snd_pcm_format_t
>> sound/soc/codecs/ona10iv.c:358:46: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected int param_val @@     got restricted snd_pcm_format_t @@
>> sound/soc/codecs/ona10iv.c:358:46: sparse:     expected int param_val
   sound/soc/codecs/ona10iv.c:358:46: sparse:     got restricted snd_pcm_format_t

vim +256 sound/soc/codecs/ona10iv.c

   245	
   246	static int ona10iv_set_bitwidth(struct ona10iv_priv *ona10iv, int format)
   247	{
   248		struct snd_soc_component *component = ona10iv->component;
   249		int slot_width, sample_width;
   250		int ret = 0;
   251	
   252		dev_dbg(component->dev,
   253				"ONA10IV-->set bitwidth for format: %d\n", format);
   254	
   255		switch (format) {
 > 256		case SNDRV_PCM_FORMAT_S16_LE:
   257			sample_width = ONA10IV_SAMPW_16;
   258			slot_width = ONA10IV_SLOTW_16;
   259			break;
   260		case SNDRV_PCM_FORMAT_S24_3LE:
   261			sample_width = ONA10IV_SAMPW_24;
   262			slot_width = ONA10IV_SLOTW_24;
   263			break;
   264		case SNDRV_PCM_FORMAT_S24_LE:
   265		case SNDRV_PCM_FORMAT_S32_LE:
   266			sample_width = ONA10IV_SAMPW_32;
   267			slot_width = ONA10IV_SLOTW_32;
   268			break;
   269		default:
   270			ret = -EINVAL;
   271		}
   272		param_errcheck(ret, component->dev,
   273					"error no case match for format", format);
   274	
   275		if (ret < 0)
   276			return ret;
   277	
   278		ret = snd_soc_component_update_bits(component,
   279					ONA10IV_REG_DAI_CTRL2, ONA10IV_SAMPW_MASK,
   280					sample_width);
   281		param_errcheck(ret, component->dev,
   282					"error writing sample width", sample_width);
   283		if (ret < 0)
   284			return ret;
   285	
   286		ret = snd_soc_component_update_bits(component,
   287					ONA10IV_REG_DAI_CTRL2, ONA10IV_SLOTW_MASK,
   288					slot_width);
   289		param_errcheck(ret, component->dev,
   290					"error writing slot width", slot_width);
   291		if (ret < 0)
   292			return ret;
   293	
   294		return 0;
   295	}
   296	
   297	static int ona10iv_set_samplerate(struct ona10iv_priv *ona10iv,
   298						int samplerate)
   299	{
   300		struct snd_soc_component *component = ona10iv->component;
   301		int rate_val;
   302		int ret = 0;
   303	
   304		dev_dbg(component->dev, "ONA10IV-->samplerate: %d\n", samplerate);
   305	
   306		switch (samplerate) {
   307		case 16000:
   308			rate_val = ONA10IV_FS_16KHZ;
   309			break;
   310		case 22050:
   311			rate_val = ONA10IV_FS_22KHZ;
   312			break;
   313		case 32000:
   314			rate_val = ONA10IV_FS_32KHZ;
   315			break;
   316		case 44100:
   317			rate_val = ONA10IV_FS_44KHZ;
   318			break;
   319		case 48000:
   320			rate_val = ONA10IV_FS_48KHZ;
   321			break;
   322		case 96000:
   323			rate_val = ONA10IV_FS_96KHZ;
   324			break;
   325		default:
   326			ret = -EINVAL;
   327		}
   328		param_errcheck(ret, component->dev,
   329					"error no case match for rate", samplerate);
   330		if (ret < 0)
   331			return ret;
   332	
   333		ret = snd_soc_component_update_bits(component,
   334					ONA10IV_REG_DAI_CTRL1, ONA10IV_FS_MASK,
   335					rate_val);
   336		param_errcheck(ret, component->dev,
   337					"error writing rate", rate_val);
   338		if (ret < 0)
   339			return ret;
   340	
   341		return 0;
   342	}
   343	
   344	static int ona10iv_hw_params(struct snd_pcm_substream *substream,
   345					 struct snd_pcm_hw_params *params,
   346					 struct snd_soc_dai *dai)
   347	{
   348		struct snd_soc_component *component = dai->component;
   349		struct ona10iv_priv *ona10iv =
   350					snd_soc_component_get_drvdata(component);
   351		int ret;
   352	
   353		dev_dbg(component->dev, "ONA10IV-->setting hw params\n");
   354	
 > 355		ret = ona10iv_set_bitwidth(ona10iv, params_format(params));
   356		param_errcheck(ret, component->dev,
   357					"error setting bitwidth for format",
 > 358					params_format(params));
   359		if (ret)
   360			return ret;
   361	
   362		ret = ona10iv_set_samplerate(ona10iv, params_rate(params));
   363		param_errcheck(ret, component->dev,
   364					"error setting rate", params_rate(params));
   365		if (ret)
   366			return ret;
   367	
   368		return 0;
   369	}
   370	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 34259 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20201113/c6302601/attachment-0001.gz>


More information about the Alsa-devel mailing list