Forcing HDMI Audio


I am using nVidia hardware for digital signage. We want to play a movie file with audio over HDMI. This is working correctly when we attach the video card to the display via an HDMI cable - dmesg shows HDMI events like this:

[ 8.783253] HDMI hot plug event: Codec=3 Pin=5 Presence_Detect=1 ELD_Valid=1
[ 8.783326] HDMI status: Codec=3 Pin=5 Presence_Detect=1 ELD_Valid=1
[ 9.082624] HDMI status: Codec=3 Pin=5 Presence_Detect=1 ELD_Valid=1
[ 9.086385] HDMI: detected monitor SM460MX3 at connection type HDMI
[ 9.086391] HDMI: available speakers: FL/FR LFE FC RL/RR RC FLC/FRC RLC/RRC FLW/FRW FLH/FRH TC FCH
[ 9.086397] HDMI: supports coding type LPCM: channels = 2, rates = 32000 44100 48000, bits = 16 20 24

And, ALSA sees the information:

root@player306:~# cat /proc/asound/card0/eld#3.0
monitor_present 1
eld_valid 1
monitor_name SM460MX3
connection_type HDMI
eld_version [0x2] CEA-861D or below
edid_version [0x3] CEA-861-B, C or D
manufacture_id 0x2d4c
product_id 0x753
port_id 0x0
support_hdcp 0
support_ai 1
audio_sync_delay 0
sad_count 1
sad0_coding_type [0x1] LPCM
sad0_channels 2
sad0_rates [0xe0] 32000 44100 48000
sad0_bits [0xe0000] 16 20 24

However, when we connect to the screen via an HDMI extender (, we do not see any HDMI events in dmesg, and the ELD files show:

root@player101:~# cat /proc/asound/card1/eld#0.0
monitor_present 0
eld_valid 0

Is there a way to force the ELD detection the same way we use CustomEDID to force video detection? We want to send audio over the HDMI link even if the driver doesn’t think we can.

If we connect a dumb source (like a DVD player), then video an audio are properly transmitted over the extender, so we know that the HDMI extender and monitor are working properly for both audio and video.