Bug 89945 - xf86-video-intel-2.99.917 should allow edid override to known edid.bin file for AVR+TV combinations
Summary: xf86-video-intel-2.99.917 should allow edid override to known edid.bin file f...
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium blocker
Assignee: Chris Wilson
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-04-07 22:54 UTC by lucas oldfield
Modified: 2015-07-18 11:09 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
dmesg log with drm.debug=14 original intel driver AVR+TV w/ AVR power cycle (240.49 KB, text/plain)
2015-04-08 12:18 UTC, lucas oldfield
no flags Details
dmesg log with drm.debug=14 MODIFIED intel driver AVR+TV w/ AVR power cycle and TV power cycle (186.92 KB, text/plain)
2015-04-08 12:27 UTC, lucas oldfield
no flags Details
xrandr --verbose output before and after AVR power cycle, with failed screen output (16.27 KB, text/plain)
2015-04-09 11:44 UTC, lucas oldfield
no flags Details
dmesg output with additional drm-intel print output on hotplug interrupt (251.97 KB, text/plain)
2015-07-10 12:07 UTC, lucas oldfield
no flags Details

Description lucas oldfield 2015-04-07 22:54:28 UTC
Context;

A common setup for an Intel NUC is to use it as an audio and/or video player connect to a TV via an AVR. The AVR and TV may or may not be turned in during initialisation of xorg which prevents a proper HDMI handshake between the NUC and the TV/AVR.

Other video card drivers, ATI and NVIDIA, allow an EDID override option which will ignore any EDID download from the TV/AVR and use a known EDID. This ensures that the correct HDMI signal is transmitted regardless of the power state of either AVR or TV. 

Puprose;

A change is required to the driver to add an option parsed in the xorg.conf file to specify a file location for the EDID.BIN file. This file should be read in by the driver if available AND it should be written to if it doesn't exist. 

The last part improves the usability of the driver because it allows a setup to be probed on first start and set in stone. Meaning 'mums and dads', script kiddies or alike can complete this procedure with little to no programming knowledge.

I have made a git snapshot and modification at https://github.com/ArakniD/IntelGraphics which details my changes. I do not think this is great code, in fact its quite a hack job for a proof of concept. But it does work for my case and allows my TV and AVR to function through power cycles.

This feature has been asked by many people across many forums and is a constant source of complaint on the intel drivers on linux for media centers.

I hope this description and code example is enough to get this commit-ed, albeit a better implemented version which allocates memory and cleans up better :) perhaps with less file handling or potential for security flaws.

Thanking you.
Comment 1 Jani Nikula 2015-04-08 07:43:16 UTC
Is there no hotplug when the TV/AVR are switched on? Why does the cached EDID help, as I'd think the kernel should have it too?
Comment 2 lucas oldfield 2015-04-08 10:59:57 UTC
I'll reload the original unmodified driver and show you the debug log of the edid it dumps out on the hot plug. From memory (last week) it was showing all 0x00 and an invalid CRC obviously.. as in EDID failed on attaching display. I think this is why it fails to re establish the output when the avr is turned on again.

I'll go verify now that;

1)Test: Original Driver bootup and AVR power cycle
 a) Boot-up with everything powered on
 b) AVR turned off, pause, then back on
 = No screen and EDID check failed

2)Test: Cached EDID driver bootup and AVR power cycle
 a) Boot-up with everything powered on
 b) AVR turned off, pause, then back on
 = Screen re-establishes connection along with audio

I was previously using the standard 14.04 ubuntu distribution and experienced these problems. I've now gone with 14.10 on the latest BIOS and driver to verify if it had been fixed already before posting.

This shouldn't take too long, just have to enable more debug output into the xorg log file
Comment 3 Jani Nikula 2015-04-08 11:18:16 UTC
From my perspective, we should root cause the EDID reading failures, because the "mums and dads" will expect everything to work even when they stick another telly behind the AVR.
Comment 4 lucas oldfield 2015-04-08 11:24:49 UTC
Test1: Booted up session with AVR and TV on.
screen + audio was fine.
power cycled AVR, no screen or audio
power cycled avr + tv all both combinations, no screen or audio


