On Tue, 18 Oct 2016 00:50:49 +0200, Benjamin Valentin wrote:
Hi,
I had a problem with mainboard insofar that it would let me select 5.1 surround output in my sound settings, but sound would only play from the two front speakers, all other channels remained silent.
Some fiddeling with hdajackretask would generate a firmware where two pins that were previously used for rear and LFE are now disabled and two previously disabled pins are now configured as rear and LFE - I left the other pins to their default setting as much as I could. The generated firmware is attached below.
I'd like to help that this will work out of the box in the future, is there any further information I can provide you with?
The board is an Asrock B150M Pro4/D3 [1] with the ALC892 HDA Codec. alsa-info from before the procedure can be found at [2].
I'm running Linux 4.8/alsa 1.1.2 on Ubuntu 16.10
The generated /lib/firmware/hda-jack-retask.fw is
[codec] 0x10ec0892 0x18498892 0
[pincfg] 0x11 0x411111f0 0x12 0x411111f0 0x14 0x01014010 0x15 0x40f000f0 0x16 0x40f000f0 0x17 0x411111f0 0x18 0x01014011 0x19 0x02a19950 0x1a 0x01014012 0x1b 0x02214120 0x1c 0x411111f0 0x1d 0x4005e601 0x1e 0x01452130 0x1f 0x411111f0
[model] auto
regards, Benjamin
[1] http://www.asrock.com/mb/Intel/B150M%20Pro4D3/?cat=Specifications [2] http://www.alsa-project.org/db/?f=8e7b0788cde8967048959d50a57b0bb214ddc7fb
Does the patch below work for you?
thanks,
Takashi
--- From: Takashi Iwai tiwai@suse.de Subject: [PATCH] ALSA: hda - Fix surround output pins for ASRock B150M mobo
ASRock B150M Pro4/D3 mobo with ALC892 codec doesn't seem to provide proper pins for the surround outputs, hence we need to specify the pincfgs manually with a couple of other corrections.
Reported-by: Benjamin Valentin benpicco@googlemail.com Cc: stable@vger.kernel.org Signed-off-by: Takashi Iwai tiwai@suse.de --- sound/pci/hda/patch_realtek.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index b582d57fe184..284315555229 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -6625,6 +6625,7 @@ enum { ALC891_FIXUP_HEADSET_MODE, ALC891_FIXUP_DELL_MIC_NO_PRESENCE, ALC662_FIXUP_ACER_VERITON, + ALC892_FIXUP_ASROCK_MOBO, };
static const struct hda_fixup alc662_fixups[] = { @@ -6901,6 +6902,16 @@ static const struct hda_fixup alc662_fixups[] = { { } } }, + [ALC892_FIXUP_ASROCK_MOBO] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x15, 0x40f000f0 }, /* disabled */ + { 0x16, 0x40f000f0 }, /* disabled */ + { 0x18, 0x01014011 }, /* LO */ + { 0x18, 0x01014012 }, /* LO */ + { } + } + }, };
static const struct snd_pci_quirk alc662_fixup_tbl[] = { @@ -6938,6 +6949,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = { SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD), SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD), SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD), + SND_PCI_QUIRK(0x1849, 0x5892, "ASRock B150M", ALC892_FIXUP_ASROCK_MOBO), SND_PCI_QUIRK(0x19da, 0xa130, "Zotac Z68", ALC662_FIXUP_ZOTAC_Z68), SND_PCI_QUIRK(0x1b0a, 0x01b8, "ACER Veriton", ALC662_FIXUP_ACER_VERITON), SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T),