[Intel-gfx] Bug: Pipe A underrun on resolution switching on 830MG
Thomas Richter
thor at math.tu-berlin.de
Thu Jun 5 00:43:56 CEST 2014
Hi folks,
when switching resolutions with xrandr (or otherwise) on the 830MG
chipset, I usually get a "Pipe A underrun" error,
sometimes resulting in a completely black screen. To my understanding,
the internal screen is connected to pipe B on
this laptop, thus I wonder why I get the error. Thus, something seems to
be broken:
[ 406.282457] WARNING: CPU: 0 PID: 2048 at
drivers/gpu/drm/i915/intel_display.c:2148
intel_crtc_disable_planes+0x15f/0x170 [i915]()
[ 406.282463] Modules linked in: michael_mic arc4 ecb
lib80211_crypt_tkip lib80211_crypt_ccmp binfmt_misc fuse loop
firewire_sbp2 hid_generic usbhid hid snd_intel8x0 snd_ac97_codec
ac97_bus ipw2100 snd_pcm libipw sg cfg80211 i915 snd_seq snd_seq_device
snd_timer snd mousedev sr_mod firewire_ohci rfkill cdrom i2c_algo_bit
pcmcia firewire_core drm_kms_helper lib80211 soundcore crc_itu_t irda
uhci_hcd apanel yenta_socket pcmcia_rsrc input_polldev usbcore drm
i2c_i801 psmouse evdev 8139too pcspkr 8139cp mii pcmcia_core crc_ccitt
8250 fujitsu_laptop battery video lpc_ich serial_core mfd_core
usb_common intel_agp i2c_core intel_gtt led_class agpgart ac button
[ 406.282576] CPU: 0 PID: 2048 Comm: Xorg Tainted: G W
3.15.0-rc7+ #3
[ 406.282583] Hardware name: FUJITSU SIEMENS LIFEBOOK S Series/FJNB159,
BIOS Version 1.07 10/28/2002
[ 406.282589] c1316e2e c103451f c13aa868 00000000 00000800 f9092e08
00000864 f9049bcf
[ 406.282603] f9049bcf 00070180 f4a90000 f6b20000 00000000 c1034569
00000009 00000000
[ 406.282616] f9049bcf f5884aa0 18000000 00003286 00000000 f5a9d000
f6b20178 f6b20000
[ 406.282630] Call Trace:
[ 406.282645] [<c1316e2e>] ? dump_stack+0xa/0x13
[ 406.282659] [<c103451f>] ? warn_slowpath_common+0x7f/0xb0
[ 406.282709] [<f9049bcf>] ? intel_crtc_disable_planes+0x15f/0x170 [i915]
[ 406.282757] [<f9049bcf>] ? intel_crtc_disable_planes+0x15f/0x170 [i915]
[ 406.282768] [<c1034569>] ? warn_slowpath_null+0x19/0x20
[ 406.282816] [<f9049bcf>] ? intel_crtc_disable_planes+0x15f/0x170 [i915]
[ 406.282863] [<f9049c1a>] ? i9xx_crtc_disable+0x3a/0x620 [i915]
[ 406.282877] [<c10d8e20>] ? __pollwait+0xf0/0xf0
[ 406.282887] [<c10d8e20>] ? __pollwait+0xf0/0xf0
[ 406.282934] [<f903f78f>] ? intel_dump_pipe_config.isra.45+0x2f/0x3a0
[i915]
[ 406.282983] [<f904bbae>] ? __intel_set_mode+0x76e/0x14e0 [i915]
[ 406.283032] [<f904ef33>] ? intel_set_mode+0x23/0x40 [i915]
[ 406.283079] [<f904fcf3>] ? intel_crtc_set_config+0x863/0xc90 [i915]
[ 406.283095] [<c117a196>] ? idr_mark_full+0x46/0x50
[ 406.283105] [<c117a93e>] ? idr_alloc+0x7e/0xe0
[ 406.283143] [<f862c816>] ? drm_mode_set_config_internal+0x46/0xb0 [drm]
[ 406.283169] [<f862fc20>] ? drm_mode_setcrtc+0xc0/0x560 [drm]
[ 406.283216] [<f904723e>] ? intel_crtc_load_lut+0x10e/0x1a0 [i915]
[ 406.283242] [<f862fb60>] ? drm_mode_setplane+0x3f0/0x3f0 [drm]
[ 406.283262] [<f8622704>] ? drm_ioctl+0x1a4/0x5c0 [drm]
[ 406.283289] [<f862fb60>] ? drm_mode_setplane+0x3f0/0x3f0 [drm]
[ 406.283311] [<f8622560>] ? drm_copy_field+0x70/0x70 [drm]
[ 406.283322] [<c10d7fd0>] ? do_vfs_ioctl+0x70/0x540
[ 406.283334] [<c10c93c1>] ? vfs_read+0x101/0x140
[ 406.283345] [<c10d84e3>] ? SyS_ioctl+0x43/0x80
[ 406.283360] [<c131a72f>] ? sysenter_do_call+0x12/0x26
[ 406.283367] ---[ end trace ea667942c60a2cf6 ]---
[ 406.324991] [drm:i8xx_irq_handler] *ERROR* pipe A underrun
[ 413.437244] [drm:i8xx_irq_handler] *ERROR* pipe A underrun
Note that I *also* get a PIPE A underrun error on the boot console, and
occasionally a pipe B underrun error, again
on the boot console. The errors in the boot console appear regardless of
whether the pipe A quirk is enabled or not,
thus the problem seems to be somewhere in the mode switching code. Would
it be possible to switch a mode by
1) enabling pipe A, 2) switching, 3) disabling pipe A? Note again that
turning on pipe A with the quirk mode breaks
both the boot console and resume from ram, so that is not an alternative
either...
Greetings,
Thomas
More information about the Intel-gfx
mailing list