Bug 55458

Summary: [GM965/GL960 regression] plane B assertion failure
Product: DRI Reporter: max <manikulin>
Component: DRM/IntelAssignee: Daniel Vetter <daniel>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: medium CC: ben, chris, daniel, jbarnes, jirislaby
Version: XOrg git   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg
none
dmesg with drm.debug=0x0e
none
intel_reg_dumper none

Description max 2012-09-30 05:08:39 UTC
Created attachment 67865 [details]
dmesg

With recent drm-intel-experimental kernels taken from Ubuntu, e.g.
http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-experimental/2012-09-29-quantal/
commit 17dc92574b696ba07512f7e6cfb7941a6f873f45
and with a week old kernels as well, there are following messages in dmesg
(similar to Bug 49838 and Bug 51265 )

[   14.193606] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[   14.344127] [drm:intel_panel_setup_backlight] *ERROR* Failed to get maximum backlight value
                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[   14.345740] [drm] initialized overlay support

[   14.482396] usbcore: registered new interface driver btusb
[   14.600033] ------------[ cut here ]------------
[   14.600072] WARNING: at /home/apw/COD/linux/drivers/gpu/drm/i915/intel_display.c:1271 assert_planes_disabled+0xe4/0x120 [i915]()
[   14.600075] Hardware name: F80L
[   14.600077] plane B assertion failure, should be off on pipe B but is still active
[   14.600079] Modules linked in: snd_hda_intel(+) btusb snd_hda_codec bluetooth snd_hwdep snd_pcm snd_seq_midi snd_rawmidi i915(+) snd_seq_midi_event snd_seq snd_timer snd_seq_device psmouse asus_laptop drm_kms_helper snd drm cfg80211 coretemp serio_raw i2c_algo_bit sparse_keymap microcode(+) input_polldev mac_hid video lpc_ich soundcore snd_page_alloc binfmt_misc lp parport hid_a4tech usbhid hid r8169
[   14.600122] Pid: 494, comm: modprobe Not tainted 3.6.0-994-generic #201209290406
[   14.600125] Call Trace:
[   14.600134]  [<c1049392>] warn_slowpath_common+0x72/0xa0
[   14.600160]  [<f89866f4>] ? assert_planes_disabled+0xe4/0x120 [i915]
[   14.600186]  [<f89866f4>] ? assert_planes_disabled+0xe4/0x120 [i915]
[   14.600191]  [<c1049463>] warn_slowpath_fmt+0x33/0x40
[   14.600217]  [<f89866f4>] assert_planes_disabled+0xe4/0x120 [i915]
[   14.600244]  [<f898de9d>] intel_disable_pipe+0x1d/0x80 [i915]
[   14.600270]  [<f898e44d>] i9xx_crtc_disable+0xed/0x180 [i915]
[   14.600298]  [<f8993178>] intel_sanitize_crtc+0x228/0x2f0 [i915]
[   14.600304]  [<c12d528a>] ? snprintf+0x1a/0x20
[   14.600323]  [<f861a095>] ? drm_get_connector_name+0x45/0x50 [drm]
[   14.600350]  [<f899384c>] intel_modeset_setup_hw_state+0x29c/0x310 [i915]
[   14.600378]  [<f89938de>] intel_modeset_gem_init+0x1e/0x30 [i915]
[   14.600401]  [<f8968577>] i915_load_modeset_init+0xa7/0x150 [i915]
[   14.600423]  [<f8968710>] ? i915_switcheroo_set_state+0xa0/0xa0 [i915]
[   14.600446]  [<f896a9e0>] i915_driver_load+0x3f0/0x800 [i915]
[   14.600463]  [<f8616b73>] drm_get_pci_dev+0x143/0x260 [drm]
[   14.600469]  [<c103c2f8>] ? default_spin_lock_flags+0x8/0x10
[   14.600473]  [<c103c2f8>] ? default_spin_lock_flags+0x8/0x10
[   14.600501]  [<f89b5fcd>] i915_pci_probe+0x51/0x5b [i915]
[   14.600507]  [<c12f70ff>] local_pci_probe+0x5f/0xe0
[   14.600512]  [<c12f86a8>] pci_device_probe+0x68/0x90
[   14.600517]  [<c11b1dc7>] ? sysfs_create_link+0x17/0x20
[   14.600523]  [<c13b31bb>] really_probe+0x4b/0x1c0
[   14.600529]  [<c13bcde9>] ? pm_runtime_barrier+0x49/0xb0
[   14.600534]  [<c13b3453>] driver_probe_device+0x33/0x50
[   14.600538]  [<c13b3501>] __driver_attach+0x91/0xa0
[   14.600543]  [<c13b3470>] ? driver_probe_device+0x50/0x50
[   14.600547]  [<c13b1bd2>] bus_for_each_dev+0x42/0x70
[   14.600551]  [<c13b2eb1>] driver_attach+0x21/0x30
[   14.600556]  [<c13b3470>] ? driver_probe_device+0x50/0x50
[   14.600560]  [<c13b2aef>] bus_add_driver+0x16f/0x260
[   14.600565]  [<c12f86d0>] ? pci_device_probe+0x90/0x90
[   14.600569]  [<c13b39ba>] driver_register+0x6a/0x130
[   14.600575]  [<c103eb55>] ? change_page_attr_set_clr+0x225/0x250
[   14.600579]  [<c12f8472>] __pci_register_driver+0x42/0xa0
[   14.600595]  [<f8616d8d>] drm_pci_init+0xfd/0x110 [drm]
[   14.600617]  [<f89e605e>] i915_init+0x5e/0x60 [i915]
[   14.600621]  [<c1003034>] do_one_initcall+0x34/0x170
[   14.600626]  [<f89e6000>] ? 0xf89e5fff
[   14.600632]  [<c10a995d>] sys_init_module+0xad/0x210
[   14.600637]  [<c15ea75f>] sysenter_do_call+0x12/0x28
[   14.600640] ---[ end trace 797d1c9ef8c606ab ]---
[   14.638122] fbcon: inteldrmfb (fb0) is primary device
[   14.844883] psmouse serio4: synaptics: Touchpad model: 1, fw: 5.10, id: 0x258eb1, caps: 0xa04711/0x0/0x0, board id: 3655, fw id: 496546

