diff options
Diffstat (limited to 'sound/soc/intel/boards/bxt_rt298.c')
| -rw-r--r-- | sound/soc/intel/boards/bxt_rt298.c | 27 | 
1 files changed, 21 insertions, 6 deletions
| diff --git a/sound/soc/intel/boards/bxt_rt298.c b/sound/soc/intel/boards/bxt_rt298.c index 7843104fadcb..c7e9024e65ef 100644 --- a/sound/soc/intel/boards/bxt_rt298.c +++ b/sound/soc/intel/boards/bxt_rt298.c @@ -146,6 +146,9 @@ static const struct snd_soc_dapm_route geminilake_rt298_map[] = {  	{ "dmic01_hifi", NULL, "DMIC01 Rx" },  	{ "DMIC01 Rx", NULL, "Capture" }, +	{ "dmic_voice", NULL, "DMIC16k Rx" }, +	{ "DMIC16k Rx", NULL, "Capture" }, +  	{ "hifi3", NULL, "iDisp3 Tx"},  	{ "iDisp3 Tx", NULL, "iDisp3_out"},  	{ "hifi2", NULL, "iDisp2 Tx"}, @@ -167,7 +170,7 @@ static int broxton_rt298_fe_init(struct snd_soc_pcm_runtime *rtd)  static int broxton_rt298_codec_init(struct snd_soc_pcm_runtime *rtd)  { -	struct snd_soc_codec *codec = rtd->codec; +	struct snd_soc_component *component = rtd->codec_dai->component;  	int ret = 0;  	ret = snd_soc_card_jack_new(rtd->card, "Headset", @@ -178,7 +181,7 @@ static int broxton_rt298_codec_init(struct snd_soc_pcm_runtime *rtd)  	if (ret)  		return ret; -	rt298_mic_detect(codec, &broxton_headset); +	rt298_mic_detect(component, &broxton_headset);  	snd_soc_dapm_ignore_suspend(&rtd->card->dapm, "SoC DMIC"); @@ -457,6 +460,18 @@ static struct snd_soc_dai_link broxton_rt298_dais[] = {  		.no_pcm = 1,  	},  	{ +		.name = "dmic16k", +		.id = 2, +		.cpu_dai_name = "DMIC16k Pin", +		.codec_name = "dmic-codec", +		.codec_dai_name = "dmic-hifi", +		.platform_name = "0000:00:0e.0", +		.be_hw_params_fixup = broxton_dmic_fixup, +		.ignore_suspend = 1, +		.dpcm_capture = 1, +		.no_pcm = 1, +	}, +	{  		.name = "iDisp1",  		.id = 3,  		.cpu_dai_name = "iDisp1 Pin", @@ -496,12 +511,12 @@ static int bxt_card_late_probe(struct snd_soc_card *card)  {  	struct bxt_rt286_private *ctx = snd_soc_card_get_drvdata(card);  	struct bxt_hdmi_pcm *pcm; -	struct snd_soc_codec *codec = NULL; +	struct snd_soc_component *component = NULL;  	int err, i = 0;  	char jack_name[NAME_SIZE];  	list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) { -		codec = pcm->codec_dai->codec; +		component = pcm->codec_dai->component;  		snprintf(jack_name, sizeof(jack_name),  			"HDMI/DP, pcm=%d Jack", pcm->device);  		err = snd_soc_card_jack_new(card, jack_name, @@ -519,10 +534,10 @@ static int bxt_card_late_probe(struct snd_soc_card *card)  		i++;  	} -	if (!codec) +	if (!component)  		return -EINVAL; -	return hdac_hdmi_jack_port_init(codec, &card->dapm); +	return hdac_hdmi_jack_port_init(component, &card->dapm);  } | 

