[alsa-devel] HDMI hot-plug/ELD issues

pl bossart bossart.nospam at gmail.com
Mon Aug 23 17:16:48 CEST 2010

>> 1. Playback can happen even if there's no HDMI cable plugged. Or when
>> I remove the cable, the player isn't notified and keeps sending data
>> to the driver. This is fine for PCM but I noticed that the receiver
>> can handle some trouble synchronizing with in AC3-passthrough mode if
>> the cable is inserted after the playback starts. It would be much
>> cleaner to allow playback only when there's an actual cable connected,
>> and to return -ENODEV or something to apps when this happens.
> We used to turn off HDMI link when not playing. However that caused
> loss of 0.5s samples when starting next playback, due to the slow
> responding HDMI sink devices (in fact all my tested monitors/AV
> receivers have this problem).

I think it's fine if you leave the link on.

> What's your test case? Keep playing during plug/unplug, or
> play -- plug -- stop playing -- unplug -- play a new track?

The player keeps playing, and then I unplug/replug/unplug/replug the
cable. At some point the receiver will lose the sync with compressed

> Then there's the question whether to send -ENODEV to the audio player,
> or to send udev events (for pulseaudio) on hotplug events, or to
> disable HDMI link only for passthrough mode, or whatever policy.
> Any ideas?

I think we really need a consistent approach for all HDMI devices so
that middleware, PulseAudio specifically works without quirks and
hardware-specific work-arounds.
Ideally when the HDMI cable is plugged you would register a new card
and this would generate the relevant hot-plug events.However in the
case of HDAudio you have 2 devices for the same card. I am not sure
ALSA would generate hot-plug events if you registered/exposed the
HDMI-related devices only when a cable is played. Alternatively we
could leave the devices exposed at all times generate a dedicated HDMI
event, and have PulseAudio handle it.
How is this handled on non-Intel hardware?

>> Is there a missing link with the display driver so that this info
>> would make sense? I remember having a conversation with Fengguang Wu
>> on this, but I can't remember what the outcome was. Or is this a case
>> of back luck with broken hardware not sending the legal EDID info?
>> Thanks for your help on this.
> Sorry we have not implemented the ELD feature in video driver.  The
> Intel gfx driver should read&parse HW EDID and pass the ELD info to
> the audio driver.

It doesn't seem like rocket science, is this something that could be
patched? That really needs to be fixed, so that we can work with
Takashi and expose the ELD info to user-space. All this information is
badly needed by middleware.

More information about the Alsa-devel mailing list