[alsa-devel] ALC1150 broken on SuperMicro X10SAT
On my SuperMicro X10SAT, the ALC1150 audio codec has horrific audio quality by default. The only output that seems to work is the front channel, and it's quiet, distorted, and unbalanced (the right is louder than the left).
alsa-info.sh output: http://www.alsa-project.org/db/?f=8fbcab1d61590060ceddc1e63eb00d508e94d731
I've gotten the audio to work by guessing a model: options snd-hda-intel model=auto,acer-aspire,auto
In tracing through the source: {.id = ALC883_FIXUP_ACER_EAPD, .name = "acer-aspire"} This name leads to: [ALC883_FIXUP_ACER_EAPD] = { .type = HDA_FIXUP_VERBS, .v.verbs = (const struct hda_verb[]) { /* eanable EAPD on Acer laptops */ { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 }, { 0x20, AC_VERB_SET_PROC_COEF, 0x3050 }, { } } }, There's another override I did not try, since it has no model= name: [ALC883_FIXUP_EAPD] = { .type = HDA_FIXUP_VERBS, .v.verbs = (const struct hda_verb[]) { /* change to EAPD mode */ { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 }, { 0x20, AC_VERB_SET_PROC_COEF, 0x3070 }, { } } },
At Sat, 30 Aug 2014 13:20:59 -0700, Dana Goyette wrote:
On my SuperMicro X10SAT, the ALC1150 audio codec has horrific audio quality by default. The only output that seems to work is the front channel, and it's quiet, distorted, and unbalanced (the right is louder than the left).
alsa-info.sh output: http://www.alsa-project.org/db/?f=8fbcab1d61590060ceddc1e63eb00d508e94d731
I've gotten the audio to work by guessing a model: options snd-hda-intel model=auto,acer-aspire,auto
In tracing through the source: {.id = ALC883_FIXUP_ACER_EAPD, .name = "acer-aspire"} This name leads to: [ALC883_FIXUP_ACER_EAPD] = { .type = HDA_FIXUP_VERBS, .v.verbs = (const struct hda_verb[]) { /* eanable EAPD on Acer laptops */ { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 }, { 0x20, AC_VERB_SET_PROC_COEF, 0x3050 }, { } } }, There's another override I did not try, since it has no model= name: [ALC883_FIXUP_EAPD] = { .type = HDA_FIXUP_VERBS, .v.verbs = (const struct hda_verb[]) { /* change to EAPD mode */ { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 }, { 0x20, AC_VERB_SET_PROC_COEF, 0x3070 }, { } } },
What about the patch below? It might be that only one of two changes is needed.
thanks,
Takashi
--- diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d446ac3137b3..1ba22fb527c2 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -328,6 +328,7 @@ static void alc_auto_init_amp(struct hda_codec *codec, int type) case 0x10ec0885: case 0x10ec0887: /*case 0x10ec0889:*/ /* this causes an SPDIF problem */ + case 0x10ec0900: alc889_coef_init(codec); break; case 0x10ec0888: @@ -2350,6 +2351,7 @@ static int patch_alc882(struct hda_codec *codec) switch (codec->vendor_id) { case 0x10ec0882: case 0x10ec0885: + case 0x10ec0900: break; default: /* ALC883 and variants */
On 09/01/2014 06:17 AM, Takashi Iwai wrote:
What about the patch below? It might be that only one of two changes is needed.
thanks,
Takashi
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d446ac3137b3..1ba22fb527c2 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -328,6 +328,7 @@ static void alc_auto_init_amp(struct hda_codec *codec, int type) case 0x10ec0885: case 0x10ec0887: /*case 0x10ec0889:*/ /* this causes an SPDIF problem */
case 0x10ec0888:case 0x10ec0900: alc889_coef_init(codec); break;
@@ -2350,6 +2351,7 @@ static int patch_alc882(struct hda_codec *codec) switch (codec->vendor_id) { case 0x10ec0882: case 0x10ec0885:
- case 0x10ec0900: break; default: /* ALC883 and variants */
I've applied the patch, and that fixes it without having to specify a model. Thanks!
For reference, here's alsa-info after the patch:
http://www.alsa-project.org/db/?f=d3a135bd31671e545067821bbd2cacc9d8f6fff8
At Mon, 01 Sep 2014 20:07:26 -0700, Dana Goyette wrote:
On 09/01/2014 06:17 AM, Takashi Iwai wrote:
What about the patch below? It might be that only one of two changes is needed.
thanks,
Takashi
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d446ac3137b3..1ba22fb527c2 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -328,6 +328,7 @@ static void alc_auto_init_amp(struct hda_codec *codec, int type) case 0x10ec0885: case 0x10ec0887: /*case 0x10ec0889:*/ /* this causes an SPDIF problem */
case 0x10ec0888:case 0x10ec0900: alc889_coef_init(codec); break;
@@ -2350,6 +2351,7 @@ static int patch_alc882(struct hda_codec *codec) switch (codec->vendor_id) { case 0x10ec0882: case 0x10ec0885:
- case 0x10ec0900: break; default: /* ALC883 and variants */
I've applied the patch, and that fixes it without having to specify a model. Thanks!
For reference, here's alsa-info after the patch:
http://www.alsa-project.org/db/?f=d3a135bd31671e545067821bbd2cacc9d8f6fff8
Thanks for a quick test. FWIW, I applied the patch below to sound git tree now.
Takashi
-- 8< -- From: Takashi Iwai tiwai@suse.de Subject: [PATCH] ALSA: hda - Fix COEF setups for ALC1150 codec
ALC1150 codec seems to need the COEF- and PLL-setups just like its compatible ALC882 codec. Some machines (e.g. SunMicro X10SAT) show the problem like too low output volumes unless the COEF setup is applied.
Reported-and-tested-by: Dana Goyette danagoyette@gmail.com Cc: stable@vger.kernel.org Signed-off-by: Takashi Iwai tiwai@suse.de --- sound/pci/hda/patch_realtek.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d446ac3137b3..1ba22fb527c2 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -328,6 +328,7 @@ static void alc_auto_init_amp(struct hda_codec *codec, int type) case 0x10ec0885: case 0x10ec0887: /*case 0x10ec0889:*/ /* this causes an SPDIF problem */ + case 0x10ec0900: alc889_coef_init(codec); break; case 0x10ec0888: @@ -2350,6 +2351,7 @@ static int patch_alc882(struct hda_codec *codec) switch (codec->vendor_id) { case 0x10ec0882: case 0x10ec0885: + case 0x10ec0900: break; default: /* ALC883 and variants */
At Mon, 01 Sep 2014 20:07:26 -0700, Dana Goyette wrote:
On 09/01/2014 06:17 AM, Takashi Iwai wrote:
What about the patch below? It might be that only one of two changes is needed.
thanks,
Takashi
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d446ac3137b3..1ba22fb527c2 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -328,6 +328,7 @@ static void alc_auto_init_amp(struct hda_codec *codec, int type) case 0x10ec0885: case 0x10ec0887: /*case 0x10ec0889:*/ /* this causes an SPDIF problem */
case 0x10ec0888:case 0x10ec0900: alc889_coef_init(codec); break;
@@ -2350,6 +2351,7 @@ static int patch_alc882(struct hda_codec *codec) switch (codec->vendor_id) { case 0x10ec0882: case 0x10ec0885:
- case 0x10ec0900: break; default: /* ALC883 and variants */
I've applied the patch, and that fixes it without having to specify a model. Thanks!
For reference, here's alsa-info after the patch:
http://www.alsa-project.org/db/?f=d3a135bd31671e545067821bbd2cacc9d8f6fff8
Thanks for a quick test. FWIW, I applied the patch below to sound git tree now.
Takashi
-- 8< -- From: Takashi Iwai tiwai@suse.de Subject: [PATCH] ALSA: hda - Fix COEF setups for ALC1150 codec
ALC1150 codec seems to need the COEF- and PLL-setups just like its compatible ALC882 codec. Some machines (e.g. SunMicro X10SAT) show the problem like too low output volumes unless the COEF setup is applied.
Reported-and-tested-by: Dana Goyette danagoyette@gmail.com Cc: stable@vger.kernel.org Signed-off-by: Takashi Iwai tiwai@suse.de --- sound/pci/hda/patch_realtek.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d446ac3137b3..1ba22fb527c2 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -328,6 +328,7 @@ static void alc_auto_init_amp(struct hda_codec *codec, int type) case 0x10ec0885: case 0x10ec0887: /*case 0x10ec0889:*/ /* this causes an SPDIF problem */ + case 0x10ec0900: alc889_coef_init(codec); break; case 0x10ec0888: @@ -2350,6 +2351,7 @@ static int patch_alc882(struct hda_codec *codec) switch (codec->vendor_id) { case 0x10ec0882: case 0x10ec0885: + case 0x10ec0900: break; default: /* ALC883 and variants */
participants (2)
-
Dana Goyette
-
Takashi Iwai