Comment 882 for bug 1958019

Revision history for this message
In , dreamsyntax (dreamsyntax-linux-kernel-bugs) wrote :

A few things since I last posted:

After having done the below command...
`amixer -c 1 cset numid=3,name='Speaker Force Firmware Load' 1`
Every subsequent reboot the audio never broke. I had multiple 2+ hour
sessions with no issue.
I never re-ran the above command.
Adjusting the volume would have a noticeable 'delay' (around 0.5
seconds to 3 seconds) before the audio mixer related GUI would
respond.

As a test I did a fresh install of endeavour-os (on kernel 6.8.7) and
sure enough, the issue is back and I can break the audio in less than
5 minutes of use.

> It would help if someone dumps the registers as root, when the amplifiers are
not working

Unfortunately, the result of the below command are as follows once audio breaks:
$ su root
# rmmod snd_hda_scodec_tas2781_i2c
# i2cset -y 3 0x70 0x00 0x00
Error: Write failed
# i2cset -y 3 0x70 0x00 0x00
Error: Write failed
# i2cset -y 3 0x70 0x7f 0x00
Error: Write failed
# i2cdump -y 3 0x70
No size specified (using byte-data access)
    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX

After modprobe snd_hda_scodec_tas2781_i2c is run, audio actually works
again, for a few minutes.

I will note I get the same result above even if I do it while audio
works, so if I'm doing something wrong please let me know.

For testing purposes, if I want to enable/disable your workaround
solution, would changing the 1 at the end to 0 be sufficient?
`amixer -c 1 cset numid=3,name='Speaker Force Firmware Load' 1` ->
`amixer -c 1 cset numid=3,name='Speaker Force Firmware Load' 0`