At Fri, 6 Feb 2015 07:42:03 +0000, Fang, Yang A wrote:
-----Original Message----- From: Takashi Iwai [mailto:tiwai@suse.de] Sent: Thursday, February 05, 2015 11:23 PM To: Fang, Yang A Cc: broonie@kernel.org; lgirdwood@gmail.com; alsa-devel@alsa-project.org; Iriawan, Denny; N, Harshapriya; Jain, Praveen K; Strasser, Kevin; Koul, Vinod; Lin, Mengdong Subject: Re: [alsa-devel] [PATCH] ASoC: Intel: fix machine driver warnings
At Thu, 5 Feb 2015 16:19:16 -0800, yang.a.fang@intel.com wrote:
From: "Fang, Yang A" yang.a.fang@intel.com
this patch will fix below sparse warnings
warning: incorrect type in argument 2 (different base types) expected unsigned int [unsigned] val got restricted snd_pcm_format_t [usertype]
<noident>
sound/soc/intel/haswell.c:61:37 sound/soc/intel/broadwell.c:115:37: sound/soc/intel/bytcr_dpcm_rt5640.c:118:37: sound/soc/intel/cht_bsw_rt5672.c:183:37: sound/soc/intel/cht_bsw_rt5645.c:208:37:
Signed-off-by: Fang, Yang A yang.a.fang@intel.com
sound/soc/intel/broadwell.c | 2 +- sound/soc/intel/bytcr_dpcm_rt5640.c | 2 +- sound/soc/intel/cht_bsw_rt5645.c | 2 +- sound/soc/intel/cht_bsw_rt5672.c | 2 +- sound/soc/intel/haswell.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/sound/soc/intel/broadwell.c b/sound/soc/intel/broadwell.c index 9cf7d01..0ca4015 100644 --- a/sound/soc/intel/broadwell.c +++ b/sound/soc/intel/broadwell.c @@ -112,7 +112,7 @@ static int broadwell_ssp0_fixup(struct
snd_soc_pcm_runtime *rtd,
/* set SSP0 to 16 bit */ snd_mask_set(¶ms- masks[SNDRV_PCM_HW_PARAM_FORMAT - SNDRV_PCM_HW_PARAM_FIRST_MASK],
SNDRV_PCM_FORMAT_S16_LE);
(__force
int)SNDRV_PCM_FORMAT_S16_LE);
return 0; }
Oh, it's ugly, but unavoidable as long as we use this form.
Maybe it's better to provide a helper, e.g. params_set_format() to do the forced cast.
Also, it would be possible to provide the whole hw constraints stuff to make it working independently. But I guess it's overkill for DPCM hwparam fixups.
Takashi
Hi Takashi,
Thanks for the feedback. Are you looking for something like this?
masks[SNDRV_PCM_HW_PARAM_FORMAT - SNDRV_PCM_HW_PARAM_FIRST_MASK],
SNDRV_PCM_FORMAT_S16_LE);
params_set_format( SNDRV_PCM_FORMAT_S16_LE));
No, something like below in pcm_params.h:
static inline void params_set_format(struct snd_pcm_hw_params *p, snd_pcm_format_t format) { snd_mask_set(p, (__force int)format); }
Takashi