[Intel-gfx] Problems with HDMI audio on Intel DG45FC motherboard

Wu Fengguang fengguang.wu at intel.com
Tue Nov 3 15:09:39 CET 2009


David,

On Tue, Nov 03, 2009 at 09:16:37PM +0800, David Härdeman wrote:
> I've done some more testing...

That's awesome efforts, thank you very much!

> I managed to borrow a DG45FC based computer with Windows 7 (32-bit, using
> HDMI driver 14.6 from Intel's website) from a colleague over the weekend.
> 
> Under Windows 7, HDMI audio with my receiver just works when using the
> Windows drivers (no complete-track-silence, no initial 0.5s silence). If I
> use the control panel application to configure a 5.1 speaker setup, the
> corresponding 5.1 speaker indication lights up on the receiver LCD and
> stays on whether I'm playing stereo sounds (like Windows event sounds) or
> multi-channel sources (tested with a DVD played using VLC with software
> decoding of the AC3 track to 6 channel PCM stream). This suggests that my
> issues *can* be resolved by hacking the driver :)

This is interesting. In my ALSA tests on YAMAHA RX1800:
(1) 6 channels light up on "speaker-test -c6"
(2) 2 channels light up on playing normal music
(3) when not playing anything, 2 channels remain light up
(4) need to double check the "pause" case

So you mean Windows 7 always light up 6 channels for cases (2) and (3),
besides case (1)?  (under your 5.1 speaker config)

> The windows driver also has some interesting registry entries referring to
> "SilentStream" and "VCFG", the latter probably referring to the VCFG bit
> in the digital converter control reg in section 7.3.3.9 of the HDA spec).

Yeah, it's interesting to have some "SilentStream":

        V (Validity): This bit affects the "Validity flag," bit[28]
        transmitted in each subframe, and enables the S/PDIF
        transmitter to maintain connection during error or mute
        conditions.

> Also, it's interesting to note that when I am playing a working audio
> sample under Linux, then pause and resume playing (using the UI controls),
> there are no hiccups and no initial silence when the player resumes (from
> a quick reading of the code, the audio infoframe should still be
> transmitted, only DMA of audio data is stopped when pcm is paused).

Good catch!

The stop/start of a playback involves many operations - including the
AC_VERB_SET_CHANNEL_STREAMID which seem to directly related to the 0.5s
lost samples problem.

> Perhaps I've been going down the wrong path by focusing too much on the
> audio infoframe side of things.
> 
> I wonder if the approach taken by the Windows drivers when there is
> nothing to play is more similar to the pause/play commands in the Linux
> driver and if it would be a big undertaking to make the Linux driver do
> something similar...?

Maybe. I wonder if there is some _windows_ tool to query the audio
codec status..

> (Another option I'm planning to look into is whether power-saving might
> interfere with normal HDMI audio operation.)

One known problem is, the Xorg DPMS ops can mute HDMI audio..

> On Mon, November 2, 2009 09:57, Wu Fengguang wrote:
> > FYI, I worked up a patchset which incorporates your patch
> > and plan to submit it some time later.  Tests OK on my side :)
> 
> Which kernel version is the patchset based on? I couldn't apply it to
> 2.6.32-rc5 or git head (which is what I've been using for your previous
> patchsets).

It's based on sound-2.6:

        git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git

Thanks,
Fengguang



More information about the Intel-gfx mailing list