Bug 769103

Summary: HDMI EDID extension being incorrectly rejected
Product: [Fedora] Fedora Reporter: Jon Burgess <jburgess777>
Component: kernelAssignee: Adam Jackson <ajax>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: bskeggs, gansalmon, itamar, jonathan, kernel-maint, madhu.chinakonda
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-05-23 20:02:17 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Jon Burgess 2011-12-19 22:47:27 UTC
Description of problem:
I updated a F16 system to a rawhide kernel to try out the HDMI ELD feature. This was working in a rawhide kernel last week but the data is now being rejected and I lose HDMI audio.

Version-Release number of selected component (if applicable):
Working: kernel-3.2.0-0.rc4.git5.1.fc17.x86_64
Broken: kernel-3.2.0-0.rc6.git0.1.fc17.x86_64

How reproducible:
Every time

Steps to Reproduce:
1. TV+AV receiver connected via HDMI to Intel GPU
2. Boot new kernel. 
3. dmesg reports rejected EDID data

  
Actual results:

[ 5052.222713] Raw EDID:
[ 5052.222716]          02 03 4c 73 5e 9f 14 13 12 16 11 15 10 05 04 03
[ 5052.222717]          07 02 06 01 20 21 22 0a 0b 0e 23 0f 24 19 1a 1d
[ 5052.222718]          25 1e 26 38 09 7f 07 0f 7f 07 15 07 50 3e 1f c0
[ 5052.222720]          4d 02 00 57 06 00 67 54 00 5f 54 01 68 03 0c 00
[ 5052.222721]          12 00 b8 2d 0f e2 00 7f 83 5f 00 00 8c 0a d0 90
[ 5052.222722]          20 40 31 20 0c 40 55 00 b0 84 43 00 00 18 00 00
[ 5052.222723]          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 5052.222725]          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 72
[ 5052.222729] i915 0000:00:02.0: HDMI-A-2: Ignoring invalid EDID block 1.

Expected results:

EDID data should be parsed OK.

Additional info:

It looks like an issue with drm-edid-try-harder-to-fix-up-broken-headers.patch which has removed the check of the first byte being zero. This was previously allowing the extension block to skip the drm_edid_header_is_valid() check.

For reference here is a hexdump showing the full 256 bytes from a previous time I had the raw edid logging enabled. It is the second half of this data which is being rejected:

00ffffffffffff005262090101010101
ff14010380a05a780a0dc9a057479827
12484c2fcf0081800101010101010101
010101010101023a80d072382d40102c
458040846300001e011d80d0721c1620
102c258040846300009e000000fc0054
4f53484942412d54560a2020000000fd
00174c0f510f000a2020202020200129
02034c735e9f14131216111510050403
070206012021220a0b0e230f24191a1d
251e2638097f070f7f071507503e1fc0
4d02005706006754005f540168030c00
1100b82d0fe2007f835f00008c0ad090
204031200c405500b084430000180000
00000000000000000000000000000000
00000000000000000000000000000073

Comment 1 Josh Boyer 2011-12-19 23:49:43 UTC
Adam, any thoughts on this one?

Comment 2 Adam Jackson 2011-12-20 20:10:16 UTC
Yeah, patch is broken.  Revert from all branches, I'll send better to dri-devel@

Comment 3 Josh Boyer 2011-12-20 21:46:18 UTC
(In reply to comment #2)
> Yeah, patch is broken.  Revert from all branches, I'll send better to
> dri-devel@

Commented out for now.  Will be in next rawhide/f16 builds.

Comment 4 Jon Burgess 2011-12-21 16:19:49 UTC
kernel-3.2.0-0.rc6.git2.1.fc17.x86_64 works again for me.

Comment 5 Adam Jackson 2012-05-23 20:02:17 UTC
Closing per comment #4.  drm-next has this instead for the header fixup, which will make its way into Fedora soon enough:

http://cgit.freedesktop.org/~airlied/linux/commit/drivers/gpu/drm/drm_edid.c?h=drm-next&id=f89ec8a456dde7f18a13de77b4d79e6b05ca7c84