<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <font size="-1"><font face="Helvetica, Arial, sans-serif">Good day,
        Fengguang! Great work! This sounds very promising!<br>
        <br>
        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.<br>
        <br>
        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!<br>
        <br>
        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.<br>
        <br>
        However, I am confident that you've found the true cause of the
        problem. Superb work once again!<br>
        <br>
        You're going to make a lot of Home Theater PC owners very happy.<br>
        <br>
        <br>
        Christopher White</font></font><br>
    <br>
    On 11/9/11 7:59 AM, Wu Fengguang wrote:
    <blockquote cite="mid:20111109065953.GB28238@localhost" type="cite">
      <pre wrap="">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:
</pre>
      <blockquote type="cite">
        <pre wrap="">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 
<a class="moz-txt-link-freetext" href="http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-next/current/">http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-next/current/</a> 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:
<a class="moz-txt-link-freetext" href="http://www.pulseforce.com/node/edid.dump">http://www.pulseforce.com/node/edid.dump</a>

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</pre>
      </blockquote>
    </blockquote>
  </body>
</html>