The open-source Radeon DRM/KMS driver in the mainline kernel beginning with the Linux 3.5 release will finally provide support for HDMI audio on the Radeon HD 6000 "Northern Islands" graphics cards.
Queued up as a fix in the Linux 3.5 kernel
, which Linus Torvalds pulled this weekend via the latest drm-fixes
, is an "enable HDMI on DCE5" commit. It's this commit that enables HDMI audio support when using the open-source AMD Linux driver for the HD 6000 series. The exception though is that this HDMI audio support doesn't cover the Radeon HD 6900 series at this point.
This HDMI audio enablement support was allowed past the Linux 3.5 merge window since the commit basically comes down to letting the Northern Islands GPUs use the same Evergreen HDMI audio
code-paths. It turns out that the HDMI engine is quite similar between the HD 5000 and HD 6000 (Northern Islands) graphics processors.
While the HDMI audio code is in the driver, it's still not enabled by default for fear of bugs. Rafał Miłecki, the community developer that's done a lot of the HDMI audio reverse-engineering and other Radeon work, says that the HD 7000 "Southern Islands" GPUs has a brand new HDMI engine so it may still be a while before the audio support works for this latest-generation AMD graphics hardware. "I've spent 2 full days analyzing and hacking GPU registers without any success. Enabling HDMI mode works just fine, but audio doesn't play. I'm afraid just watching GPU registers won't allow us to RE audio support. We may need specs which personally I don't expect to see anytime soon, or alternatively we may need some hack to dump MMIO operations done by fglrx."
Rafał shared this work on his blog