[   15.076057] i915: fixme: max PWM is zero
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[   15.076175] Console: switching to colour frame buffer device 160x50
[   15.081510] fb0: inteldrmfb frame buffer device

They appeared before start of X server, external monitor (VGA) is not connected.

Hardware: Asus F80L laptop

lspci
00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (primary) (rev 03)
00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (secondary) (rev 03)

Kernel:
 3.6.0-999-generic #201209150406 SMP Sat Sep 15 08:13:31 UTC 2012 i686 i686 i686 GNU/Linux

Ubuntu 12.10 Quantal
Comment 1 max 2012-09-30 11:18:49 UTC
Created attachment 67877 [details]
dmesg with drm.debug=0x0e
Comment 2 max 2012-09-30 11:19:39 UTC
Created attachment 67878 [details]
intel_reg_dumper
Comment 3 Jiri Slaby 2012-10-05 08:29:27 UTC
With G33, I have:
plane A assertion failure, should be off on pipe A but is still active

This is 3.6.0-next-20121001.
Comment 4 Chris Wilson 2012-10-18 14:11:32 UTC
Should be fixed with commit fa55583797d12b10928a1813f3dcf066637caf5e
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Wed Oct 10 23:14:00 2012 +0200

    drm/i915: fixup the plane->pipe fixup code
    
    We need to check whether the _other plane is on our pipe, not whether
    our plane is on the other pipe. Otherwise if not both pipes/planes are
    active, we won't properly clean up the mess and set up our desired
    plane->pipe mapping.
Comment 5 max 2012-10-18 17:03:36 UTC
Sorry, Chris, but the bug is still in its place:

