On 2008.11.07 14:23:38 +0800, 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.ht...
The patches are tested OK on Intel DG45ID board, HP 2230s notebook and ASUS P5E-VM board.
Pushed xf86-video-intel patches. Thanks!
If you have HDMI output with intel graphics chips, you can test this now.
- alsa patch is within above mail, or get it from git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git
- after loading snd_hda_intel, 'aplay -l' should give you a list of devices that contains Intel HDMI device. Use that device for PCM. Current supports G35/G45/GM45.
- build xf86-video-intel git master to enable HDMI audio within video driver.
Since the HDMI audio requires both audio and video driver support to function well, I'd like to provide an overview here.
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)
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.
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 --