diff options
author | Dara Ramesh <dramesh@nvidia.com> | 2012-09-20 09:44:48 +0530 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-10-25 12:16:58 -0700 |
commit | 29ca7de72f5e67bf727e42427fbbf892ce5095c7 (patch) | |
tree | 56144f36af65f1838c5436c0c9483bc1e9c9f4f2 /sound | |
parent | ab690d50046f0faccb36d75eb8ad6e15c8aea22c (diff) |
ALSA: hda - add Nvidia T114 Tegra HDMI codec id
Signed-off-by: Dara Ramesh <dramesh@nvidia.com>
Reviewed-on: http://git-master/r/133966
(cherry picked from commit e4473b4eb34fc8b57f358e0ff38095c731a6f01b)
Change-Id: I8987c4d5555a4fd0da127ec5abbf004ffe32117b
Signed-off-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-on: http://git-master/r/146953
Reviewed-by: Automatic_Commit_Validation_User
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/hda/patch_hdmi.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 51a73e1904bd..637b3b2912d7 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -786,7 +786,8 @@ static void hdmi_intrinsic_event(struct hda_codec *codec, unsigned int res) hdmi_present_sense(&spec->pins[pin_idx], 1); #ifdef CONFIG_SND_HDA_PLATFORM_NVIDIA_TEGRA - if (codec->preset->id == 0x10de0020) { + if (((codec->preset->id == 0x10de0020) || + (codec->preset->id == 0x10de0022))) { /* * HDMI sink's ELD info cannot always be retrieved for now, e.g. * in console or for audio devices. Assume the highest speakers @@ -906,8 +907,9 @@ static int hdmi_pcm_open(struct hda_pcm_stream *hinfo, eld = &per_pin->sink_eld; #ifdef CONFIG_SND_HDA_PLATFORM_NVIDIA_TEGRA - if ((codec->preset->id == 0x10de0020) && - (!eld->monitor_present || !eld->lpcm_sad_ready)) { + if ((((codec->preset->id == 0x10de0020) || + (codec->preset->id == 0x10de0022))) && + (!eld->monitor_present || !eld->lpcm_sad_ready)) { if (!eld->monitor_present) { if (tegra_hdmi_setup_hda_presence() < 0) { snd_printk(KERN_WARNING @@ -1051,7 +1053,8 @@ static void hdmi_repoll_eld(struct work_struct *work) hdmi_present_sense(per_pin, per_pin->repoll_count); #ifdef CONFIG_SND_HDA_PLATFORM_NVIDIA_TEGRA - if (codec->preset->id == 0x10de0020) { + if ((codec->preset->id == 0x10de0020) || + (codec->preset->id == 0x10de0022)) { /* * HDMI sink's ELD info cannot always be retrieved for now, e.g. * in console or for audio devices. Assume the highest speakers @@ -1169,7 +1172,8 @@ static int hdmi_parse_codec(struct hda_codec *codec) */ #ifdef CONFIG_SND_HDA_POWER_SAVE if ((!(snd_hda_param_read(codec, codec->afg, AC_PAR_POWER_STATE) & - AC_PWRST_EPSS)) && (codec->preset->id != 0x10de0020)) + AC_PWRST_EPSS)) && ((codec->preset->id != 0x10de0020) || + (codec->preset->id != 0x10de0022))) codec->bus->power_keep_link_on = 1; #endif @@ -1202,7 +1206,8 @@ static int generic_hdmi_playback_pcm_prepare(struct hda_pcm_stream *hinfo, int pinctl; #if defined(CONFIG_SND_HDA_PLATFORM_NVIDIA_TEGRA) && defined(CONFIG_TEGRA_DC) - if (codec->preset->id == 0x10de0020) { + if ((codec->preset->id == 0x10de0020) || + (codec->preset->id == 0x10de0022)) { int err = 0; if (substream->runtime->channels == 2) @@ -1357,6 +1362,7 @@ static int generic_hdmi_init(struct hda_codec *codec) switch (codec->preset->id) { case 0x10de0020: + case 0x10de0022: snd_hda_codec_write(codec, 4, 0, AC_VERB_SET_DIGI_CONVERT_1, 0x11); default: @@ -1979,6 +1985,7 @@ static const struct hda_codec_preset snd_hda_preset_hdmi[] = { { .id = 0x10de001b, .name = "GPU 1b HDMI/DP", .patch = patch_generic_hdmi }, { .id = 0x10de001c, .name = "GPU 1c HDMI/DP", .patch = patch_generic_hdmi }, { .id = 0x10de0020, .name = "Tegra30 HDMI", .patch = patch_generic_hdmi }, +{ .id = 0x10de0022, .name = "Tegra35 HDMI", .patch = patch_generic_hdmi }, { .id = 0x10de0040, .name = "GPU 40 HDMI/DP", .patch = patch_generic_hdmi }, { .id = 0x10de0041, .name = "GPU 41 HDMI/DP", .patch = patch_generic_hdmi }, { .id = 0x10de0042, .name = "GPU 42 HDMI/DP", .patch = patch_generic_hdmi }, @@ -2026,6 +2033,7 @@ MODULE_ALIAS("snd-hda-codec-id:10de001a"); MODULE_ALIAS("snd-hda-codec-id:10de001b"); MODULE_ALIAS("snd-hda-codec-id:10de001c"); MODULE_ALIAS("snd-hda-codec-id:10de0020"); +MODULE_ALIAS("snd-hda-codec-id:10de0022"); MODULE_ALIAS("snd-hda-codec-id:10de0040"); MODULE_ALIAS("snd-hda-codec-id:10de0041"); MODULE_ALIAS("snd-hda-codec-id:10de0042"); |