https://bugs.freedesktop.org/show_bug.cgi?id=90777
Bug ID: 90777 Summary: radeon/audio: Removed CRC control programing broke HDMI audio in Linux 4.0 Product: DRI Version: unspecified Hardware: x86-64 (AMD64) OS: Linux (All) Status: NEW Severity: normal Priority: medium Component: DRM/Radeon Assignee: dri-devel@lists.freedesktop.org Reporter: chewi@gentoo.org
Created attachment 116160 --> https://bugs.freedesktop.org/attachment.cgi?id=116160&action=edit Patch to revert commit against 4.1-rc5
After upgrading to Linux 4.0 or above (latest tried is 4.1-rc5), HDMI audio stopped working from my Radeon HD 4670 to my Yamaha RX-V775 receiver on the second output. Strangely, it continued to work to my Acer monitor on the primary output.
I bisected this back to 8ffea8570d5a7e9dd3c10349ebc3bd79487ae30b, which is amusingly titled "removed unnecessary CRC control". I guess it's not so unnecessary, after all! This does not cleanly revert against 4.1-rc5 as the surrounding code has been removed but simply adding these single lines back where they were is enough to get it working again. Please see the attached patch.
The change also affects Evergreen, which I cannot test but a Gentoo user reported what appears to be the same issue on his Mobility Radeon HD 5430.
https://forums.gentoo.org/viewtopic-p-7755600.html
https://bugs.freedesktop.org/show_bug.cgi?id=90777
James Le Cuirot chewi@gentoo.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |bisected
https://bugs.freedesktop.org/show_bug.cgi?id=90777
--- Comment #1 from James Le Cuirot chewi@gentoo.org --- I should add that using xrandr to try and force audio on that output doesn't help. I normally use this to switch between my monitor and my receiver.
https://bugs.freedesktop.org/show_bug.cgi?id=90777
--- Comment #2 from Alex Deucher alexdeucher@gmail.com --- Created attachment 116221 --> https://bugs.freedesktop.org/attachment.cgi?id=116221&action=edit proper fix
The CRC registers don't need to be programmed. The driver was just updating the wrong register when setting up the ACR packet control.
https://bugs.freedesktop.org/show_bug.cgi?id=90777
--- Comment #3 from Itzamna xamaniqinqu@gmail.com --- (In reply to Alex Deucher from comment #2)
Created attachment 116221 [details] [review] proper fix
The CRC registers don't need to be programmed. The driver was just updating the wrong register when setting up the ACR packet control.
Hello Alex,
Sadly, your patch does not fix HDMI audio on my machine (kernel 4.0.4; Radeon HD 7970). Reverting commit 8ffea8570d5a7e9dd3c10349ebc3bd79487ae30b does fix the issue.
- Itzamna
https://bugs.freedesktop.org/show_bug.cgi?id=90777
--- Comment #4 from Alex Deucher alexdeucher@gmail.com --- (In reply to Itzamna from comment #3)
Hello Alex,
Sadly, your patch does not fix HDMI audio on my machine (kernel 4.0.4; Radeon HD 7970). Reverting commit 8ffea8570d5a7e9dd3c10349ebc3bd79487ae30b does fix the issue.
- Itzamna
What hardware and kernel are you using?
https://bugs.freedesktop.org/show_bug.cgi?id=90777
--- Comment #5 from Alex Deucher alexdeucher@gmail.com --- (In reply to Itzamna from comment #3)
Hello Alex,
Sadly, your patch does not fix HDMI audio on my machine (kernel 4.0.4; Radeon HD 7970). Reverting commit 8ffea8570d5a7e9dd3c10349ebc3bd79487ae30b does fix the issue.
Sorry, I missed the 7970 part. This patch is not relevant to your board. It should fix James's issue.
https://bugs.freedesktop.org/show_bug.cgi?id=90777
--- Comment #6 from Alex Deucher alexdeucher@gmail.com --- (In reply to Itzamna from comment #3)
Hello Alex,
Sadly, your patch does not fix HDMI audio on my machine (kernel 4.0.4; Radeon HD 7970). Reverting commit 8ffea8570d5a7e9dd3c10349ebc3bd79487ae30b does fix the issue.
Does audio work properly on your board with the latest 4.1 kernel from Linus' tree? Specifically make sure it has this patch: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2d...
https://bugs.freedesktop.org/show_bug.cgi?id=90777
--- Comment #7 from James Le Cuirot chewi@gentoo.org --- That does indeed fix it here, thanks Alex.
https://bugs.freedesktop.org/show_bug.cgi?id=90777
James Le Cuirot chewi@gentoo.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #8 from James Le Cuirot chewi@gentoo.org --- I see this went into 4.1-rc7 so closing.
https://bugs.freedesktop.org/show_bug.cgi?id=90777
--- Comment #9 from Shimi Chen shimi.chen@gmail.com --- My HDMI audio also does not work since 4.0. I tried installing the mainline 4.2rc3 kernel and it is not fixed. Reverting to 3.17.6 fixes the issue. I'm using Arch Linux and a laptop with Radeon HD 4570.
Should I report a separate bug?
https://bugs.freedesktop.org/show_bug.cgi?id=90777
--- Comment #10 from James Le Cuirot chewi@gentoo.org --- (In reply to Shimi Chen from comment #9)
My HDMI audio also does not work since 4.0. I tried installing the mainline 4.2rc3 kernel and it is not fixed. Reverting to 3.17.6 fixes the issue. I'm using Arch Linux and a laptop with Radeon HD 4570.
Should I report a separate bug?
I think you should. Sound was still working for me thanks to this fix as of 4.2rc1. It's worth noting that multichannel PCM only started working for me around 3.18 so userspace may be seeing your card a little differently. My system gets confused between the EDID sent by my AV unit vs the EDID sent by my stereo monitor so I had to add this line to /etc/modprobe.d/alsa.conf to get surround working reliably.
options snd-hda-codec-hdmi static_hdmi_pcm=1
https://bugs.freedesktop.org/show_bug.cgi?id=90777
Maximilian Böhm winlux@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED |---
--- Comment #11 from Maximilian Böhm winlux@gmail.com --- Definitely still broken on Linux 4.2 and 4.3 RC7. Works here with 3.18.
https://bugs.freedesktop.org/show_bug.cgi?id=90777
James Le Cuirot chewi@gentoo.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution|--- |FIXED
--- Comment #12 from James Le Cuirot chewi@gentoo.org --- (In reply to Maximilian Böhm from comment #11)
Definitely still broken on Linux 4.2 and 4.3 RC7. Works here with 3.18.
Please don't hijack this bug. I'm on 4.3.2 and it's working fine. You must have a different issue.
dri-devel@lists.freedesktop.org