[alsa-devel] Surround speaker connection on Acer 8951G
Sergey 'Jin' Bostandzhyan
jin at mediatomb.cc
Mon Nov 25 18:39:02 CET 2019
Hi Takashi,
sorry - it's me again about the Acer 8951G LFE speaker.
On Fri, Aug 30, 2019 at 01:45:10PM +0200, Sergey 'Jin' Bostandzhyan wrote:
> > > The below HDA_FIXUP_VERBS does the trick, so I do have all 6 speakers working,
> > > finally!
> > >
> > > {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x02}
> >
> > Actually this must be paired with the corresponding bit of GPIO_DATA,
> > too. Is the bit 0x02 of GPIO_DATA set or cleared? Usually setting it
> > turns on the amp, but sometimes inverted.
>
> If I understood everything correctly, then the bit is set, meaning that the
> GPIO signal is configured as output. I'll be honest, I exported the
> hda-analyzer setting as a python script (nice feature btw) and deducted the
> fixup verb setting from there (relevant part of the hda-analyzer export below):
>
> def set(nid, verb, param):
> verb = (nid << 24) | (verb << 8) | param
> res = ioctl(FD, IOCTL_VERB_WRITE, struct.pack('II', verb, 0))
>
> set(0x01, 0x717, 0x02) # 0x01071702 (SET_GPIO_DIRECTION)
it seems I indeed missed something here regarding GPIO_DATA, I really am
not sure what the influence is, but after updating to Fedora 31 my LFE
stopped working, even with the self compiled 5.4-rc8 kernel which I am running
now (all the time before I was on Fedora 29 and I just backported my patch to
5.2.x and compiled the modules outside the tree after being done with the
patch submission).
So ultimately, it seems I now need to do the following in my fixup
(original commit was 00066e9733f629e536f6b7957de2ce11a85fe15a):
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -8875,7 +8875,7 @@ static const struct hda_fixup alc662_fixups[] = {
.v.verbs = (const struct hda_verb[]) {
{0x01, AC_VERB_SET_GPIO_MASK, 0x02},
{0x01, AC_VERB_SET_GPIO_DIRECTION, 0x02},
- {0x01, AC_VERB_SET_GPIO_DATA, 0x00},
+ {0x01, AC_VERB_SET_GPIO_DATA, 0x02},
{ }
},
.chained = true,
My question is: could something on the outside have influence on that? I am
really very, very sure that I have tested LFE on kernel 5.4-rc before
submitting the original patch and it has been working as submitted.
Why did the behavior change now? What else could I have missed?
I guess I have to submit the above change again, but I would like to make
sure that I am not missing something else somewhere, something that could cause
a change of behavior yet again after some future update.
Kind regards,
Jin
More information about the Alsa-devel
mailing list