Jiri Slaby 1d3f49
From: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Jiri Slaby 1d3f49
Date: Wed, 5 Apr 2023 22:12:20 +0200
Jiri Slaby 1d3f49
Subject: [PATCH] ALSA: hda/sigmatel: fix S/PDIF out on Intel D*45*
Jiri Slaby 1d3f49
 motherboards
Jiri Slaby 1d3f49
References: bsc#1012628
Jiri Slaby 1d3f49
Patch-mainline: 6.2.12
Jiri Slaby 1d3f49
Git-commit: f342ac00da1064eb4f94b1f4bcacbdfea955797a
Jiri Slaby 1d3f49
Jiri Slaby 1d3f49
commit f342ac00da1064eb4f94b1f4bcacbdfea955797a upstream.
Jiri Slaby 1d3f49
Jiri Slaby 1d3f49
The BIOS botches this one completely - it says the 2nd S/PDIF output is
Jiri Slaby 1d3f49
used, while in fact it's the 1st one. This is tested on DP45SG, but I'm
Jiri Slaby 1d3f49
assuming it's valid for the other boards in the series as well.
Jiri Slaby 1d3f49
Jiri Slaby 1d3f49
Also add some comments regarding the pins.
Jiri Slaby 1d3f49
FWIW, the codec is apparently still sold by Tempo Semiconductor, Inc.,
Jiri Slaby 1d3f49
where one can download the documentation.
Jiri Slaby 1d3f49
Jiri Slaby 1d3f49
Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Jiri Slaby 1d3f49
Cc: <stable@vger.kernel.org>
Jiri Slaby 1d3f49
Link: https://lore.kernel.org/r/20230405201220.2197826-2-oswald.buddenhagen@gmx.de
Jiri Slaby 1d3f49
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Jiri Slaby 1d3f49
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Jiri Slaby 1d3f49
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Jiri Slaby 1d3f49
---
Jiri Slaby 1d3f49
 sound/pci/hda/patch_sigmatel.c | 8 ++++++++
Jiri Slaby 1d3f49
 1 file changed, 8 insertions(+)
Jiri Slaby 1d3f49
Jiri Slaby 1d3f49
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
Jiri Slaby 1d3f49
index 64a97d8c..61258b0a 100644
Jiri Slaby 1d3f49
--- a/sound/pci/hda/patch_sigmatel.c
Jiri Slaby 1d3f49
+++ b/sound/pci/hda/patch_sigmatel.c
Jiri Slaby 1d3f49
@@ -1707,6 +1707,7 @@ static const struct snd_pci_quirk stac925x_fixup_tbl[] = {
Jiri Slaby 1d3f49
 };
Jiri Slaby 1d3f49
 
Jiri Slaby 1d3f49
 static const struct hda_pintbl ref92hd73xx_pin_configs[] = {
Jiri Slaby 1d3f49
+	// Port A-H
Jiri Slaby 1d3f49
 	{ 0x0a, 0x02214030 },
Jiri Slaby 1d3f49
 	{ 0x0b, 0x02a19040 },
Jiri Slaby 1d3f49
 	{ 0x0c, 0x01a19020 },
Jiri Slaby 1d3f49
@@ -1715,9 +1716,12 @@ static const struct hda_pintbl ref92hd73xx_pin_configs[] = {
Jiri Slaby 1d3f49
 	{ 0x0f, 0x01014010 },
Jiri Slaby 1d3f49
 	{ 0x10, 0x01014020 },
Jiri Slaby 1d3f49
 	{ 0x11, 0x01014030 },
Jiri Slaby 1d3f49
+	// CD in
Jiri Slaby 1d3f49
 	{ 0x12, 0x02319040 },
Jiri Slaby 1d3f49
+	// Digial Mic ins
Jiri Slaby 1d3f49
 	{ 0x13, 0x90a000f0 },
Jiri Slaby 1d3f49
 	{ 0x14, 0x90a000f0 },
Jiri Slaby 1d3f49
+	// Digital outs
Jiri Slaby 1d3f49
 	{ 0x22, 0x01452050 },
Jiri Slaby 1d3f49
 	{ 0x23, 0x01452050 },
Jiri Slaby 1d3f49
 	{}
Jiri Slaby 1d3f49
@@ -1758,6 +1762,7 @@ static const struct hda_pintbl alienware_m17x_pin_configs[] = {
Jiri Slaby 1d3f49
 };
Jiri Slaby 1d3f49
 
Jiri Slaby 1d3f49
 static const struct hda_pintbl intel_dg45id_pin_configs[] = {
Jiri Slaby 1d3f49
+	// Analog outputs
Jiri Slaby 1d3f49
 	{ 0x0a, 0x02214230 },
Jiri Slaby 1d3f49
 	{ 0x0b, 0x02A19240 },
Jiri Slaby 1d3f49
 	{ 0x0c, 0x01013214 },
Jiri Slaby 1d3f49
@@ -1765,6 +1770,9 @@ static const struct hda_pintbl intel_dg45id_pin_configs[] = {
Jiri Slaby 1d3f49
 	{ 0x0e, 0x01A19250 },
Jiri Slaby 1d3f49
 	{ 0x0f, 0x01011212 },
Jiri Slaby 1d3f49
 	{ 0x10, 0x01016211 },
Jiri Slaby 1d3f49
+	// Digital output
Jiri Slaby 1d3f49
+	{ 0x22, 0x01451380 },
Jiri Slaby 1d3f49
+	{ 0x23, 0x40f000f0 },
Jiri Slaby 1d3f49
 	{}
Jiri Slaby 1d3f49
 };
Jiri Slaby 1d3f49
 
Jiri Slaby 1d3f49
-- 
Jiri Slaby 1d3f49
2.35.3
Jiri Slaby 1d3f49