diff -rupN a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp --- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp 2016-04-24 07:48:30.000000000 +0100 +++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp 2016-07-06 23:15:14.851453568 +0100 @@ -1342,6 +1342,10 @@ void CAESinkALSA::EnumerateDevice(AEDevi if (snd_card_get_name(cardNr, &cardName) == 0) info.m_displayName = cardName; + /* hifiberry digi doesn't correctly report as iec958 device. Needs fixing in kernel driver */ + if (info.m_displayName == "snd_rpi_hifiberry_digi") + info.m_deviceType = AE_DEVTYPE_IEC958; + if (info.m_deviceType == AE_DEVTYPE_HDMI && info.m_displayName.size() > 5 && info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI") {