Ubuntu drm-intel-experimental kernel 2012-10-18

Linux version 3.6.0-994-generic (apw@gomeisa) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #201210180422 SMP Thu Oct 18 08:32:57 UTC 2012

commit c630119f43471a8ece356b01dabf07f944f453b3

[   21.716403] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[   21.716405] [drm] Driver supports precise vblank timestamp query.
[   21.716453] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[   21.730242] microcode: CPU0 sig=0x6fd, pf=0x80, revision=0xa1
[   21.868104] [drm:intel_panel_setup_backlight] *ERROR* Failed to get maximum backlight value
[   21.869624] [drm] initialized overlay support
[   22.124052] ------------[ cut here ]------------
[   22.124091] WARNING: at /home/apw/COD/linux/drivers/gpu/drm/i915/intel_display.c:1271 assert_planes_disabled+0xe4/0x120 [i915]()
[   22.124094] Hardware name: F80L                
[   22.124096] plane B assertion failure, should be off on pipe B but is still active
[   22.124098] Modules linked in: ath9k_common ath9k_hw snd_hda_intel(+) coretemp snd_hda_codec ath snd_hwdep snd_pcm microcode(+) i915(+) snd_seq_midi psmouse cfg80211 btusb drm_kms_helper snd_rawmidi
 drm snd_seq_midi_event snd_seq asus_laptop i2c_algo_bit bluetooth sparse_keymap input_polldev snd_timer snd_seq_device snd lp video serio_raw soundcore mac_hid lpc_ich parport snd_page_alloc hid_a4tec
