[PATCH 0/3] enable HDMI audio output for HDMI monitors V2

Magnus Hörlin magnus at alefors.se
Sat Nov 8 03:45:56 PST 2008

Wu Fengguang wrote:
> Hello,
> We can now enjoy music on HDMI monitors that are attached to Intel 
> G35/G45
> chipsets with the following X.org intel driver patches
>      [PATCH 1/3] introduce i830_hdmi_priv.has_hdmi_sink
>      [PATCH 2/3] enable Intel G45 integrated HDMI audio output
>      [PATCH 3/3] enable Intel G35 SDVO HDMI audio output
> _and_ the corresponding ALSA patch posted at
> http://mailman.alsa-project.org/pipermail/alsa-devel/2008-November/012158.html 
> The patches are tested OK on Intel DG45ID board, HP 2230s notebook and
> ASUS P5E-VM board.
> Since the HDMI audio requires both audio and video driver support to 
> function
> well, I'd like to provide an overview here.
> 1) driver components:
>     A) ALSA: audio driver (the above link)
>     B) Xorg: audio output enabling (this patchset)
>     C) Xorg: EDID/ELD information (patches to be submitted by Ma Ling)
> 2) summary of the feature sets:
>     - basic 2-channel audio:
>         (A) is required, (B) is mostly required, (C) is not needed
>     - 2+ multichannel audio:
>         not tested yet; in theory we need (C) to get HDMI monitor's
>         speaker allocation configuration; there are also bandwidth
>         constraints that should be coordinated between audio/video
>         drivers in the future.
>     - non-LPCM audio:
>         not tested yet; need more work in ALSA code.
> 3) summary of the work flow:
>     - basic audio output: (A) and (B)
>         - ALSA HDMI driver: enable pin out and unmute
>         - ALSA HDMI driver: fill audio infoframe and enable its 
> transmission
>         - Xorg intel driver: enable audio output
>     - ELD info for advanced audio capabilities: (A) and (C)
>         - Xorg xserver: get/parse/store EDID extensions
>         - Xorg xserver: transform EDID into ELD
>         - Xorg intel driver: feed ELD to hardware
>         - Xorg intel driver: set ELD-Valid flag to inform audio driver 
> of new ELD
>         - ALSA HDMI driver: response to unsolicited response triggered 
> by ELDV
>         - ALSA HDMI driver: get ELD from hardware
>         - ALSA HDMI driver: parse and show ELD info
>         - ALSA HDMI driver: update hardware capabilities/constraints
>                     according to ELD (TBD)
> That describes my understandings of HDMI audio, comments and 
> discussions are
> warmly welcome.
> Thank you,
> Fengguang

This is great news! I've really been looking forward to this for a long
time so thanks a lot. However, I can't get it to work yet but I guess
it's because I don't have the "C) Xorg: EDID/ELD information (patches to
be submitted by Ma Ling)" part. I have built mesa, drm, xserver and
xf86-video-intel from last night's git with your three patches on my
DG45FC running Ubuntu Intrepid with 2.6.27 kernel. None of the patches
applied cleanly but it wasn't hard to do by hand. I also built
alsa-driver from todays git which already included the patch from your
link and with that I was really pleased to see the HDMI device:

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: STAC92xx Digital [STAC92xx Digital]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: INTEL HDMI [INTEL HDMI]
   Subdevices: 1/1
   Subdevice #0: subdevice #0

But with "aplay -D plughw:0,3 somemusic.wav" all I hear is the sound of
silence. What mixer controls are involved? HDMI audio works on the same
display with AMD graphics and fglrx drivers so it shouldn't be a display

While I'm at it: As you can see from my xorg.conf I'm trying to force a
50Hz modeline but it seems to be ignored (or used by VGA?) and the 60Hz
in EDID is used instead. How do I fix that? And how do I enable XvMC?

Keep up the good work all you guys involved in this. And big thanks to 
Fengguang for adressing this issue.
/Magnus H

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: xorg.conf
URL: <http://lists.x.org/archives/xorg/attachments/20081108/403e269a/attachment.ksh>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Xorg.0.log
Type: text/x-log
Size: 34241 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20081108/403e269a/attachment.bin>

More information about the xorg mailing list