linux-uconsole/drivers
Daniel Vetter aaa377302b drm/i915/crt: Do not rely upon the HPD presence pin
VGA hotplug detection "works" by measuring the resistance across
certain pins. A lot of kvm switches fumble this and wire up cheap
resistors with the wrong resistance or don't bother at all.

To accomodate these, also try to detect a connected monitor by trying
to grab the edid. Contrary to !HAS_HOTPLUG platforms we don't bother
with an actual load-detection cycle when the output is life - that
would be actual work to implement because things moved around. This is
the big difference to Chris Wilson's original approach:

commit 9e612a008f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu May 31 13:08:53 2012 +0100

    drm/i915/crt: Do not rely upon the HPD presence pin

This blew up on Linus' machine because it errornously detected a vga
screen (without and edid and hence only the default modes), leading to
it's prompt removal:

commit 8f53369b75
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Fri Jun 8 14:53:06 2012 -0700

    Revert "drm/i915/crt: Do not rely upon the HPD presence pin"

Some digging around in Bspec shows the reason why load detect doesn't work on
newer chips - the legacy VGA load detect bit isn't wired up any longer:

Public Snb Bspec, Vol3 Part1, 1.1.1 ST00 Input Status 0, bit4:

"RGB Comparator / Sense. This bit is here for compatibility and will
always return one. Monitor detection must be done be done through the
programming of registers in the MMIO space.
0 = Below threshold
1 = Above threshold"

v2: Add a comment in the code that load detect on hotplug capable
machines is broken and pimp the commit message with a quote of Bspec
to show why.

Reported-and-tested-by: Matthieu LAVIE <boiteamadmax@hotmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50501
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-06-16 15:30:32 +02:00
..
accessibility
acpi Merge branch 'x86-trampoline-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-29 20:14:53 -07:00
amba arm-soc: driver specific updates 2012-05-26 12:22:27 -07:00
ata arm-soc: clock driver changes 2012-05-26 12:42:29 -07:00
atm
auxdisplay
base i2c: Split I2C_M_NOSTART support out of I2C_FUNC_PROTOCOL_MANGLING 2012-05-30 10:55:34 +02:00
bcma Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-05-24 11:54:29 -07:00
block Merge git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2012-05-30 11:17:19 -07:00
bluetooth Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-05-24 11:54:29 -07:00
cdrom
char drm/i915: call intel_enable_gtt 2012-06-12 22:21:07 +02:00
clk arm-soc: soc specific changes, part 2 2012-05-26 13:05:55 -07:00
clocksource
connector
cpufreq
cpuidle
crypto arm-soc: clock driver changes 2012-05-26 12:42:29 -07:00
dca
devfreq Power management updates for 3.5 2012-05-23 14:07:06 -07:00
dio
dma arm-soc: device tree conversions, part 2 2012-05-26 12:57:47 -07:00
edac Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac 2012-05-29 18:32:37 -07:00
eisa
extcon Driver core pull for 3.5-rc1 2012-05-22 16:02:13 -07:00
firewire IEEE 1394 (FireWire) subsystem updates post v3.4: 2012-05-24 12:57:47 -07:00
firmware
gpio Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2012-05-29 18:27:19 -07:00
gpu drm/i915/crt: Do not rely upon the HPD presence pin 2012-06-16 15:30:32 +02:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
hsi
hv Driver core pull for 3.5-rc1 2012-05-22 16:02:13 -07:00
hwmon hwmon/sch56xx: Depend on watchdog for watchdog core functions 2012-05-30 07:56:20 +02:00
hwspinlock
i2c i2c: Split I2C_M_NOSTART support out of I2C_FUNC_PROTOCOL_MANGLING 2012-05-30 10:55:34 +02:00
ide
idle
ieee802154 drivers/ieee802154: IEEE 802.15.4 loopback driver 2012-05-16 15:17:08 -04:00
iio
infiniband InfiniBand/RDMA changes for the 3.5 merge window: 2012-05-21 17:54:55 -07:00
input i2c: Split I2C_M_NOSTART support out of I2C_FUNC_PROTOCOL_MANGLING 2012-05-30 10:55:34 +02:00
iommu IOMMU Updates for Linux 3.5 2012-05-30 08:49:28 -07:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-05-24 11:54:29 -07:00
leds leds: add LM3533 LED driver 2012-05-29 16:22:32 -07:00
lguest
macintosh
md md updates for 3.5 2012-05-23 17:08:40 -07:00
media arm-soc: clock driver changes 2012-05-26 12:42:29 -07:00
memory
memstick
message MCA: delete all remaining traces of microchannel bus support. 2012-05-17 19:06:13 -04:00
mfd MFD changes for 3.5 2012-05-29 11:53:11 -07:00
misc MFD changes for 3.5 2012-05-29 11:53:11 -07:00
mmc arm-soc: device tree conversions, part 2 2012-05-26 12:57:47 -07:00
mtd Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2012-05-29 18:27:19 -07:00
net arm-soc: clock driver changes 2012-05-26 12:42:29 -07:00
nfc
nubus
of Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2012-05-29 18:27:19 -07:00
oprofile
parisc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
parport Driver core pull for 3.5-rc1 2012-05-22 16:02:13 -07:00
pci Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2012-05-29 18:27:19 -07:00
pcmcia
pinctrl arm-soc: soc specific changes, part 2 2012-05-26 13:05:55 -07:00
platform backlight: initialize struct backlight_properties properly 2012-05-29 16:22:30 -07:00
pnp
power MFD changes for 3.5 2012-05-29 11:53:11 -07:00
pps
ps3
ptp Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
rapidio
regulator MFD changes for 3.5 2012-05-29 11:53:11 -07:00
remoteproc IOMMU Updates for Linux 3.5 2012-05-30 08:49:28 -07:00
rpmsg
rtc drivers/rtc/rtc-s3c.c: fix compiler warning 2012-05-29 16:22:34 -07:00
s390 Merge branch 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2012-05-24 16:17:30 -07:00
sbus
scsi Merge branch 'delete-mca' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2012-05-23 17:12:06 -07:00
sfi
sh sh: intc: Kill off special reservation interface. 2012-05-22 19:07:55 +09:00
sn
spi arm-soc: soc specific changes, part 2 2012-05-26 13:05:55 -07:00
ssb ssb: add PCI IDs 0x4322 and 43222 2012-05-16 12:46:37 -04:00
staging mm/fs: route MADV_REMOVE to FALLOC_FL_PUNCH_HOLE 2012-05-29 16:22:22 -07:00
target Merge branch 'sbp-target-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2012-05-23 16:52:27 -07:00
tc
thermal
tty Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2012-05-29 18:27:19 -07:00
uio
usb arm-soc: clock driver changes 2012-05-26 12:42:29 -07:00
uwb
vhost Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-05-16 22:17:37 -04:00
video i2c: Split I2C_M_NOSTART support out of I2C_FUNC_PROTOCOL_MANGLING 2012-05-30 10:55:34 +02:00
virt
virtio virtio-mmio: Devices parameter parsing 2012-05-22 12:16:15 +09:30
vlynq
vme
w1 arm-soc: clock driver changes 2012-05-26 12:42:29 -07:00
watchdog watchdog: iTCO_wdt.c: fix printk format warnings 2012-05-30 08:16:48 +02:00
xen Merge branch 'x86-trampoline-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-29 20:14:53 -07:00
zorro
Kconfig Staging tree pull request for 3.5-rc1 2012-05-22 16:34:21 -07:00
Makefile arm-soc: driver specific updates 2012-05-26 12:22:27 -07:00