[Intel-gfx] [PATCH v5] drm/i915: pass ELD to HDMI/DP audio driver

Christopher White c.white at pulseforce.com
Wed Nov 9 10:00:32 CET 2011


Good day, Fengguang! Great work! This sounds very promising!

I went through the ELD parsing code myself (drm_edid_to_eld), as my 
programmer mind's curiosity killed me even though I didn't really have 
time for it, and I could see that it grabs the CEA extension block, 
grabs the monitor name string, then goes through each data block 
collection, copying all short descriptor data for each of the block 
types we're interested in. Good and clean code.

So, I came to the same conclusion - that the parsing code was completely 
correct. I'm therefore very happy to hear that you've found the real 
problem; trying to write the ELD structure to the wrong audio registers 
on SandyBridge. Yep, that HAS to be it!

I've applied the patch and the kernel is currently being re-built, but 
I've got to leave home so I won't report back until later today.

However, I am confident that you've found the true cause of the problem. 
Superb work once again!

You're going to make a lot of Home Theater PC owners very happy.


Christopher White

On 11/9/11 7:59 AM, Wu Fengguang wrote:
> Hi Christopher,
>
> I don't find anything wrong with the ELD parsing code, however I do
> find a bug that prevented ELD from being passed to the audio driver on
> SandyBridge.
>
> I just posted the fix. For your convenience, it's attached in this
> email too.
>
> Thanks,
> Fengguang
>
> On Fri, Oct 28, 2011 at 03:57:23AM +0800, Christopher White wrote:
>> There appears to be some issues with the patch? I'm on SandyBridge and
>> using the HD3000's HDMI.
>>
>> I've now tried manually merging the ELD patch (both files Wu Fengguang
>> submitted) and compiling Kernel 3.0.4. I've also tried drm-intel-next
>> Kernel 3.1 pre-built from
>> http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-next/current/ as
>> I knew it was built from keithp's latest drm-intel-next repository.
>>
>> Both of these methods had the patch applied, yet neither were able to
>> read the ELD correctly from my Onkyo TX-SR607 receiver.
>>
>> If I manually dump the EDID from my receiver and analyze it with Monitor
>> Asset Manager (by EnTech Taiwan), it shows that the ELD contains an 8
>> channel specification up to 192 kHz, and that's what's being exposed
>> over HDMI to the Intel graphics adapter, yet this isn't detected. It
>> just plain isn't being read, and is falling back to the default 2ch
>> 16kHz configuration. It's exactly as it was in the past, before this
>> patch attempt.
>>
>> You can see my 256 byte EDID dump, straight from the receiver, over at:
>> http://www.pulseforce.com/node/edid.dump
>>
>> It shows exactly what the receiver is exposing over HDMI, proving that
>> it's not the device that's at fault.
>>
>> Any ideas what's wrong? Here's the HDMI messages from the startup log:
>>
>> HDMI status: Pin=7 Presence_Detect=1 ELD_Valid=1
>> HDMI: detected monitor  at connection type HDMI
>> HDMI: available speakers: FL/FR
>> HDMI: supports coding type LPCM: channels = 2, rates = 44100 48000
>> 88200, bits = 16
>> HDMI hot plug event: Pin=7 Presence_Detect=1 ELD_Valid=1
>> HDMI status: Pin=7 Presence_Detect=1 ELD_Valid=1
>> input: HDA Intel PCH HDMI/DP as
>> /devices/pci0000:00/0000:00:1b.0/sound/card0/input9
>> HDMI: detected monitor  at connection type HDMI
>> HDMI: available speakers: FL/FR
>> HDMI: supports coding type LPCM: channels = 2, rates = 44100 48000
>> 88200, bits = 16
>> HDMI hot plug event: Pin=7 Presence_Detect=1 ELD_Valid=1
>> HDMI status: Pin=7 Presence_Detect=1 ELD_Valid=1
>> HDMI: detected monitor  at connection type HDMI
>> HDMI: available speakers: FL/FR
>> HDMI: supports coding type LPCM: channels = 2, rates = 44100 48000
>> 88200, bits = 16
>>
>>
>>
>> Christopher White
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20111109/ec78f7ba/attachment.html>


More information about the Intel-gfx mailing list