0 Replies Latest reply on Dec 13, 2012 4:07 AM by ani

    Workaround for ATI HDMI 5.1 to stereo audio issue on wake from standby

    ani

      I've been having a problem with my new HTPC that kept losing 5.1 and dropping to stereo after waking up from sleep. After some sleepless nights, I discovered (what many have before) called as HDMI audio sync'ing issue. May have stumbled upon a workaround that others may be interested in. Around the web people have suggested the HDMI Detective. That could be the best and easiest solution, but I wasn't about to shell out $150 or whatever $$$ as a developer. It hurts the pride to fall into a herd trap. So I went to look for some real answers and found something that may help AMD develop a better workaround in code than my hacky POS command line workaround.

       

      The setup:

      * Asrock VisionX - ATI HD7850M

      * There's an AMD High Definitions Audio Device located in the playback device (named as DENON-AVAMP)

      * Denon AVR-891 receiver

      * Sharp TV

      * The Sharp is connected to the Denon. PC is connected to the Denon.

      * I have my TV setup with CEC enabled (Aquos link). This means the receiver turns on whenever I turn on the TV.

      * Windows 7 (64-bit) with everything up to date

      * ATI Catalyst 12.10 driver set

       

      The issue:

      Any time turning on the TV there's a little delay before the receiver fully boots up. I would appear the ATI video card sees the EDID audio support of the TV before it sees the audio capabilities of the Denon. The AMD High Definition Audio Device shows 2 channels under the Supported Formats tab in the playback devices of the sound control panel. There's no option on the TV or receiver to delay the TV until the receiver is fully booted up.

       

      EDID overriding didn't work:

      EnTech's MonInfo (Monitor Asset Manager) 2.60.0.972 couldn't show real-time data of the extended EDID block. This was needed to see the audio capabilities. Instead, there was some guy's utility called GetEDID 1.2 which I used to retrieve the EDID. Between the working and non-working captures, the EDID block definitely indicated 8 channels and all sorts of stuff like DTS support and others while the EDID for non-working case only showed a 2 channel LPCM support. Loads of forums talk about EDID. Here's on if it helps you (http://www.avsforum.com/t/1227161/edid-overrides-to-solve-bitstreaming-issues-for-ati-5xxxs.).

       

      Disabling "AMD External Events" didn't work:

      Some forums suggest disabling this service. Didn't do squat except flash my screen a gazillion times when I re-enabled it. Read somewhere that this service also changes between 2D and 3D video clocks. (http://www.avsforum.com/t/1410597/ati-hdmi-loss-of-sound-on-receiver-input-change).

       

      The surprise:

      What surprised me was that I still had 5.1 even though the property of AMD High Definitions Audio Device showed that I only had 2 channels under the Supported Formats tab. After some experiment I found that by waking up in the order of the PC, the Denon receiver, then the TV, the AMD High Definitions Audio Device shows 8 channels under the Supported Formats tab!

       

      The workaround:

      Powering on the various devices with a bunch of remote controllers every time someone wanted to watch a video from the HTPC is a pain. There has to be something better. The experiments that lead to the surprise meant that the HTPC recognized the new EDID capabilities but only reported the capabilities of the first device powered on. Hence I had the theory that if after the TV and receiver were already powered on and stable then somehow we get the HTPC to retrieve the EDID again that the world would be all good again. The test kind of worked, with a small limitation.

       

      There's a tool called devcon.exe from Microsoft as I found from various web sites that talk about more AMD ATI HDMI video issues. Aside from the reoccuring theme the solution was to get the AMD High Definitions Audio Device to restart to see if it can see the new EDID settings using the Windows console device manager tool to restart it. Alas it didn't work. Nothing happened. The good news was by restarting the ATI display driver and then restarting the AMD High Definition Audio Device it worked! The Supported Formats showed everything now with 8 channels support.

       

      First find out the device identifiers for the display and audio:

       

      C:\>devcon.exe listclass display

      Listing 2 device(s) for setup class "Display" (Display adapters).

      PCI\VEN_8086&DEV_0166&SUBSYS_01661849&REV_09\3&11583659&0&10: Intel(R) HD Graphics 4000

      PCI\VEN_1002&DEV_6827&SUBSYS_031E1002&REV_00\4&15001D53&0&0008: AMD Radeon HD 7800M Series

       

      C:\>devcon.exe listclass media

      Listing 5 device(s) for setup class "MEDIA" (Sound, video and game controllers).

      HDAUDIO\FUNC_01&VEN_8086&DEV_2806&SUBSYS_80860101&REV_1000\4&1D2C9EED&0&0301: Intel(R) Display Audio

      ROOT\MEDIA\0000                                             : Sound Blaster X-Fi MB 2

      BTHENUM\{61118058-486C-4BB0-B4B8-ACE4DCADEC44}_LOCALMFG&0000\8&2567EFAA&0&000000000000_00000000: Bluetooth Audio Device

      HDAUDIO\FUNC_01&VEN_1002&DEV_AA01&SUBSYS_00AA0100&REV_1003\5&5564325&0&0001: AMD High Definition Audio Device

      HDAUDIO\FUNC_01&VEN_10EC&DEV_0899&SUBSYS_18491898&REV_1000\4&1D2C9EED&0&0001: Realtek HD X-Fi

       

      Next let's restart them.

       

      Restarting ATI video card (VEN_1002 = ATI vendor ID):

       

      C:\>devcon.exe restart =display *VEN_1002*

      PCI\VEN_1002&DEV_6827&SUBSYS_031E1002&REV_00\4&15001D53&0&0008: Restarted

      1 device(s) restarted.

       

      Restarting ATI audio (VEN_1002 = ATI vendor ID):

       

      C:\>devcon.exe restart =media *VEN_1002*

      HDAUDIO\FUNC_01&VEN_1002&DEV_AA01&SUBSYS_00AA0100&REV_1003\5&5564325&0&0001: Restarted

      1 device(s) restarted.

       

      Now that I'm able to start up the TV, receiver, and the HTPC in any order I want now by running the above two commands to re-sync the HDMI audio when the HTPC wakes up from sleep (triggered conveniently from a remote control) so why is this not the end and the world is at peace?

       

      Only two things are left to solve:

       

      1. Windows 7 doesn't want to remember that I want my Default Format to 24-bit 48kHz on the AMD High Definition Audio Device but keeps reverting it back to 16-bit 48kHz. Maybe Windows thinks this is a new device. Is there any way to make Windows remember, or at least fix it to my preference?

       

      2. Given that I got most of what I wanted, to run the two command line when wake up the HTPC from sleep requires a tool do run some batch files otherwise it would be very aggravating to non-computer users using my HTPC only to watch videos rather than learning how to get my HTPC to work. (http://win7suspendresume.codeplex.com/). Rather not spend more money on a Rasberry Pi or an HDMI-CEC HW controller to turn on my TV and receiver in the right order. Really believe ATI drivers should be able to fix this issue.