ASoC: Intel: bxt-da7219-max98357a: 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: Kai Vehmanen <kai.vehmanen@linux.intel.com> Reviewed-by: Takashi Iwai <tiwai@suse.de> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20191029134017.18901-7-kai.vehmanen@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
139c7febad
commit
57ad18906f
|
@ -4,7 +4,7 @@ snd-soc-sst-byt-rt5640-mach-objs := byt-rt5640.o
|
||||||
snd-soc-sst-byt-max98090-mach-objs := byt-max98090.o
|
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
|
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
|
||||||
snd-soc-sst-glk-rt5682_max98357a-objs := glk_rt5682_max98357a.o
|
snd-soc-sst-glk-rt5682_max98357a-objs := glk_rt5682_max98357a.o
|
||||||
snd-soc-sst-bytcr-rt5640-objs := bytcr_rt5640.o
|
snd-soc-sst-bytcr-rt5640-objs := bytcr_rt5640.o
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include "../../codecs/da7219.h"
|
#include "../../codecs/da7219.h"
|
||||||
#include "../../codecs/da7219-aad.h"
|
#include "../../codecs/da7219-aad.h"
|
||||||
#include "../common/soc-intel-quirks.h"
|
#include "../common/soc-intel-quirks.h"
|
||||||
|
#include "hda_dsp_common.h"
|
||||||
|
|
||||||
#define BXT_DIALOG_CODEC_DAI "da7219-hifi"
|
#define BXT_DIALOG_CODEC_DAI "da7219-hifi"
|
||||||
#define BXT_MAXIM_CODEC_DAI "HiFi"
|
#define BXT_MAXIM_CODEC_DAI "HiFi"
|
||||||
|
@ -38,6 +39,7 @@ struct bxt_hdmi_pcm {
|
||||||
|
|
||||||
struct bxt_card_private {
|
struct bxt_card_private {
|
||||||
struct list_head hdmi_pcm_list;
|
struct list_head hdmi_pcm_list;
|
||||||
|
bool common_hdmi_codec_drv;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
@ -615,6 +617,13 @@ static int bxt_card_late_probe(struct snd_soc_card *card)
|
||||||
snd_soc_dapm_add_routes(&card->dapm, broxton_map,
|
snd_soc_dapm_add_routes(&card->dapm, broxton_map,
|
||||||
ARRAY_SIZE(broxton_map));
|
ARRAY_SIZE(broxton_map));
|
||||||
|
|
||||||
|
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),
|
||||||
|
@ -720,6 +729,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, &broxton_audio_card);
|
return devm_snd_soc_register_card(&pdev->dev, &broxton_audio_card);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue