Bug 65961
Summary: | No subwoofer on Asus AIO ET2700inks-b011c | ||
---|---|---|---|
Product: | Drivers | Reporter: | Michaël Becquet (neonlight) |
Component: | Sound(ALSA) | Assignee: | Jaroslav Kysela (perex) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | tiwai |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 3.11.6 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
alsa-info.txt with subwoofer connect, all settings by default.
codecgraph Patch to add a bass speaker pin Simplified patch to add bass speaker pin |
So, it's similar as other laptops, the LFE is assigned to the right channel white the left channel is dead? Which pin config did you try? The lack of channel map support in PA is an issue in PA, so there is no many thing the driver can do for now. And, it's definitely ALC887 variants, if you look at the codec vendor id :) Thanks for your help. I've already tried things concerning Asus N55SF and other models, but the big difference is the codec used, so adding model=asus-mode-something is useless. I've used hda-jack-retask to override and unmute pin 0x16. So after that I have subwoofer playing right channel, left channel is playing ok. Adding 2.1 support to pulse doesn't change anything for the remapping. I've just generated a codecgraph if it can help. Created attachment 116431 [details]
codecgraph
OK, then could you try the patch below? You can remove all options for snd-hda-intel now. Created attachment 116441 [details]
Patch to add a bass speaker pin
Thanks Takashi, I'd like to apply the patch but I should have misunderstood something. Tried to apply to my actual kernel source from openSuSe : error (I think it's normal). Last version from git is 1.0.25 so I've downloaded latest kernel 3.12.1 and same error to apply the patch, it seems there is missing lines in realtek_patch.c. patching file sound/pci/hda/patch_realtek.c Hunk #1 succeeded at 1728 (offset -54 lines). Hunk #2 succeeded at 1863 (offset -54 lines). Hunk #3 succeeded at 2056 (offset -54 lines). Hunk #4 succeeded at 2102 (offset -54 lines). Hunk #5 FAILED at 4734. Hunk #6 FAILED at 4942. Hunk #7 FAILED at 4955. 3 out of 7 hunks FAILED -- saving rejects to file sound/pci/hda/patch_realtek.c.rej patch_realtek.c.rej --- sound/pci/hda/patch_realtek.c +++ sound/pci/hda/patch_realtek.c @@ -4734,7 +4753,7 @@ }; /* override the 2.1 chmap */ -static void alc662_fixup_bass_chmap(struct hda_codec *codec, +static void alc_fixup_bass_chmap(struct hda_codec *codec, const struct hda_fixup *fix, int action) { if (action == HDA_FIXUP_ACT_BUILD) { @@ -4942,7 +4961,7 @@ }, [ALC662_FIXUP_BASS_CHMAP] = { .type = HDA_FIXUP_FUNC, - .v.func = alc662_fixup_bass_chmap, + .v.func = alc_fixup_bass_chmap, .chained = true, .chain_id = ALC662_FIXUP_ASUS_MODE4 }, @@ -4955,7 +4974,7 @@ }, [ALC662_FIXUP_BASS_1A_CHMAP] = { .type = HDA_FIXUP_FUNC, - .v.func = alc662_fixup_bass_chmap, + .v.func = alc_fixup_bass_chmap, .chained = true, .chain_id = ALC662_FIXUP_BASS_1A, }, OK, then try the following patch instead. This should be applicable to 3.11 and 3.12. This won't set up the channel mapping, but as PulseAudio doesn't take it account, it's more or less a subtle thing. Created attachment 116451 [details]
Simplified patch to add bass speaker pin
Hello Takashi, Tried your patch, compiled and installed whole sound. So now I'm in the position I was when I override pin 0x16 with hda-jack-retask, subwoofer output with right channel. Tested pulseaudio declarations as for Asus N55SF but same thing. HDA Analyzer output: Node 0x16 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Control: name="Bass Speaker Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=1, idx=0, ofs=0 Control: iface="card", name="Speaker Surround Phantom Jack", index=0, device=0 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x00000036: IN OUT Detect Trigger Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Unsolicited: tag=0x00, enabled=0 Power: setting=D0, actual=D0 Connection: 1 0x0e What can I do now ? The LFE-only channel map support is included only from 3.13 and later. This is the very first patch provides. But, as already mentioned, it's basically a missing feature in PA that doesn't refer to the channel map, so there is nothing to do from the kernel side. That being said, merging these fix patches would be the option for now here in this bugzilla. The rest must be handled in PA side. So I merged the patches (the simplified one for easier backport and the additional patch for the LFE-only chmap) in sound git tree. It'll be included either in 3.13-rc2 or 3.13-rc3. |
Created attachment 116421 [details] alsa-info.txt with subwoofer connect, all settings by default. Hello, I own an Asus all-in-one pc with an external subwoofer connected on a dedicated stack. I've tested all I've read from here and there (often Asus laptops models concerned) and I can say the subwoofer is connected on pin 0x16, so it is now playing with right channel. But now all I can do with pulse don't modify this fact. I don't know what to test now. I ask myself another question : Alsa detects the used codec is ALC887-VD, but Asus windows driver for this pc is Realteak ALC663. Does this significate something ?