[alsa-devel] [PATCH 6/6] ASoC: Intel: Add Haswell Machine support
Liam Girdwood
liam.r.girdwood at linux.intel.com
Mon Feb 24 20:55:15 CET 2014
On Fri, 2014-02-21 at 14:22 +0900, Mark Brown wrote:
> On Thu, Feb 20, 2014 at 09:48:47PM +0000, Liam Girdwood wrote:
> > Add support for Haswell based machines with SST DSP audio.
>
> Applied, thanks.
>
> > +config SND_SOC_INTEL_HASWELL_MACH
> > + tristate "ASoC Audio DSP support for Intel Haswell Lynxpoint"
> > + depends on SND_SOC_INTEL_SST && X86_INTEL_LPSS
> > + select SND_SOC_INTEL_HASWELL
> > + select SND_SOC_RT5640
> > + help
> > + This adds support for the Lynxpoint Audio DSP on Intel(R) Haswell
> > + Ultrabook platforms.
> > + Say Y if you have such a device
> > + If unsure select "N".
>
> Looks like there's formatting issues here again - tab/space probably.
>
> > +static const struct snd_soc_dapm_route haswell_rt5640_map[] = {
> > +
> > + {"Headphones", NULL, "HPOR"},
> > + {"Headphones", NULL, "HPOL"},
> > + {"IN2P", NULL, "Mic"},
> > +
> > + /* CODEC BE connections */
> > + {"SSP0 CODEC IN", NULL, "AIF1 Capture"},
> > + {"AIF1 Playback", NULL, "SSP0 CODEC OUT"},
> > +};
>
> A DPCM system in mainline! Yay!
>
> > +static int haswell_rt5640_hw_params(struct snd_pcm_substream *substream,
> > + struct snd_pcm_hw_params *params)
> > +{
> > + struct snd_soc_pcm_runtime *rtd = substream->private_data;
> > + struct snd_soc_dai *codec_dai = rtd->codec_dai;
> > + int ret;
> > +
> > + /* Set codec DAI configuration */
> > + ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
> > + SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS);
> > + if (ret < 0) {
> > + dev_err(rtd->dev, "can't set codec DAI configuration\n");
> > + return ret;
> > + }
>
> Set .dai_fmt in the dai_link?
Will update, I think we left that so we could read the DAI fmt from ACPI
in the near future. However, I do intend to read the DAI link from ACPI
in the near future too, so we should construct the DAI link with DAI
format from ACPI at the same time.
>
> > + /* set correct codec filter for DAI format and clock config */
> > + snd_soc_update_bits(rtd->codec, 0x83, 0xffff, 0x8000);
>
> The CODEC driver ought to be figuring out the magic numbers for itself
> really.
I was thinking of a codec public API call for the last one here. I'll
chat with Bard after BYT upstreaming and see what we can come up with.
Liam
More information about the Alsa-devel
mailing list