h usbhid hid r8169
[   22.124143] Pid: 383, comm: modprobe Not tainted 3.6.0-994-generic #201210180422
[   22.124145] Call Trace:
[   22.124154]  [<c1049392>] warn_slowpath_common+0x72/0xa0
[   22.124182]  [<f898a8b4>] ? assert_planes_disabled+0xe4/0x120 [i915]
[   22.124209]  [<f898a8b4>] ? assert_planes_disabled+0xe4/0x120 [i915]
[   22.124214]  [<c1049463>] warn_slowpath_fmt+0x33/0x40
[   22.124241]  [<f898a8b4>] assert_planes_disabled+0xe4/0x120 [i915]
[   22.124269]  [<f89921fd>] intel_disable_pipe+0x1d/0x80 [i915]
[   22.124296]  [<f89927ad>] i9xx_crtc_disable+0xed/0x180 [i915]
[   22.124324]  [<f8997a18>] intel_sanitize_crtc+0x228/0x2f0 [i915]
[   22.124330]  [<c12d528a>] ? snprintf+0x1a/0x20
[   22.124349]  [<f87d7095>] ? drm_get_connector_name+0x45/0x50 [drm]
[   22.124377]  [<f899812c>] intel_modeset_setup_hw_state+0x2bc/0x340 [i915]
[   22.124406]  [<f89981ce>] intel_modeset_gem_init+0x1e/0x30 [i915]
[   22.124428]  [<f896c577>] i915_load_modeset_init+0xa7/0x150 [i915]
[   22.124451]  [<f896c710>] ? i915_switcheroo_set_state+0xa0/0xa0 [i915]
[   22.124475]  [<f896ea00>] i915_driver_load+0x3f0/0x800 [i915]
[   22.124491]  [<f87d3b73>] drm_get_pci_dev+0x143/0x260 [drm]
[   22.124497]  [<c103c2f8>] ? default_spin_lock_flags+0x8/0x10
[   22.124501]  [<c103c2f8>] ? default_spin_lock_flags+0x8/0x10
[   22.124530]  [<f89bb7cd>] i915_pci_probe+0x51/0x5b [i915]
[   22.124535]  [<c12f70ff>] local_pci_probe+0x5f/0xe0
[   22.124540]  [<c12f86a8>] pci_device_probe+0x68/0x90
[   22.124545]  [<c11b1dc7>] ? sysfs_create_link+0x17/0x20
[   22.124552]  [<c13b31bb>] really_probe+0x4b/0x1c0
[   22.124557]  [<c13bcde9>] ? pm_runtime_barrier+0x49/0xb0
[   22.124562]  [<c13b3453>] driver_probe_device+0x33/0x50
[   22.124566]  [<c13b3501>] __driver_attach+0x91/0xa0
[   22.124571]  [<c13b3470>] ? driver_probe_device+0x50/0x50
[   22.124575]  [<c13b1bd2>] bus_for_each_dev+0x42/0x70
[   22.124579]  [<c13b2eb1>] driver_attach+0x21/0x30
[   22.124583]  [<c13b3470>] ? driver_probe_device+0x50/0x50
[   22.124587]  [<c13b2aef>] bus_add_driver+0x16f/0x260
[   22.124592]  [<c12f86d0>] ? pci_device_probe+0x90/0x90
[   22.124597]  [<c13b39ba>] driver_register+0x6a/0x130
[   22.124602]  [<c103eb55>] ? change_page_attr_set_clr+0x225/0x250
[   22.124607]  [<c12f8472>] __pci_register_driver+0x42/0xa0
[   22.124622]  [<f87d3d8d>] drm_pci_init+0xfd/0x110 [drm]
[   22.124645]  [<f863205e>] i915_init+0x5e/0x60 [i915]
[   22.124649]  [<c1003034>] do_one_initcall+0x34/0x170
[   22.124655]  [<f8632000>] ? 0xf8631fff
[   22.124660]  [<c10a995d>] sys_init_module+0xad/0x210
[   22.124666]  [<c15eab9f>] sysenter_do_call+0x12/0x28
[   22.124669] ---[ end trace dffafa68dfe8e8e8 ]---
[   22.134713] microcode: CPU1 sig=0x6fd, pf=0x80, revision=0xa1
Comment 6 Chris Wilson 2012-10-18 19:58:18 UTC
(In reply to comment #5)
> Sorry, Chris, but the bug is still in its place:
> 
> Ubuntu drm-intel-experimental kernel 2012-10-18
> 
> Linux version 3.6.0-994-generic (apw@gomeisa) (gcc version 4.6.3
> (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #201210180422 SMP Thu Oct 18 08:32:57 UTC
> 2012
> 
> commit c630119f43471a8ece356b01dabf07f944f453b3

Doesn't contain the the patch I think fixes the assertion failure.
Comment 7 max 2012-10-21 14:58:42 UTC
My bad,
I have lost in so many branches.
Daniel's drm-intel-next-queued (as I guess) at least is used
by ubuntu drm-intel-experimental. It is easy to test it.
Build a random commit takes more than two hours on my laptop.
I have not test the proper commit yet, sorry.
Comment 8 Chris Wilson 2012-10-23 10:33:25 UTC
max. Daniel has rebased dinq on 3.7-rc2 and so I presume drm-intel-experimental will follow suit (not sure if it is based on dinq or din).
Comment 9 max 2012-10-23 17:25:26 UTC
Thank you very much. 2012-10-23-raring kernel from Ubuntu's
drm-intel-experimental is the most stable build since 12.04 release.
There is no call trace in dmesg output. Today I was not
lucky enough to get kernel/GPU hang or at least messy stale
desktop image in unity+compiz with vblank flood in Xorg.0.log.

However now it is obvious that another regression was introduced
last month or so. It does not connected neither to this bug nor vblank
issues. External monitor does not go to power saving mode after
image is switched to LVDS1. Instead it shows flickered red horizontal
stripe at random position as it was mentioned in
https://bugs.freedesktop.org/show_bug.cgi?id=51616#c11
I will report it as a separate bug later.

Now I can confirm that this bug is fixed.

P.S. Does "din" means drm-intel-nest or drm-intel-nightly?
Comment 10 Daniel Vetter 2012-10-23 18:34:20 UTC
Thanks for the confirmation, closing this as fixed.

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.