[Intel-gfx] HDMI Audio Channels mis-detected on i915

Jeremy Bush contractfrombelow at gmail.com
Mon May 23 16:08:07 CEST 2011


More info below:

On May 23, 2011, at 8:39 AM, Jeremy Bush wrote:

> 
> On May 23, 2011, at 8:32 AM, Wu Fengguang wrote:
> 
>> Hi Jeremy,
>> 
>>> I have my machine hooked up to an Onkyo TX-SR607 7.2-Channel receiver. Yet when the machine boots,  HDMI detection mis-detects the hardware on the other end of the HDMI cable:
>>> 
>>> [ 2.090473] HDMI: detected monitor at connection type HDMI
>>> [ 2.090475] HDMI: available speakers: FL/FR
>>> [ 2.090477] HDMI: supports coding type LPCM: channels = 2, rates = 44100 48000 88200, bits = 16
>>> [ 2.090480] HDMI hot plug event: Pin=6 Presence_Detect=1 ELD_Valid=1
>> 
>> That information is filled by BIOS or VBIOS. There are 3 possibilities
>> 1) BIOS provides some dumb EDID-Like Data (ELD) regardless of the HDMI sink
>> 2) BIOS does not parse EDID correctly
>> 3) your TX-SR607 EDID data is broken
>> 
>> I'm writing a drm patch to do ELD for audio in the graphics driver,
>> which will address problems caused by (1) and (2). I've done the
>> scratch patch, but will need more tests before sending it out.
>> 
>> For now you may still manually correct ELD with this command:
>> 
>>       echo speakers 0 > '/proc/asound/card0/eld#3.0'
>> 
>> By clearing the speakers setting, the audio driver will assume your
>> HDMI sink supports all speakers.
> 
> 
> Hrm, just tried that, but speaker-test is still failing:
> 
> htpc ~ # echo speakers 0 > /proc/asound/card1/eld#3.0 
> htpc ~ # cat /proc/asound/card1/eld#3.0 
> monitor_present		1
> eld_valid		1
> monitor_name		
> connection_type		HDMI
> eld_version		[0x2] CEA-861D or below
> edid_version		[0x3] CEA-861-B, C or D
> manufacture_id		0x0
> product_id		0x0
> port_id			0x0
> support_hdcp		1
> support_ai		0
> audio_sync_delay	0
> speakers		[0x0]
> sad_count		1
> sad0_coding_type	[0x1] LPCM
> sad0_channels		2
> sad0_rates		[0xe0] 44100 48000 88200
> sad0_bits		[0x20000] 16
> htpc ~ # speaker-test -c 8 -t wav
> 
> speaker-test 1.0.23
> 
> Playback device is default
> Stream parameters are 48000Hz, S16_LE, 8 channels
> WAV file(s)
> Channels count (8) not available for playbacks: Invalid argument
> Setting of hwparams failed: Invalid argument

Setting sad0_channels to 8 makes speaker-test work. I'm remoting in via ssh right now, so I'll try more tests when I get home.

> 
>> 
>>> You can see my whole alsa info (including it actually detecting the hardware can do 7.1 [note Node 0x06 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP]) here: http://www.alsa-project.org/db/?f=5b55a63fea6580dfcbf1a85c7c734f977df798f1
>> 
>> This is the Intel HDMI port's audio capability and is always
>> 8-channels. In contrast the ELD describes how many speakers (and hence
>> channels) are attached to the HDMI sink device (TX-SR607 in your case).
>> 
>>> Is this a known problem?
>>> 
>>> My machine specs are as follows:
>>> 
>>> Intel i3 2100T
>>> MSI H67MA-E45 (with Realtek ALC892 audio chip)
>>> 
>>> I'm using HDMI output only.
>> 
>> Will you try the above workaround command first? For the long term
>> solution, if you are ready to compile new kernels, I can send you the
>> patch for testing.
> 
> I'm running gentoo, so I compile kernels regularly :)
> 
> Jeremy




More information about the Intel-gfx mailing list