linux-hardened/drivers
Jesse Barnes 40a518d9f1 drm: initial KMS config fixes
When mode setting is first initialized, the driver will call into
drm_helper_initial_config() to set up an initial output and framebuffer
configuration.  This routine is responsible for probing the available
connectors, encoders, and crtcs, looking for modes and putting together
something reasonable (where reasonable is defined as "allows kernel
messages to be visible on as many displays as possible").

However, the code was a bit too aggressive in setting default modes when
none were found on a given connector.  Even if some connectors had modes,
any connectors found lacking modes would have the default 800x600 mode added
to their mode list, which in some cases could cause problems later down the
line.  In my case, the LVDS was perfectly available, but the initial config
code added 800x600 modes to both of the detected but unavailable HDMI
connectors (which are on my non-existent docking station).  This ended up
preventing later code from setting a mode on my LVDS, which is bad.

This patch fixes that behavior by making the initial config code walk
through the connectors first, counting the available modes, before it decides
to add any default modes to a possibly connected output.  It also fixes the
logic in drm_target_preferred() that was causing zeroed out modes to be set
as the preferred mode for a given connector, even if no modes were available.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2009-01-16 18:40:54 +10:00
..
accessibility
acpi Merge branch 'drivers-platform' into release 2009-01-09 04:56:56 -05:00
amba [ARM] Fix realview build 2009-01-08 16:29:41 +00:00
ata Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2009-01-09 11:55:14 -08:00
atm generic swap(): iphase: rename swap() to swap_byte_order() 2009-01-08 08:31:14 -08:00
auxdisplay
base Revert "driver core: create a private portion of struct device" 2009-01-09 15:06:12 -08:00
block Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 2009-01-07 17:23:53 -08:00
bluetooth
cdrom
char Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 2009-01-09 13:56:06 -08:00
clocksource Merge branch 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-02 11:44:09 -08:00
connector
cpufreq Merge branch 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-10 06:12:18 -08:00
cpuidle cpuidle: Add decaying history logic to menu idle predictor 2008-12-30 18:48:01 -05:00
crypto
dca dmaengine: bump initcall level to arch_initcall 2009-01-06 11:38:22 -07:00
dio
dma ioat: fix self test for multi-channel case 2009-01-06 11:38:22 -07:00
edac edac: driver for i5400 MCH (update) 2009-01-06 15:59:30 -08:00
eisa
firewire firewire: core: fix sleep in atomic context due to driver core change 2009-01-09 23:22:32 +01:00
firmware Make various things static 2009-01-08 08:31:15 -08:00
gpio Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2009-01-06 17:02:07 -08:00
gpu drm: initial KMS config fixes 2009-01-16 18:40:54 +10:00
hid Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 2009-01-07 15:37:24 -08:00
hwmon LIS3LV02D: separate the core from HP ACPI API 2009-01-09 16:54:42 -08:00
i2c Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 2009-01-07 15:37:24 -08:00
ide Merge branch 'linus' into release 2009-01-09 03:39:43 -05:00
idle i7300_idle: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:39 -08:00
ieee1394 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-01-08 11:05:59 -08:00
infiniband fix similar typos to successfull 2009-01-08 08:31:15 -08:00
input [ARM] fix pxa930_trkball build errors 2009-01-08 16:29:44 +00:00
isdn mISDN: Add HFC USB driver 2009-01-09 22:44:30 +01:00
leds leds: ledtrig-timer - on deactivation hardware blinking should be disabled 2009-01-08 20:58:01 +00:00
lguest lguest: do not statically allocate root device 2009-01-06 10:44:34 -08:00
macintosh Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-01-07 11:31:52 -08:00
mca
md md: don't retry recovery of raid1 that fails due to error on source drive. 2009-01-09 08:31:11 +11:00
media Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-01-08 11:05:59 -08:00
memstick memstick: annotate endianness of attribute structs 2009-01-09 16:54:41 -08:00
message Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2009-01-08 16:27:31 -08:00
mfd leds: Add WM8350 LED driver 2009-01-08 12:38:58 +00:00
misc Merge branch 'drivers-platform' into release 2009-01-09 04:56:56 -05:00
mmc Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx 2009-01-09 11:52:14 -08:00
mtd Merge git://git.infradead.org/mtd-2.6 2009-01-09 12:37:15 -08:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-01-08 14:25:41 -08:00
nubus
of
oprofile Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile 2009-01-09 12:43:06 -08:00
parisc Merge git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6 2009-01-09 11:53:07 -08:00
parport parport: ieee1284: use del_timer_sync() in parport_wait_event() 2009-01-06 15:59:31 -08:00
pci Merge branch 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-10 06:12:18 -08:00
pcmcia
platform hp-wmi: handle rfkill_register() failure 2009-01-09 16:54:41 -08:00
pnp Merge branch 'linus' into release 2009-01-09 03:39:43 -05:00
power power-supply: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:38 -08:00
ps3
rapidio rapidio: remove excess kernel-doc notation 2009-01-06 15:59:28 -08:00
regulator Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds 2009-01-09 13:55:37 -08:00
rtc Merge git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6 2009-01-09 11:53:07 -08:00
s390 [S390] qdio: fix broken pointer in case of CONFIG_DEBUG_FS is disabled 2009-01-09 12:15:07 +01:00
sbus sparc64: Fix unsigned long long warnings in drivers. 2009-01-06 13:20:38 -08:00
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2009-01-08 16:27:31 -08:00
serial Merge master.kernel.org:/home/rmk/linux-2.6-arm 2009-01-08 14:25:00 -08:00
sh
sn
spi hwmon: (lm70) Code streamlining and cleanup 2009-01-07 16:37:34 +01:00
ssb
staging Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2009-01-07 17:22:04 -08:00
tc
telephony
thermal thermal: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:37 -08:00
uio UIO: Pass information about ioports to userspace (V2) 2009-01-06 10:44:44 -08:00
usb Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-01-08 11:05:59 -08:00
uwb Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-01-08 11:05:59 -08:00
video Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight 2009-01-09 13:55:13 -08:00
virtio virtio: do not statically allocate root device 2009-01-06 10:44:34 -08:00
w1 w1: send status messages after command processing 2009-01-08 08:31:14 -08:00
watchdog [WATCHDOG] Add support for the WM8350 watchdog 2008-12-31 16:12:54 +00:00
xen xen: add xenfs to allow usermode <-> Xen interaction 2009-01-08 08:30:59 -08:00
zorro
Kconfig
Makefile Merge branch 'drivers-platform' into release 2009-01-09 04:56:56 -05:00