For some AMD Radeon graphics cards when using the Catalyst driver, the HDMI audio support isn't enabled unless using the simple DVI to HDMI adapter included with the graphics card itself... If you use another DVI-to-HDMI adapter, it won't work with Catalyst. AMD intentionally implemented checks within their closed-source driver to prevent other adapters from being used, even though they will work just fine.
In another loss for binary blobs like the recent news of NVIDIA removing features from their Linux driver
that wasn't found in the NVIDIA Windows driver in order to maintain "feature parity" -- news that Phoronix was first to point out -- AMD has a stinky move of their own. Included with many graphics cards are DVI-to-HDMI adapters for running an HDMI monitor off a DVI port on modern graphics cards. However, for whatever reason, if you want to use HDMI audio, AMD only wants you using the adapters included with the graphics card itself. AMD has intentionally blocked third-party HDMI adapters from being used with HDMI audio on their Catalyst driver under Linux and Windows.
One of the open-source Linux developers who has been working on the Radeon HDMI open-source driver support, Rafał Miłecki, has been confused why HDMI audio wouldn't work for his older Radeon HD 4850 with Catalyst/fglrx when using some generic/cheap HDMI adapter. After research, it appears to be a fairly common problem and affects not only Linux users but Windows users too.
Rafał Miłecki ended up finding out and writing to the DRI developers' list
, "it appears that ATI's proprietary adapter include some tiny I2C protocol that allows identifying them! It seems that Catalyst / fglrx uses some simple I2C talk to check if the adapter is made by ATI and allows or refuses to use HDMI mode."
In response to that mailing list, Christian König, an open-source developer who originally reverse-engineered the Radeon HDMI support in the days of the "RadeonHD" driver, confirmed this news. Christian König ended up being hired by AMD to work on their open-source graphics driver team after his independent contributions to the driver and he noted in a follow-up post
, "I've figured this out over five years ago by applying brute force to one of the 'magic' DVI->HDMI adapters that came with my original RV635. And it indeed contains an extra EEPROM on the I2C bus ;)"
So long story short, AMD clearly went out of their way to try to prevent their customers from using Radeon HD graphics cards with DVI to HDMI adapters that weren't provided by ATI/AMD. They added an extra EEPROM to the I2C bus of these adapters that their closed-source Catalyst driver on Windows and Linux then checks for in determining whether to enable HDMI audio. It's not that other adapters are incompatible as these artificial checks aren't found in the open-source Radeon DRM driver so there any DVI-to-HDMI adapter will be supported and it's been confirmed to work fine. This could theoretically be related to High-bandwidth Digital Content Protection (HDCP) requirements, but doesn't make too much sense with AMD being the only vendor of such HDMI adapters and only their Catalyst software driver forcing such checks. This is good news if you use the open-source driver, but bad news if you're using the Catalyst binary blob.