summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorDara Ramesh <dramesh@nvidia.com>2012-09-20 09:44:48 +0530
committerSimone Willett <swillett@nvidia.com>2012-10-25 12:16:58 -0700
commit29ca7de72f5e67bf727e42427fbbf892ce5095c7 (patch)
tree56144f36af65f1838c5436c0c9483bc1e9c9f4f2 /sound
parentab690d50046f0faccb36d75eb8ad6e15c8aea22c (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.c20
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");