Commit 7d2ae583 authored by Kai Vehmanen's avatar Kai Vehmanen Committed by Mark Brown

ASoC: Intel: bxt_rt298: common hdmi codec support

Add support for using snd-hda-codec-hdmi driver for HDMI/DP
instead of ASoC hdac-hdmi. This is aligned with how other
HDA codecs are already handled.
Signed-off-by: default avatarKai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: default avatarTakashi Iwai <tiwai@suse.de>
Reviewed-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20191029134017.18901-10-kai.vehmanen@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 59bbd703
...@@ -5,7 +5,7 @@ snd-soc-sst-byt-max98090-mach-objs := byt-max98090.o ...@@ -5,7 +5,7 @@ snd-soc-sst-byt-max98090-mach-objs := byt-max98090.o
snd-soc-sst-bdw-rt5677-mach-objs := bdw-rt5677.o snd-soc-sst-bdw-rt5677-mach-objs := bdw-rt5677.o
snd-soc-sst-broadwell-objs := broadwell.o snd-soc-sst-broadwell-objs := broadwell.o
snd-soc-sst-bxt-da7219_max98357a-objs := bxt_da7219_max98357a.o hda_dsp_common.o snd-soc-sst-bxt-da7219_max98357a-objs := bxt_da7219_max98357a.o hda_dsp_common.o
snd-soc-sst-bxt-rt298-objs := bxt_rt298.o snd-soc-sst-bxt-rt298-objs := bxt_rt298.o hda_dsp_common.o
snd-soc-sst-glk-rt5682_max98357a-objs := glk_rt5682_max98357a.o hda_dsp_common.o snd-soc-sst-glk-rt5682_max98357a-objs := glk_rt5682_max98357a.o hda_dsp_common.o
snd-soc-sst-bytcr-rt5640-objs := bytcr_rt5640.o snd-soc-sst-bytcr-rt5640-objs := bytcr_rt5640.o
snd-soc-sst-bytcr-rt5651-objs := bytcr_rt5651.o snd-soc-sst-bytcr-rt5651-objs := bytcr_rt5651.o
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <sound/pcm_params.h> #include <sound/pcm_params.h>
#include "../../codecs/hdac_hdmi.h" #include "../../codecs/hdac_hdmi.h"
#include "../../codecs/rt298.h" #include "../../codecs/rt298.h"
#include "hda_dsp_common.h"
/* Headset jack detection DAPM pins */ /* Headset jack detection DAPM pins */
static struct snd_soc_jack broxton_headset; static struct snd_soc_jack broxton_headset;
...@@ -31,6 +32,7 @@ struct bxt_hdmi_pcm { ...@@ -31,6 +32,7 @@ struct bxt_hdmi_pcm {
struct bxt_rt286_private { struct bxt_rt286_private {
struct list_head hdmi_pcm_list; struct list_head hdmi_pcm_list;
bool common_hdmi_codec_drv;
}; };
enum { enum {
...@@ -527,6 +529,13 @@ static int bxt_card_late_probe(struct snd_soc_card *card) ...@@ -527,6 +529,13 @@ static int bxt_card_late_probe(struct snd_soc_card *card)
int err, i = 0; int err, i = 0;
char jack_name[NAME_SIZE]; char jack_name[NAME_SIZE];
pcm = list_first_entry(&ctx->hdmi_pcm_list, struct bxt_hdmi_pcm,
head);
component = pcm->codec_dai->component;
if (ctx->common_hdmi_codec_drv)
return hda_dsp_hdmi_build_controls(card, component);
list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) { list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) {
component = pcm->codec_dai->component; component = pcm->codec_dai->component;
snprintf(jack_name, sizeof(jack_name), snprintf(jack_name, sizeof(jack_name),
...@@ -626,6 +635,8 @@ static int broxton_audio_probe(struct platform_device *pdev) ...@@ -626,6 +635,8 @@ static int broxton_audio_probe(struct platform_device *pdev)
if (ret) if (ret)
return ret; return ret;
ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv;
return devm_snd_soc_register_card(&pdev->dev, card); return devm_snd_soc_register_card(&pdev->dev, card);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment