Message ID | 20210324175200.44922-3-vamshi.krishna.gopal@intel.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | kbl_da7219_max9357a machine changes for wov and MST | expand |
On 3/24/21 12:52 PM, vamshi.krishna.gopal@intel.com wrote: > From: Mac Chiang <mac.chiang@intel.com> > > create dai link in kbl_da7219_max98357a driver for wake on voice > functionality. > > changes picked from broonie's tree > commit 0c7941a63a0f > ("ASoC: Intel: Skylake: Use refcap device for mono recording") > commit 2154be362c90 > ("ASoc: Intel: boards: Add WOV as sink for nau88l25_ssm4567 machine") > > Signed-off-by: Mac Chiang <mac.chiang@intel.com> > Signed-off-by: Vamshi Krishna Gopal <vamshi.krishna.gopal@intel.com> > Tested-by: Kaiyen Chang <kaiyen.chang@intel.corp-partner.google.com> > Tested-by: luke yang <luke_yang@compal.corp-partner.google.com> > Tested-by: Grace Kao <grace.kao@intel.com> > Tested-by: Kaiyen Chang <kaiyen.chang@intel.com> > Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org> > --- > sound/soc/intel/boards/kbl_da7219_max98357a.c | 35 +++++++++++++++++++ > 1 file changed, 35 insertions(+) > > diff --git a/sound/soc/intel/boards/kbl_da7219_max98357a.c b/sound/soc/intel/boards/kbl_da7219_max98357a.c > index 1d6b2855874d..c9d83eebf4a8 100644 > --- a/sound/soc/intel/boards/kbl_da7219_max98357a.c > +++ b/sound/soc/intel/boards/kbl_da7219_max98357a.c > @@ -44,6 +44,7 @@ struct kbl_codec_private { > enum { > KBL_DPCM_AUDIO_PB = 0, > KBL_DPCM_AUDIO_CP, > + KBL_DPCM_AUDIO_REF_CP, > KBL_DPCM_AUDIO_DMIC_CP, > KBL_DPCM_AUDIO_HDMI1_PB, > KBL_DPCM_AUDIO_HDMI2_PB, > @@ -335,12 +336,36 @@ static struct snd_soc_ops kabylake_dmic_ops = { > .startup = kabylake_dmic_startup, > }; > > +static const struct snd_pcm_hw_constraint_list constraints_refcap = { > + .count = ARRAY_SIZE(ch_mono), > + .list = ch_mono, > +}; > + > +static int kabylake_refcap_startup(struct snd_pcm_substream *substream) > +{ > + substream->runtime->hw.channels_max = 1; > + snd_pcm_hw_constraint_list(substream->runtime, 0, > + SNDRV_PCM_HW_PARAM_CHANNELS, > + &constraints_refcap); > + > + return snd_pcm_hw_constraint_list(substream->runtime, 0, > + SNDRV_PCM_HW_PARAM_RATE, > + &constraints_16000); > +} > + > +static struct snd_soc_ops skylaye_refcap_ops = { > + .startup = kabylake_refcap_startup, > +}; > + > SND_SOC_DAILINK_DEF(dummy, > DAILINK_COMP_ARRAY(COMP_DUMMY())); > > SND_SOC_DAILINK_DEF(system, > DAILINK_COMP_ARRAY(COMP_CPU("System Pin"))); > > +SND_SOC_DAILINK_DEF(reference, > + DAILINK_COMP_ARRAY(COMP_CPU("Reference Pin"))); > + > SND_SOC_DAILINK_DEF(dmic, > DAILINK_COMP_ARRAY(COMP_CPU("DMIC Pin"))); > > @@ -415,6 +440,16 @@ static struct snd_soc_dai_link kabylake_dais[] = { > .ops = &kabylake_da7219_fe_ops, > SND_SOC_DAILINK_REG(system, dummy, platform), > }, > + [KBL_DPCM_AUDIO_REF_CP] = { > + .name = "Kbl Audio Reference cap", > + .stream_name = "Wake on Voice", Does anyone have a clear definition of what "REF_CP" and "reference" mean? it's not echo reference since there is a separate entry for this, so not sure what the term means. Half of the SKL/KBL drivers seem to use this FE for "Wake on Voice" and the other half use it for 'Refcap', this doesn't look very consistent. > + .init = NULL, > + .dpcm_capture = 1, > + .nonatomic = 1, > + .dynamic = 1, > + .ops = &skylaye_refcap_ops, > + SND_SOC_DAILINK_REG(reference, dummy, platform), > + }, > [KBL_DPCM_AUDIO_DMIC_CP] = { > .name = "Kbl Audio DMIC cap", > .stream_name = "dmiccap", >
Hi, Thank you for the patch! Yet something to improve: [auto build test ERROR on asoc/for-next] [also build test ERROR on sound/for-next v5.12-rc4 next-20210324] [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/vamshi-krishna-gopal-intel-com/kbl_da7219_max9357a-machine-changes-for-wov-and-MST/20210325-015625 base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next config: x86_64-randconfig-a015-20210325 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project a4fb88669cd98db6fef7dcac88e3ec425d40c00d) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install x86_64 cross compiling tool for clang build # apt-get install binutils-x86-64-linux-gnu # https://github.com/0day-ci/linux/commit/53b070ce8badeefb7fde6432ed4a5078cefe28e3 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review vamshi-krishna-gopal-intel-com/kbl_da7219_max9357a-machine-changes-for-wov-and-MST/20210325-015625 git checkout 53b070ce8badeefb7fde6432ed4a5078cefe28e3 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): >> sound/soc/intel/boards/kbl_da7219_max98357a.c:340:22: error: use of undeclared identifier 'ch_mono' .count = ARRAY_SIZE(ch_mono), ^ >> sound/soc/intel/boards/kbl_da7219_max98357a.c:340:22: error: use of undeclared identifier 'ch_mono' >> sound/soc/intel/boards/kbl_da7219_max98357a.c:340:22: error: use of undeclared identifier 'ch_mono' sound/soc/intel/boards/kbl_da7219_max98357a.c:341:11: error: use of undeclared identifier 'ch_mono' .list = ch_mono, ^ >> sound/soc/intel/boards/kbl_da7219_max98357a.c:353:7: error: use of undeclared identifier 'constraints_16000'; did you mean 'constraints_rates'? &constraints_16000); ^~~~~~~~~~~~~~~~~ constraints_rates sound/soc/intel/boards/kbl_da7219_max98357a.c:251:48: note: 'constraints_rates' declared here static const struct snd_pcm_hw_constraint_list constraints_rates = { ^ 5 errors generated. vim +/ch_mono +340 sound/soc/intel/boards/kbl_da7219_max98357a.c 338 339 static const struct snd_pcm_hw_constraint_list constraints_refcap = { > 340 .count = ARRAY_SIZE(ch_mono), 341 .list = ch_mono, 342 }; 343 344 static int kabylake_refcap_startup(struct snd_pcm_substream *substream) 345 { 346 substream->runtime->hw.channels_max = 1; 347 snd_pcm_hw_constraint_list(substream->runtime, 0, 348 SNDRV_PCM_HW_PARAM_CHANNELS, 349 &constraints_refcap); 350 351 return snd_pcm_hw_constraint_list(substream->runtime, 0, 352 SNDRV_PCM_HW_PARAM_RATE, > 353 &constraints_16000); 354 } 355 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff --git a/sound/soc/intel/boards/kbl_da7219_max98357a.c b/sound/soc/intel/boards/kbl_da7219_max98357a.c index 1d6b2855874d..c9d83eebf4a8 100644 --- a/sound/soc/intel/boards/kbl_da7219_max98357a.c +++ b/sound/soc/intel/boards/kbl_da7219_max98357a.c @@ -44,6 +44,7 @@ struct kbl_codec_private { enum { KBL_DPCM_AUDIO_PB = 0, KBL_DPCM_AUDIO_CP, + KBL_DPCM_AUDIO_REF_CP, KBL_DPCM_AUDIO_DMIC_CP, KBL_DPCM_AUDIO_HDMI1_PB, KBL_DPCM_AUDIO_HDMI2_PB, @@ -335,12 +336,36 @@ static struct snd_soc_ops kabylake_dmic_ops = { .startup = kabylake_dmic_startup, }; +static const struct snd_pcm_hw_constraint_list constraints_refcap = { + .count = ARRAY_SIZE(ch_mono), + .list = ch_mono, +}; + +static int kabylake_refcap_startup(struct snd_pcm_substream *substream) +{ + substream->runtime->hw.channels_max = 1; + snd_pcm_hw_constraint_list(substream->runtime, 0, + SNDRV_PCM_HW_PARAM_CHANNELS, + &constraints_refcap); + + return snd_pcm_hw_constraint_list(substream->runtime, 0, + SNDRV_PCM_HW_PARAM_RATE, + &constraints_16000); +} + +static struct snd_soc_ops skylaye_refcap_ops = { + .startup = kabylake_refcap_startup, +}; + SND_SOC_DAILINK_DEF(dummy, DAILINK_COMP_ARRAY(COMP_DUMMY())); SND_SOC_DAILINK_DEF(system, DAILINK_COMP_ARRAY(COMP_CPU("System Pin"))); +SND_SOC_DAILINK_DEF(reference, + DAILINK_COMP_ARRAY(COMP_CPU("Reference Pin"))); + SND_SOC_DAILINK_DEF(dmic, DAILINK_COMP_ARRAY(COMP_CPU("DMIC Pin"))); @@ -415,6 +440,16 @@ static struct snd_soc_dai_link kabylake_dais[] = { .ops = &kabylake_da7219_fe_ops, SND_SOC_DAILINK_REG(system, dummy, platform), }, + [KBL_DPCM_AUDIO_REF_CP] = { + .name = "Kbl Audio Reference cap", + .stream_name = "Wake on Voice", + .init = NULL, + .dpcm_capture = 1, + .nonatomic = 1, + .dynamic = 1, + .ops = &skylaye_refcap_ops, + SND_SOC_DAILINK_REG(reference, dummy, platform), + }, [KBL_DPCM_AUDIO_DMIC_CP] = { .name = "Kbl Audio DMIC cap", .stream_name = "dmiccap",