[  7104.229] (II) LoadModule: "intel"
[  7104.229] (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
[  7104.258] (II) Module intel: vendor="X.Org Foundation"
[  7104.259] (II) intel: Driver for Intel(R) Integrated Graphics Chipsets:
[  7104.259] (II) intel: Driver for Intel(R) HD Graphics: 2000-6000
[  7104.259] (II) intel: Driver for Intel(R) Iris(TM) Graphics: 5100, 6100
[  7104.259] (II) intel: Driver for Intel(R) Iris(TM) Pro Graphics: 5200, 6200, P6300
[  7104.261] (II) intel(0): Using Kernel Mode Setting driver: i915, version 1.6.0 20140905
[  7104.261] (II) intel(0): SNA compiled: xserver-xorg-video-intel 2:2.99.917-1~exp1 (Vincent Cheng <vcheng@debian.org>)
[  7104.271] (--) intel(0): Integrated Graphics Chipset: Intel(R) HD Graphics
[  7104.271] (--) intel(0): CPU: x86-64, sse2, sse3, ssse3, sse4.1, sse4.2
[  7104.271] (II) intel(0): Creating default Display subsection in Screen section
[  7104.271] (==) intel(0): Depth 24, (--) framebuffer bpp 32
[  7104.271] (==) intel(0): RGB weight 888
[  7104.271] (==) intel(0): Default visual is TrueColor
[  7104.271] (II) intel(0): Output HDMI1 has no monitor section
[  7104.271] (II) intel(0): Enabled output HDMI1
[  7104.271] (II) intel(0): Output DP1 has no monitor section
[  7104.271] (II) intel(0): Enabled output DP1
[  7104.271] (--) intel(0): Using a maximum size of 256x256 for hardware cursors
[  7104.272] (II) intel(0): Output VIRTUAL1 has no monitor section
[  7104.272] (II) intel(0): Enabled output VIRTUAL1
[  7104.272] (--) intel(0): Output HDMI1 using initial mode 1920x1080 on pipe 0
[  7104.272] (==) intel(0): TearFree disabled
[  7104.272] (==) intel(0): DPI set to (96, 96)
[  7104.274] (II) intel(0): SNA initialized with Baytrail (gen7) backend
[  7104.274] (==) intel(0): Backing store enabled
[  7104.274] (==) intel(0): Silken mouse enabled
[  7104.274] (II) intel(0): HW Cursor enabled
[  7104.275] (II) intel(0): RandR 1.2 enabled, ignore the following RandR disabled message.
[  7104.275] (==) intel(0): DPMS enabled
[  7104.275] (==) intel(0): display hotplug detection enabled
[  7104.275] (II) intel(0): [DRI2] Setup complete
[  7104.275] (II) intel(0): [DRI2]   DRI driver: i965
[  7104.275] (II) intel(0): [DRI2]   VDPAU driver: i965
[  7104.275] (II) intel(0): direct rendering: DRI2 enabled
[  7104.275] (II) intel(0): hardware support for Present enabled
[  7104.275] (WW) intel(0): Option "EDIDOverride" is not used
[  7104.275] (WW) intel(0): Option "ModeDebug" is not used
[  7104.363] (II) intel(0): switch to mode 1920x1080@60.0 on HDMI1 using pipe 0, position (0, 0), rotation normal, reflection none
[  7104.384] (II) intel(0): Setting screen physical size to 508 x 285
[  7109.148] (--) intel(0): HDMI max TMDS frequency 225000KHz
[  7110.504] (--) intel(0): HDMI max TMDS frequency 225000KHz
[  7111.558] (--) intel(0): HDMI max TMDS frequency 225000KHz
[  7112.405] (--) intel(0): HDMI max TMDS frequency 225000KHz
[  7113.520] (--) intel(0): HDMI max TMDS frequency 225000KHz
[  7115.020] (--) intel(0): HDMI max TMDS frequency 225000KHz
[  7157.188] (II) intel(0): EDID vendor "DON", prod id 54
[  7157.188] (II) intel(0): Using EDID range info for horizontal sync
[  7157.188] (II) intel(0): Using EDID range info for vertical refresh
[  7157.188] (II) intel(0): Printing DDC gathered Modelines:
[  7157.188] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)
[  7157.189] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz e)
[  7157.189] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920 2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (56.2 kHz e)
[  7157.189] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1720 1760 1980  720 725 730 750 +hsync +vsync (37.5 kHz e)
[  7157.189] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920 2008 2052 2200  1080 1084 1094 1125 interlace +hsync +vsync (33.8 kHz e)
[  7157.189] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920 2448 2492 2640  1080 1084 1094 1125 interlace +hsync +vsync (28.1 kHz e)
[  7157.189] (II) intel(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[  7157.189] (II) intel(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[  7157.189] (II) intel(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[  7157.190] (II) intel(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[  7157.190] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920 2558 2602 2750  1080 1084 1089 1125 +hsync +vsync (27.0 kHz e)
[  7157.190] (II) intel(0): Modeline "1440x480i"x0.0   27.00  1440 1478 1602 1716  480 488 494 525 interlace -hsync -vsync (15.7 kHz e)
[  7157.190] (II) intel(0): Modeline "1440x576i"x0.0   27.00  1440 1464 1590 1728  576 580 586 625 interlace -hsync -vsync (15.6 kHz e)
[  7157.190] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920 2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (28.1 kHz e)
[  7157.190] (II) intel(0): Modeline "1440x240"x0.0   27.00  1440 1478 1602 1716  240 244 247 262 -hsync -vsync (15.7 kHz e)
[  7157.190] (II) intel(0): Modeline "1440x288"x0.0   27.00  1440 1464 1590 1728  288 290 293 312 -hsync -vsync (15.6 kHz e)
[  7157.190] (II) intel(0): Modeline "720x576"x0.0   27.00  720 732 796 864  576 581 586 625 -hsync -vsync (31.2 kHz e)
[  7157.191] (II) intel(0): Modeline "720x480"x0.0   27.00  720 736 798 858  480 489 495 525 -hsync -vsync (31.5 kHz e)
[  7157.191] (--) intel(0): HDMI max TMDS frequency 225000KHz
[  7157.246] (--) intel(0): HDMI max TMDS frequency 225000KHz
[  7157.353] (--) intel(0): HDMI max TMDS frequency 225000KHz
[  7158.356] (--) intel(0): HDMI max TMDS frequency 225000KHz
[  7170.724] (II) intel(0): EDID vendor "DON", prod id 54
[  7170.724] (II) intel(0): Using hsync ranges from config file
[  7170.724] (II) intel(0): Using vrefresh ranges from config file
[  7170.724] (II) intel(0): Printing DDC gathered Modelines:
[  7170.724] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)
[  7170.725] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz e)
[  7170.725] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920 2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (56.2 kHz e)
[  7170.725] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1720 1760 1980  720 725 730 750 +hsync +vsync (37.5 kHz e)
[  7170.725] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920 2008 2052 2200  1080 1084 1094 1125 interlace +hsync +vsync (33.8 kHz e)
[  7170.725] (II) intel(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[  7170.725] (II) intel(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[  7170.725] (II) intel(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[  7170.725] (II) intel(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[  7170.725] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920 2558 2602 2750  1080 1084 1089 1125 +hsync +vsync (27.0 kHz e)
[  7170.725] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920 2448 2492 2640  1080 1084 1094 1125 interlace +hsync +vsync (28.1 kHz e)
[  7170.726] (II) intel(0): Modeline "1440x480i"x0.0   27.00  1440 1478 1602 1716  480 488 494 525 interlace -hsync -vsync (15.7 kHz e)
[  7170.726] (II) intel(0): Modeline "1440x576i"x0.0   27.00  1440 1464 1590 1728  576 580 586 625 interlace -hsync -vsync (15.6 kHz e)
[  7170.726] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920 2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (28.1 kHz e)
[  7170.726] (II) intel(0): Modeline "1440x240"x0.0   27.00  1440 1478 1602 1716  240 244 247 262 -hsync -vsync (15.7 kHz e)
[  7170.726] (II) intel(0): Modeline "1440x288"x0.0   27.00  1440 1464 1590 1728  288 290 293 312 -hsync -vsync (15.6 kHz e)
[  7170.726] (II) intel(0): Modeline "720x576"x0.0   27.00  720 732 796 864  576 581 586 625 -hsync -vsync (31.2 kHz e)
[  7170.726] (II) intel(0): Modeline "720x480"x0.0   27.00  720 736 798 858  480 489 495 525 -hsync -vsync (31.5 kHz e)
[  7170.726] (II) intel(0): Modeline "1440x480"x0.0   54.00  1440 1472 1596 1716  480 489 495 525 -hsync -vsync (31.5 kHz e)
[  7170.726] (II) intel(0): Modeline "2880x480"x0.0  108.00  2880 2944 3192 3432  480 489 495 525 -hsync -vsync (31.5 kHz e)
[  7170.726] (II) intel(0): Modeline "2880x576"x0.0  108.00  2880 2928 3184 3456  576 581 586 625 -hsync -vsync (31.2 kHz e)
[  7170.727] (II) intel(0): Modeline "1440x576"x0.0   54.00  1440 1464 1592 1728  576 581 586 625 -hsync -vsync (31.2 kHz e)
[  7170.727] (II) intel(0): Modeline "1920x1080i"x0.0   72.00  1920 1952 2120 2304  1080 1126 1136 1250 interlace +hsync -vsync (31.2 kHz e)
[  7170.727] (--) intel(0): HDMI max TMDS frequency 225000KHz
[  7172.472] (--) intel(0): HDMI max TMDS frequency 225000KHz
[  7172.716] (--) intel(0): HDMI max TMDS frequency 225000KHz
[  7173.760] (--) intel(0): HDMI max TMDS frequency 225000KHz
Comment 5 lucas oldfield 2015-04-08 11:27:15 UTC
Test 2: rebooted box with modified driver.
Initial screen not on, but audio and HDMI sync on AVR.
Power cycled TV resolve the display and audio issue.
power cycled the AVR and then screen not on, but audio ok
power cycled TV and back with screen ok
power cycled TV and no screen
power cycled AVR then screen and audio ok

so a little bit hit and miss here.. I could definitely get it back to all working by turning individual pieces back on and off.

[    19.883] (II) LoadModule: "intel"
[    19.884] (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
[    19.908] (II) Module intel: vendor="X.Org Foundation"
[    19.908] (II) intel: Driver for Intel(R) Integrated Graphics Chipsets:
[    19.909] (II) intel: Driver for Intel(R) HD Graphics: 2000-6000
[    19.909] (II) intel: Driver for Intel(R) Iris(TM) Graphics: 5100, 6100
[    19.909] (II) intel: Driver for Intel(R) Iris(TM) Pro Graphics: 5200, 6200, P6300
[    19.909] (II) intel(0): Using Kernel Mode Setting driver: i915, version 1.6.0 20140905
[    19.909] (II) intel(0): SNA compiled from 2.99.917-252-gc47fd1d
[    19.910] (--) intel(0): Integrated Graphics Chipset: Intel(R) HD Graphics
[    19.910] (--) intel(0): CPU: x86-64, sse2, sse3, ssse3, sse4.1, sse4.2; using a maximum of 2 threads
[    19.910] (II) intel(0): Creating default Display subsection in Screen section
[    19.910] (==) intel(0): Depth 24, (--) framebuffer bpp 32
[    19.910] (==) intel(0): RGB weight 888
[    19.910] (==) intel(0): Default visual is TrueColor
[    19.910] (**) intel(0): Option "EDIDOverride" "/home/lucas/sony.edid"
[    19.910] (II) intel(0): Output HDMI1 has no monitor section
[    19.910] (II) intel(0): Enabled output HDMI1
[    19.910] (II) intel(0): Output DP1 has no monitor section
[    19.910] (II) intel(0): Enabled output DP1
[    19.910] (--) intel(0): Using a maximum size of 256x256 for hardware cursors
[    19.910] (II) intel(0): Output VIRTUAL1 has no monitor section
[    19.910] (II) intel(0): Enabled output VIRTUAL1
[    19.910] (--) intel(0): Output HDMI1 using initial mode 1920x1080 on pipe 0
[    19.910] (==) intel(0): TearFree disabled
[    19.910] (==) intel(0): DPI set to (96, 96)
[    19.920] (II) intel(0): SNA initialized with Baytrail (gen7) backend
[    19.920] (==) intel(0): Backing store enabled
[    19.920] (==) intel(0): Silken mouse enabled
[    19.921] (II) intel(0): HW Cursor enabled
[    19.921] (II) intel(0): RandR 1.2 enabled, ignore the following RandR disabled message.
[    19.922] (==) intel(0): DPMS enabled
[    19.922] (II) intel(0): [DRI2] Setup complete
[    19.922] (II) intel(0): [DRI2]   DRI driver: i965
[    19.922] (II) intel(0): [DRI2]   VDPAU driver: va_gl
[    19.923] (II) intel(0): direct rendering: DRI2 enabled
[    19.923] (II) intel(0): hardware support for Present enabled
[    19.923] (WW) intel(0): Option "ModeDebug" is not used
[    20.011] (II) intel(0): switch to mode 1920x1080@60.0 on HDMI1 using pipe 0, position (0, 0), rotation normal, reflection none
[    20.011] (II) intel(0): Setting screen physical size to 508 x 285
[    26.776] (--) intel(0): HDMI max TMDS frequency 225000KHz
[    28.460] (II) intel(0): EDID vendor "DON", prod id 54
[    28.460] (II) intel(0): Using EDID range info for horizontal sync
[    28.460] (II) intel(0): Using EDID range info for vertical refresh
[    28.460] (II) intel(0): Printing DDC gathered Modelines:
[    28.460] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)
[    28.460] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz e)
[    28.460] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920 2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (56.2 kHz e)
[    28.460] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1720 1760 1980  720 725 730 750 +hsync +vsync (37.5 kHz e)
[    28.460] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920 2008 2052 2200  1080 1084 1094 1125 interlace +hsync +vsync (33.8 kHz e)
[    28.460] (II) intel(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[    28.460] (II) intel(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[    28.460] (II) intel(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[    28.460] (II) intel(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[    28.460] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920 2558 2602 2750  1080 1084 1089 1125 +hsync +vsync (27.0 kHz e)
[    28.460] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920 2448 2492 2640  1080 1084 1094 1125 interlace +hsync +vsync (28.1 kHz e)
[    28.460] (II) intel(0): Modeline "1440x480i"x0.0   27.00  1440 1478 1602 1716  480 488 494 525 interlace -hsync -vsync (15.7 kHz e)
[    28.460] (II) intel(0): Modeline "1440x576i"x0.0   27.00  1440 1464 1590 1728  576 580 586 625 interlace -hsync -vsync (15.6 kHz e)
[    28.460] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920 2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (28.1 kHz e)
[    28.460] (II) intel(0): Modeline "1440x240"x0.0   27.00  1440 1478 1602 1716  240 244 247 262 -hsync -vsync (15.7 kHz e)
[    28.460] (II) intel(0): Modeline "1440x288"x0.0   27.00  1440 1464 1590 1728  288 290 293 312 -hsync -vsync (15.6 kHz e)
[    28.460] (II) intel(0): Modeline "720x576"x0.0   27.00  720 732 796 864  576 581 586 625 -hsync -vsync (31.2 kHz e)
[    28.460] (II) intel(0): Modeline "720x480"x0.0   27.00  720 736 798 858  480 489 495 525 -hsync -vsync (31.5 kHz e)
[    28.460] (II) intel(0): Modeline "1440x480"x0.0   54.00  1440 1472 1596 1716  480 489 495 525 -hsync -vsync (31.5 kHz e)
[    28.460] (II) intel(0): Modeline "2880x480"x0.0  108.00  2880 2944 3192 3432  480 489 495 525 -hsync -vsync (31.5 kHz e)
[    28.460] (II) intel(0): Modeline "2880x576"x0.0  108.00  2880 2928 3184 3456  576 581 586 625 -hsync -vsync (31.2 kHz e)
[    28.460] (II) intel(0): Modeline "1440x576"x0.0   54.00  1440 1464 1592 1728  576 581 586 625 -hsync -vsync (31.2 kHz e)
[    28.461] (II) intel(0): Modeline "1920x1080i"x0.0   72.00  1920 1952 2120 2304  1080 1126 1136 1250 interlace +hsync -vsync (31.2 kHz e)
[    28.461] (--) intel(0): HDMI max TMDS frequency 225000KHz
[    29.520] (II) intel(0): EDID vendor "DON", prod id 54
[    29.520] (II) intel(0): Using hsync ranges from config file
[    29.520] (II) intel(0): Using vrefresh ranges from config file
[    29.520] (II) intel(0): Printing DDC gathered Modelines:
[    29.520] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)
[    29.520] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz e)
[    29.520] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920 2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (56.2 kHz e)
[    29.520] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1720 1760 1980  720 725 730 750 +hsync +vsync (37.5 kHz e)
[    29.520] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920 2008 2052 2200  1080 1084 1094 1125 interlace +hsync +vsync (33.8 kHz e)
[    29.520] (II) intel(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[    29.520] (II) intel(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[    29.520] (II) intel(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[    29.520] (II) intel(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[    29.520] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920 2558 2602 2750  1080 1084 1089 1125 +hsync +vsync (27.0 kHz e)
[    29.520] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920 2448 2492 2640  1080 1084 1094 1125 interlace +hsync +vsync (28.1 kHz e)
[    29.520] (II) intel(0): Modeline "1440x480i"x0.0   27.00  1440 1478 1602 1716  480 488 494 525 interlace -hsync -vsync (15.7 kHz e)
[    29.520] (II) intel(0): Modeline "1440x576i"x0.0   27.00  1440 1464 1590 1728  576 580 586 625 interlace -hsync -vsync (15.6 kHz e)
[    29.520] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920 2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (28.1 kHz e)
[    29.521] (II) intel(0): Modeline "1440x240"x0.0   27.00  1440 1478 1602 1716  240 244 247 262 -hsync -vsync (15.7 kHz e)
[    29.521] (II) intel(0): Modeline "1440x288"x0.0   27.00  1440 1464 1590 1728  288 290 293 312 -hsync -vsync (15.6 kHz e)
[    29.521] (II) intel(0): Modeline "720x576"x0.0   27.00  720 732 796 864  576 581 586 625 -hsync -vsync (31.2 kHz e)
[    29.521] (II) intel(0): Modeline "720x480"x0.0   27.00  720 736 798 858  480 489 495 525 -hsync -vsync (31.5 kHz e)
[    29.521] (II) intel(0): Modeline "1440x480"x0.0   54.00  1440 1472 1596 1716  480 489 495 525 -hsync -vsync (31.5 kHz e)
[    29.521] (II) intel(0): Modeline "2880x480"x0.0  108.00  2880 2944 3192 3432  480 489 495 525 -hsync -vsync (31.5 kHz e)
[    29.521] (II) intel(0): Modeline "2880x576"x0.0  108.00  2880 2928 3184 3456  576 581 586 625 -hsync -vsync (31.2 kHz e)
[    29.521] (II) intel(0): Modeline "1440x576"x0.0   54.00  1440 1464 1592 1728  576 581 586 625 -hsync -vsync (31.2 kHz e)
[    29.521] (II) intel(0): Modeline "1920x1080i"x0.0   72.00  1920 1952 2120 2304  1080 1126 1136 1250 interlace +hsync -vsync (31.2 kHz e)
[    29.521] (--) intel(0): HDMI max TMDS frequency 225000KHz
[    32.640] (II) intel(0): EDID vendor "DON", prod id 54
[    32.640] (II) intel(0): Using hsync ranges from config file
[    32.640] (II) intel(0): Using vrefresh ranges from config file
[    32.640] (II) intel(0): Printing DDC gathered Modelines:
[    32.640] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)
[    32.640] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz e)
[    32.640] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920 2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (56.2 kHz e)
[    32.640] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1720 1760 1980  720 725 730 750 +hsync +vsync (37.5 kHz e)
[    32.640] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920 2008 2052 2200  1080 1084 1094 1125 interlace +hsync +vsync (33.8 kHz e)
[    32.640] (II) intel(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[    32.640] (II) intel(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[    32.640] (II) intel(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[    32.640] (II) intel(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[    32.640] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920 2558 2602 2750  1080 1084 1089 1125 +hsync +vsync (27.0 kHz e)
[    32.640] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920 2448 2492 2640  1080 1084 1094 1125 interlace +hsync +vsync (28.1 kHz e)
[    32.640] (II) intel(0): Modeline "1440x480i"x0.0   27.00  1440 1478 1602 1716  480 488 494 525 interlace -hsync -vsync (15.7 kHz e)
[    32.640] (II) intel(0): Modeline "1440x576i"x0.0   27.00  1440 1464 1590 1728  576 580 586 625 interlace -hsync -vsync (15.6 kHz e)
[    32.640] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920 2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (28.1 kHz e)
[    32.641] (II) intel(0): Modeline "1440x240"x0.0   27.00  1440 1478 1602 1716  240 244 247 262 -hsync -vsync (15.7 kHz e)
[    32.641] (II) intel(0): Modeline "1440x288"x0.0   27.00  1440 1464 1590 1728  288 290 293 312 -hsync -vsync (15.6 kHz e)
[    32.641] (II) intel(0): Modeline "720x576"x0.0   27.00  720 732 796 864  576 581 586 625 -hsync -vsync (31.2 kHz e)
[    32.641] (II) intel(0): Modeline "720x480"x0.0   27.00  720 736 798 858  480 489 495 525 -hsync -vsync (31.5 kHz e)
[    32.641] (II) intel(0): Modeline "1440x480"x0.0   54.00  1440 1472 1596 1716  480 489 495 525 -hsync -vsync (31.5 kHz e)
[    32.641] (II) intel(0): Modeline "2880x480"x0.0  108.00  2880 2944 3192 3432  480 489 495 525 -hsync -vsync (31.5 kHz e)
[    32.641] (II) intel(0): Modeline "2880x576"x0.0  108.00  2880 2928 3184 3456  576 581 586 625 -hsync -vsync (31.2 kHz e)
[    32.641] (II) intel(0): Modeline "1440x576"x0.0   54.00  1440 1464 1592 1728  576 581 586 625 -hsync -vsync (31.2 kHz e)
[    32.641] (II) intel(0): Modeline "1920x1080i"x0.0   72.00  1920 1952 2120 2304  1080 1126 1136 1250 interlace +hsync -vsync (31.2 kHz e)
[    32.641] (--) intel(0): HDMI max TMDS frequency 225000KHz
[    35.120] (II) intel(0): EDID vendor "DON", prod id 54
[    35.120] (II) intel(0): Using hsync ranges from config file
[    35.120] (II) intel(0): Using vrefresh ranges from config file
[    35.120] (II) intel(0): Printing DDC gathered Modelines:
[    35.120] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)
[    35.120] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz e)
[    35.120] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920 2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (56.2 kHz e)
[    35.120] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1720 1760 1980  720 725 730 750 +hsync +vsync (37.5 kHz e)
[    35.120] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920 2008 2052 2200  1080 1084 1094 1125 interlace +hsync +vsync (33.8 kHz e)
[    35.120] (II) intel(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[    35.120] (II) intel(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[    35.120] (II) intel(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[    35.120] (II) intel(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[    35.120] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920 2558 2602 2750  1080 1084 1089 1125 +hsync +vsync (27.0 kHz e)
[    35.120] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920 2448 2492 2640  1080 1084 1094 1125 interlace +hsync +vsync (28.1 kHz e)
[    35.120] (II) intel(0): Modeline "1440x480i"x0.0   27.00  1440 1478 1602 1716  480 488 494 525 interlace -hsync -vsync (15.7 kHz e)
[    35.120] (II) intel(0): Modeline "1440x576i"x0.0   27.00  1440 1464 1590 1728  576 580 586 625 interlace -hsync -vsync (15.6 kHz e)
[    35.121] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920 2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (28.1 kHz e)
[    35.121] (II) intel(0): Modeline "1440x240"x0.0   27.00  1440 1478 1602 1716  240 244 247 262 -hsync -vsync (15.7 kHz e)
[    35.121] (II) intel(0): Modeline "1440x288"x0.0   27.00  1440 1464 1590 1728  288 290 293 312 -hsync -vsync (15.6 kHz e)
[    35.121] (II) intel(0): Modeline "720x576"x0.0   27.00  720 732 796 864  576 581 586 625 -hsync -vsync (31.2 kHz e)
[    35.121] (II) intel(0): Modeline "720x480"x0.0   27.00  720 736 798 858  480 489 495 525 -hsync -vsync (31.5 kHz e)
[    35.121] (II) intel(0): Modeline "1440x480"x0.0   54.00  1440 1472 1596 1716  480 489 495 525 -hsync -vsync (31.5 kHz e)
[    35.121] (II) intel(0): Modeline "2880x480"x0.0  108.00  2880 2944 3192 3432  480 489 495 525 -hsync -vsync (31.5 kHz e)
[    35.121] (II) intel(0): Modeline "2880x576"x0.0  108.00  2880 2928 3184 3456  576 581 586 625 -hsync -vsync (31.2 kHz e)
[    35.121] (II) intel(0): Modeline "1440x576"x0.0   54.00  1440 1464 1592 1728  576 581 586 625 -hsync -vsync (31.2 kHz e)
[    35.121] (II) intel(0): Modeline "1920x1080i"x0.0   72.00  1920 1952 2120 2304  1080 1126 1136 1250 interlace +hsync -vsync (31.2 kHz e)
[    35.121] (--) intel(0): HDMI max TMDS frequency 225000KHz
Comment 6 lucas oldfield 2015-04-08 11:28:57 UTC
dmesg shows

[   92.695718] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 130
[   92.695731] Raw EDID:
[   92.695741]          00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
[   92.695749]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.695756]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.695762]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.695769]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.695776]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.695783]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.695789]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.708177] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 130
[   92.708190] Raw EDID:
[   92.708200]          00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
[   92.708207]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.708214]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.708227]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.708232]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.708237]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.708241]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.708246]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.720577] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 130
[   92.720624] Raw EDID:
[   92.720634]          00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
[   92.720640]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.720646]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.720651]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.720657]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.720663]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.720668]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.720674]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.732984] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 130
[   92.732995] Raw EDID:
[   92.733003]          00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
[   92.733008]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.733013]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.733018]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.733023]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.733029]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.733034]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.733039]          ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   92.733050] i915 0000:00:02.0: HDMI-A-1: EDID block 0 invalid.


