[alsa-devel] [PATCH] ASoC: Intel: fix machine driver warnings

Takashi Iwai tiwai at suse.de
Fri Feb 6 08:46:43 CET 2015


At Fri, 6 Feb 2015 07:42:03 +0000,
Fang, Yang A wrote:
> 
> > -----Original Message-----
> > From: Takashi Iwai [mailto:tiwai at suse.de]
> > Sent: Thursday, February 05, 2015 11:23 PM
> > To: Fang, Yang A
> > Cc: broonie at kernel.org; lgirdwood at gmail.com; alsa-devel at 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 at intel.com wrote:
> > >
> > > From: "Fang, Yang A" <yang.a.fang at 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 at 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(&params-
> > >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


More information about the Alsa-devel mailing list