Chris Wilson
c9976dcf55
drm/i915: Only apply DPMS to the encoder if enabled
The current test for an attached enabled encoder fails if we have
multiple connectors aliased to the same encoder - both connectors
believe they own the enabled encoder and so we attempt to both enable
and disable DPMS on the encoder, leading to hilarity and an OOPs:
[ 354.803064] WARNING: CPU: 0 PID: 482 at
/usr/src/linux/dist/3.11.2/drivers/gpu/drm/i915/intel_display.c:3869 intel_modeset_check_state+0x764/0x770 [i915]()
[ 354.803064] wrong connector dpms state
[ 354.803084] Modules linked in: nfsd auth_rpcgss oid_registry exportfs nfs lockd sunrpc xt_nat iptable_nat nf_nat_ipv4 nf_nat xt_limit xt_LOG xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 ipt_REJECT ipv6 xt_recent xt_conntrack nf_conntrack iptable_filter ip_tables x_tables snd_hda_codec_realtek snd_hda_codec_hdmi x86_pkg_temp_thermal snd_hda_intel coretemp kvm_intel snd_hda_codec i915 kvm snd_hwdep snd_pcm_oss snd_mixer_oss crc32_pclmul snd_pcm crc32c_intel e1000e intel_agp igb ghash_clmulni_intel intel_gtt aesni_intel cfbfillrect aes_x86_64 cfbimgblt lrw cfbcopyarea drm_kms_helper ptp video thermal processor gf128mul snd_page_alloc drm snd_timer glue_helper 8250_pci snd pps_core ablk_helper agpgart cryptd sg soundcore fan i2c_algo_bit sr_mod thermal_sys 8250 i2c_i801 serial_core
hwmon cdrom i2c_core evdev button
[ 354.803086] CPU: 0 PID: 482 Comm: kworker/0:1 Not tainted 3.11.2 #1
[ 354.803087] Hardware name: Supermicro X10SAE/X10SAE, BIOS 1.00 05/03/2013 [ 354.803091] Workqueue: events console_callback
[ 354.803092] 0000000000000009 ffff88023611db48 ffffffff814048ac ffff88023611db90
[ 354.803093] ffff88023611db80 ffffffff8103d4e3 ffff880230d82800 ffff880230f9b800
[ 354.803094] ffff880230f99000 ffff880230f99448 ffff8802351c0e00 ffff88023611dbe0
[ 354.803094] Call Trace:
[ 354.803098] [<ffffffff814048ac>] dump_stack+0x54/0x8d
[ 354.803101] [<ffffffff8103d4e3>] warn_slowpath_common+0x73/0x90
[ 354.803103] [<ffffffff8103d547>] warn_slowpath_fmt+0x47/0x50
[ 354.803109] [<ffffffffa089f1be>] ? intel_ddi_connector_get_hw_state+0x5e/0x110 [i915]
[ 354.803114] [<ffffffffa0896974>] intel_modeset_check_state+0x764/0x770 [i915]
[ 354.803117] [<ffffffffa08969bb>] intel_connector_dpms+0x3b/0x60 [i915]
[ 354.803120] [<ffffffffa037e1d0>] drm_fb_helper_dpms.isra.11+0x120/0x160 [drm_kms_helper]
[ 354.803122] [<ffffffffa037e24e>] drm_fb_helper_blank+0x3e/0x80 [drm_kms_helper]
[ 354.803123] [<ffffffff812116c2>] fb_blank+0x52/0xc0
[ 354.803125] [<ffffffff8121e04b>] fbcon_blank+0x21b/0x2d0
[ 354.803127] [<ffffffff81062243>] ? update_rq_clock.part.74+0x13/0x30
[ 354.803129] [<ffffffff81047486>] ? lock_timer_base.isra.30+0x26/0x50
[ 354.803130] [<ffffffff810472b2>] ? internal_add_timer+0x12/0x40
[ 354.803131] [<ffffffff81047f48>] ? mod_timer+0xf8/0x1c0
[ 354.803133] [<ffffffff81266d61>] do_unblank_screen+0xa1/0x1c0
[ 354.803134] [<ffffffff81268087>] poke_blanked_console+0xc7/0xd0
[ 354.803136] [<ffffffff812681cf>] console_callback+0x13f/0x160
[ 354.803137] [<ffffffff81053258>] process_one_work+0x148/0x3d0
[ 354.803138] [<ffffffff81053f19>] worker_thread+0x119/0x3a0
[ 354.803140] [<ffffffff81053e00>] ? manage_workers.isra.30+0x2a0/0x2a0
[ 354.803141] [<ffffffff8105994b>] kthread+0xbb/0xc0
[ 354.803142] [<ffffffff81059890>] ? kthread_create_on_node+0x120/0x120
[ 354.803144] [<ffffffff8140b32c>] ret_from_fork+0x7c/0xb0
[ 354.803145] [<ffffffff81059890>] ? kthread_create_on_node+0x120/0x120
This regression goes back to the big modeset rework and the conversion
to the new dpms helpers which started with:
commit 5ab432ef49
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date: Sat Jun 30 08:59:56 2012 +0200
drm/i915/hdmi: convert to encoder->disable/enable
Fixes: igt/kms_flip/dpms-off-confusion
Reported-and-tested-by: Wakko Warner <wakko@animx.eu.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68030
Link: http://lkml.kernel.org/r/20130928185023.GA21672@animx.eu.org
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: stable@vger.kernel.org
[danvet: Add regression citation, mention the igt testcase this fixes
and slap a cc: stable on the patch.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
2013-10-03 22:47:39 +02:00 |
| .. |
|
accessibility
|
|
|
|
acpi
|
ACPI / scan: fix typo in comments of acpi_bus_unregister_driver()
|
2013-09-25 19:46:48 +02:00 |
|
amba
|
|
|
|
ata
|
update contact information for Mikael Pettersson
|
2013-09-25 13:27:42 -07:00 |
|
atm
|
atm: nicstar: fix regression made by previous patch
|
2013-09-15 22:18:55 -04:00 |
|
auxdisplay
|
|
|
|
base
|
driver core : Fix use after free of dev->parent in device_shutdown
|
2013-09-26 14:46:11 -07:00 |
|
bcma
|
bcma: fix error code handling on 64 Bit systems
|
2013-09-09 14:44:33 -04:00 |
|
block
|
cciss: fix info leak in cciss_ioctl32_passthru()
|
2013-09-24 17:00:26 -07:00 |
|
bluetooth
|
|
|
|
bus
|
ARM: SoC platform changes for 3.12
|
2013-09-06 13:30:06 -07:00 |
|
cdrom
|
|
|
|
char
|
Bug-fixes:
|
2013-09-25 15:50:53 -07:00 |
|
clk
|
The common clk framework changes for 3.12 are dominated by clock driver
|
2013-09-09 15:49:04 -07:00 |
|
clocksource
|
clocksource: em_sti: Set cpu_possible_mask to fix SMP broadcast
|
2013-09-26 02:31:04 +02:00 |
|
connector
|
|
|
|
cpufreq
|
cpufreq: exynos5440: Fix potential NULL pointer dereference
|
2013-09-25 03:25:58 +02:00 |
|
cpuidle
|
ACPI and power management fixes for 3.12-rc1
|
2013-09-12 11:22:45 -07:00 |
|
crypto
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
|
2013-09-07 12:53:35 +10:00 |
|
dca
|
|
|
|
devfreq
|
|
|
|
dio
|
|
|
|
dma
|
Remove GENERIC_HARDIRQ config option
|
2013-09-13 15:09:52 +02:00 |
|
edac
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
|
2013-09-06 11:14:33 -07:00 |
|
eisa
|
|
|
|
extcon
|
Driver core patches for 3.12-rc1
|
2013-09-03 11:37:15 -07:00 |
|
firewire
|
|
|
|
firmware
|
firmware/dmi_scan: drop OOM messages
|
2013-09-11 15:58:51 -07:00 |
|
fmc
|
|
|
|
gpio
|
Remove GENERIC_HARDIRQ config option
|
2013-09-13 15:09:52 +02:00 |
|
gpu
|
drm/i915: Only apply DPMS to the encoder if enabled
|
2013-10-03 22:47:39 +02:00 |
|
hid
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
|
2013-09-17 21:54:05 -04:00 |
|
hsi
|
|
|
|
hv
|
Drivers: hv: vmbus: Terminate vmbus version negotiation on timeout
|
2013-09-26 14:20:22 -07:00 |
|
hwmon
|
hwmon: (applesmc) Check key count before proceeding
|
2013-09-26 03:48:43 -07:00 |
|
hwspinlock
|
|
|
|
i2c
|
i2c: ismt: initialize DMA buffer
|
2013-09-28 16:32:12 +02:00 |
|
ide
|
ide: sgiioc4: Staticize ioc4_ide_attach_one()
|
2013-09-05 15:21:30 -04:00 |
|
idle
|
|
|
|
iio
|
iio:buffer_cb: Add missing iio_buffer_init()
|
2013-09-21 12:52:50 +01:00 |
|
infiniband
|
Remove GENERIC_HARDIRQ config option
|
2013-09-13 15:09:52 +02:00 |
|
input
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
|
2013-09-15 07:13:39 -04:00 |
|
iommu
|
IOMMU Updates for Linux v3.12
|
2013-09-12 11:29:26 -07:00 |
|
ipack
|
|
|
|
irqchip
|
ARM: SoC late changes for v3.12
|
2013-09-09 16:35:29 -07:00 |
|
isdn
|
isdn: hfcpci_softirq: get func return to suppress compiler warning
|
2013-09-15 22:27:04 -04:00 |
|
leds
|
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds
|
2013-09-12 11:35:33 -07:00 |
|
lguest
|
lguest: fix guest kernel stack overflow when TF bit set.
|
2013-09-06 08:09:27 +09:30 |
|
macintosh
|
|
|
|
mailbox
|
mailbox: remove unnecessary platform_set_drvdata()
|
2013-09-18 12:02:00 -07:00 |
|
md
|
A set of device-mapper fixes for 3.12.
|
2013-09-25 15:12:46 -07:00 |
|
media
|
Remove GENERIC_HARDIRQ config option
|
2013-09-13 15:09:52 +02:00 |
|
memory
|
ARM: SoC platform changes for 3.12
|
2013-09-06 13:30:06 -07:00 |
|
memstick
|
memstick: add support for legacy memorysticks
|
2013-09-11 15:59:35 -07:00 |
|
message
|
|
|
|
mfd
|
Remove GENERIC_HARDIRQ config option
|
2013-09-13 15:09:52 +02:00 |
|
misc
|
mei: cancel stall timers in mei_reset
|
2013-09-26 13:56:53 -07:00 |
|
mmc
|
Remove GENERIC_HARDIRQ config option
|
2013-09-13 15:09:52 +02:00 |
|
mtd
|
mtd: nand: pxa3xx: Remove unneeded ifdef CONFIG_OF
|
2013-09-17 09:08:14 -07:00 |
|
net
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
|
2013-09-19 13:57:28 -05:00 |
|
nfc
|
|
|
|
ntb
|
ntb: clean up unnecessary MSI/MSI-X capability find
|
2013-09-05 11:08:01 -07:00 |
|
nubus
|
|
|
|
of
|
Merge branch 'for-v3.12-fix' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping
|
2013-09-11 19:11:59 -07:00 |
|
oprofile
|
oprofile: get rid of pointless forward declarations of struct super_block
|
2013-09-03 22:52:48 -04:00 |
|
parisc
|
PCI changes for the v3.12 merge window:
|
2013-09-03 16:24:35 -07:00 |
|
parport
|
|
|
|
pci
|
PCI: Workaround missing pci_set_master in pci drivers
|
2013-09-28 13:25:30 -07:00 |
|
pcmcia
|
|
|
|
pinctrl
|
PTR_RET() is a weird name, and led to some confusing usage. We ended
|
2013-09-04 17:31:11 -07:00 |
|
platform
|
Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86
|
2013-09-15 17:42:59 -04:00 |
|
pnp
|
pnp: change pnp bus pm_ops to invoke pnp driver dev_pm_ops if specified
|
2013-09-11 15:58:15 -07:00 |
|
power
|
Remove GENERIC_HARDIRQ config option
|
2013-09-13 15:09:52 +02:00 |
|
pps
|
Remove GENERIC_HARDIRQ config option
|
2013-09-13 15:09:52 +02:00 |
|
ps3
|
|
|
|
ptp
|
|
|
|
pwm
|
ARM: SoC cleanups for 3.12
|
2013-09-06 13:21:16 -07:00 |
|
rapidio
|
|
|
|
regulator
|
PTR_RET() is a weird name, and led to some confusing usage. We ended
|
2013-09-04 17:31:11 -07:00 |
|
remoteproc
|
|
|
|
reset
|
|
|
|
rpmsg
|
|
|
|
rtc
|
rtc: simplify devm_request_mem_region/devm_ioremap
|
2013-09-11 15:58:59 -07:00 |
|
s390
|
s390/vmcore: use vmcore for zfcpdump
|
2013-09-11 15:59:15 -07:00 |
|
sbus
|
|
|
|
scsi
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
|
2013-09-19 13:57:28 -05:00 |
|
sfi
|
|
|
|
sh
|
|
|
|
sn
|
|
|
|
spi
|
Remove GENERIC_HARDIRQ config option
|
2013-09-13 15:09:52 +02:00 |
|
ssb
|
|
|
|
staging
|
staging: r8188eu: Add new device ID
|
2013-09-26 16:44:45 -07:00 |
|
target
|
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
|
2013-09-12 16:11:45 -07:00 |
|
tc
|
|
|
|
thermal
|
drivers: thermal: add check when unregistering cpu cooling
|
2013-09-03 09:10:34 -04:00 |
|
tty
|
TTY/Serial fixes for 3.12-rc3
|
2013-09-29 13:47:00 -07:00 |
|
uio
|
Driver core patches for 3.12-rc1
|
2013-09-03 11:37:15 -07:00 |
|
usb
|
usb: dwc3: add support for Merrifield
|
2013-09-26 16:22:29 -07:00 |
|
uwb
|
|
|
|
vfio
|
vfio-pci: PCI hot reset interface
|
2013-09-04 11:28:04 -06:00 |
|
vhost
|
vhost-scsi: whitespace tweak
|
2013-09-17 22:56:09 +03:00 |
|
video
|
video: mxsfb: Add missing break
|
2013-09-26 15:33:23 +03:00 |
|
virt
|
|
|
|
virtio
|
virtio_pci: pm: Use CONFIG_PM_SLEEP instead of CONFIG_PM
|
2013-09-09 10:02:53 +09:30 |
|
vlynq
|
|
|
|
vme
|
|
|
|
w1
|
Remove GENERIC_HARDIRQ config option
|
2013-09-13 15:09:52 +02:00 |
|
watchdog
|
Merge git://www.linux-watchdog.org/linux-watchdog
|
2013-09-12 08:45:53 -07:00 |
|
xen
|
Bug-fixes:
|
2013-09-25 15:50:53 -07:00 |
|
zorro
|
|
|
|
Kconfig
|
|
|
|
Makefile
|
|
|