there we go.. some invalid edid checksums poping up.. sorry I didn't check this on the original driver
Comment 7 Jani Nikula 2015-04-08 11:35:33 UTC
(In reply to lucas oldfield from comment #4)
> Test1: Booted up session with AVR and TV on.
> screen + audio was fine.
> power cycled AVR, no screen or audio
> power cycled avr + tv all both combinations, no screen or audio

Please add drm.debug=14 module parameter, repeat these and attach the dmesg, all the way from boot to the problems. Maybe annotate the dmesg with

sudo sh -c "echo power cycling avr next > /dev/kmsg"

or something like that for easier read.

Please attach the logs (as plain text) instead of copy-pasting as comments, otherwise the bug gets hard to read.
Comment 8 Chris Wilson 2015-04-08 11:42:30 UTC
To override the edid use drm_kms_helper.edid_firmware=HDMI-A-1:my-edid.bin (tweak as appropriate!)
Comment 9 Jani Nikula 2015-04-08 11:59:18 UTC
(In reply to Chris Wilson from comment #8)
> To override the edid use drm_kms_helper.edid_firmware=HDMI-A-1:my-edid.bin
> (tweak as appropriate!)

The hickup is that you'll also need

commit ad692b46dbf122ef90aadce3b389ef64c90e861d
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Thu Mar 26 10:42:00 2015 +0200

    drm/edid: set ELD for firmware and debugfs override EDIDs

from v4.0 (or wait until it tricles down to stable kernels) to ensure audio works.
Comment 10 lucas oldfield 2015-04-08 12:10:34 UTC
(In reply to Jani Nikula from comment #9)
> (In reply to Chris Wilson from comment #8)
> > To override the edid use drm_kms_helper.edid_firmware=HDMI-A-1:my-edid.bin
> > (tweak as appropriate!)
> 
> The hickup is that you'll also need
> 
> commit ad692b46dbf122ef90aadce3b389ef64c90e861d
> Author: Jani Nikula <jani.nikula@intel.com>
> Date:   Thu Mar 26 10:42:00 2015 +0200
> 
>     drm/edid: set ELD for firmware and debugfs override EDIDs
> 
> from v4.0 (or wait until it tricles down to stable kernels) to ensure audio
> works.

So this means I need the latest kernel 4.0 for that to work?

I've finally gotten the kernel parameter in there so I'll do some digging still.

I'll repeat what I just did and attach it this time (whoops)
Comment 11 lucas oldfield 2015-04-08 12:18:41 UTC
Created attachment 114956 [details]
dmesg log with drm.debug=14 original intel driver AVR+TV w/ AVR power cycle

Original intel driver with debugging.

AVR power cycle.

AVR ON -> OFF = OK as usual

AVR OFF -> ON = failed screen and audio
Comment 12 lucas oldfield 2015-04-08 12:27:31 UTC
Created attachment 114957 [details]
dmesg log with drm.debug=14 MODIFIED intel driver AVR+TV w/ AVR power cycle and TV power cycle

screen booted up OFF, but audio OK.

AVR power cycle fixed it

TV power cycle worked ok
Comment 13 Jani Nikula 2015-04-08 13:10:01 UTC
(In reply to lucas oldfield from comment #11)
> Created attachment 114956 [details]
> dmesg log with drm.debug=14 original intel driver AVR+TV w/ AVR power cycle
> 
> Original intel driver with debugging.
> 
> AVR power cycle.
> 
> AVR ON -> OFF = OK as usual
> 
> AVR OFF -> ON = failed screen and audio

Here, it seems to me we get the hotplugs for AVR/TV power cycling just fine, and the EDID reading succeeds when they are powered back on. AFAICT the EDID failures happen when we get hot *un* plug for the power off, we still have the cable connected, and fail to read EDID. It seems a bit ugly, sure, but from kernel driver perspective I think it's functional.

What does xrandr --verbose say after you've power cycled the AVR?
Comment 14 lucas oldfield 2015-04-09 11:44:36 UTC
Created attachment 114979 [details]
xrandr --verbose output before and after AVR power cycle, with failed screen output

Started new session with working screen and audio

power cycled AVR, that killed the screen output and audio

dumped as requested 'xrandr -display :0.0 --verbose'

Started new session with working screen and audio

dumped as requested 'xrandr -display :0.0 --verbose'
Comment 15 Jani Nikula 2015-04-09 13:48:55 UTC
Hmm, I never see the "disconnected to connected" counterpart for this:

[  239.547107] [drm:intel_hpd_irq_event] [CONNECTOR:17:HDMI-A-1] status updated from connected to disconnected

and it seems it follows that we fail to send the uevent to userspace.

intel_hpd_irq_event() seems to think the connector status has not changed. This has to be due to drm_helper_probe_single_connector_modes_merge_bits() changing connector->status to connected and *not* sending the uevent *before* our hotplug work func has a chance to run.

I am not sure how this should be fixed; there seem to be quite many moving parts here.
Comment 16 Jani Nikula 2015-04-09 14:18:11 UTC
As a hack, please try this to validate the theory a bit:

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 8b5e0358c592..9277c4e286f1 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -811,7 +811,8 @@ static bool intel_hpd_irq_event(struct drm_device *dev,
 	old_status = connector->status;
 
 	connector->status = connector->funcs->detect(connector, false);
-	if (old_status == connector->status)
+	if (old_status == connector->status &&
+	    old_status != connector_status_connected)
 		return false;
 
 	DRM_DEBUG_KMS("[CONNECTOR:%d:%s] status updated from %s to %s\n",
Comment 17 lucas oldfield 2015-07-10 12:06:33 UTC
Ok I've finally got a new TV up in my living room and time to try some of this debuggging.. it took a while to get everything built and installed but I finally got there tonight :)

FYI the old hack was still working just fine.

I can get the display to fail by just changing the TV from HDMI1 to HDMI2 when connected through the AVR.

I've attached the log to the issue.

lucas@tvbox:~$ sudo sh -c "echo '*********************************************************************' > /dev/kmsg"
lucas@tvbox:~$ sudo service lightdm restart
lucas@tvbox:~$ sudo sh -c "echo LIGHTDM IS UP ALL OK > /dev/kmsg"
lucas@tvbox:~$ sudo sh -c "echo SWITCHING FROM HDMI1 to HDMI2 on TV > /dev/kmsg"
lucas@tvbox:~$ sudo sh -c "echo HDMI2 enabled on TV.. as in NOT the input used from linux > /dev/kmsg"
lucas@tvbox:~$ sudo sh -c "echo SWITCHING FROM HDMI2 to HDMI1 on TV > /dev/kmsg"
lucas@tvbox:~$ sudo sh -c "echo HDMI1 enabled and TV is blank. no display! > /dev/kmsg"


these are my text markers..
Comment 18 lucas oldfield 2015-07-10 12:07:45 UTC
Created attachment 117028 [details]
dmesg output with additional drm-intel print output on hotplug interrupt
Comment 19 Chris Wilson 2015-07-18 11:09:54 UTC
commit 2cd7cb9e93767d8492bd4a72a973b18184730322
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jul 18 11:56:57 2015 +0100

    sna: Allow user override of EDID for an output
    
    As a slightly more convenient approach than loading the EDID on the
    kernel command line, allow the user to specify the EDID path in the
    Device section of xorg.conf, e.g.
    
    Section "Device"
        Identifier "igfx"
        Option "CustomEDID" "DP1:/path/to/dp1.edid,DP2:/path/to/dp2.edid"
    EndSection
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89945


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.