When running the current (1.7.2.5?) version of the intel drm kernel module on an old IBM R31 Thinkpad, the following kernel failure is generated: Kernel failure message 1: ------------[ cut here ]------------ WARNING: at drivers/gpu/drm/i915/intel_display.c:963 assert_plane+0x70/0x80 [i915]() Hardware name: 2656M1G plane B assertion failure (expected off, current on) Modules linked in: mperf cpufreq_userspace cpufreq_powersave cpufreq_stats cpufreq_conservative fuse loop aes_generic airo_cs airo snd_intel8x0 snd_ac97_codec i915 ac97_bus pcmcia snd_pcm drm_kms_helper sg drm snd_seq yenta_socket e100 mii sr_mod snd_timer pcmcia_rsrc psmouse pcmcia_core cdrom serio_raw pcspkr battery processor snd_seq_device evdev snd shpchp soundcore i2c_i801 ac i2c_algo_bit rng_core i2c_core uhci_hcd pci_hotplug usbcore usb_common button video microcode snd_page_alloc ext3 jbd mbcache sd_mod ata_generic ata_piix libata scsi_mod thermal thermal_sys hwmon Pid: 985, comm: Xorg Tainted: G W 3.4.0 #25 Call Trace: [<c102a3bd>] warn_slowpath_common+0x6d/0xa0 [<f8ca45c0>] ? assert_plane+0x70/0x80 [i915] [<f8ca45c0>] ? assert_plane+0x70/0x80 [i915] [<c102a46e>] warn_slowpath_fmt+0x2e/0x30 [<f8ca45c0>] assert_plane+0x70/0x80 [i915] [<f8caa06b>] intel_crtc_disable+0x5b/0xa0 [i915] [<f8aa82ef>] drm_helper_disable_unused_functions+0xef/0x140 [drm_kms_helper] [<f8aa9c86>] drm_crtc_helper_set_config+0x856/0x9b0 [drm_kms_helper] [<f8a1c39d>] drm_mode_setcrtc+0x19d/0x530 [drm] [<c1045760>] ? wake_up_bit+0x60/0x60 [<f8a0de32>] drm_ioctl+0x282/0x550 [drm] [<f8a1c200>] ? drm_mode_attachmode_ioctl+0x100/0x100 [drm] [<c10c5921>] ? mmap_region+0x1e1/0x4b0 [<f8a0dbb0>] ? drm_version+0x90/0x90 [drm] [<c10e8eae>] do_vfs_ioctl+0x7e/0x570 [<c10dae15>] ? vfs_read+0xf5/0x140 [<c114bd22>] ? tomoyo_file_ioctl+0x12/0x20 [<c10e940f>] sys_ioctl+0x6f/0x80 [<c1302d50>] sysenter_do_call+0x12/0x26 ---[ end trace e7382c815524a93f ]--- As found in the description, this is (early generation) intel 830M chipset. The problem is related to the bios setting: When this warning was recorded, the bios setting was to display the boot screen on [CRT] even though no CRT was connected to the VGA output. When switching back to [LCD], the kernel warning vanishes. This is likely because the bios activates pipe B for the VGA output, though possibly never disables it again when switching back to the LCD when load detection shows that nothing is detected to this output. The warning is at this time irritating, though not fatal. If requested, a more complete boot log may be provided (as soon as I have again access to the machine). Note that this is one of the early chipset revisions which tend to hang the GPU. The intel Xorg driver correctly enables shadow buffering to work around this.
Can you attach the full drm.debug=6 dmesg upto this assert? During boot we should be sanitizing the registers and mode config leftover by the BIOS so I am curious as to whereabout in the sequence we trigger the assert.
This seems to be a Heisenbug. I tried very hard today to reproduce it, including switching back to the VGA frame buffer, enabling the "CRT" output in the bios, though without much luck. )-:
Can you please try the modeset-rework-pipea-fix git branch from my personal repo at http://cgit.freedesktop.org/~danvet/drm Please boot with drm.debug=0xe and also attach the full dmesg.
Am 04.07.2012 18:40, schrieb bugzilla-daemon@freedesktop.org: > https://bugs.freedesktop.org/show_bug.cgi?id=51265 > > Daniel Vetter<daniel@ffwll.ch> changed: > > What |Removed |Added > ---------------------------------------------------------------------------- > Status|NEW |NEEDINFO > > --- Comment #3 from Daniel Vetter<daniel@ffwll.ch> 2012-07-04 09:40:15 PDT --- > Can you please try the modeset-rework-pipea-fix git branch from my personal > repo at http://cgit.freedesktop.org/~danvet/drm > > Please boot with drm.debug=0xe and also attach the full dmesg. > Thanks, I will, though I probably won't have the time this week. Please have some patience - sorry. Greetings, Thomas
Please try the plain modeset-rework branch from the same git repo. The pipe A quirk is now integrated, and that branch contains many more fixes.
Ping about the test-result for the modeset-rework ...
Created attachment 65966 [details] dmesg output
Unfortunately, not any better - just worse. *) On the first start, panning did not work, and I got a message that the screen size was not adjusted, *) on the second start I got the attached kernel warning (see dmesg output), *) starting xvideo more than once still crashes the system. Sorry for the bad news.
Can you please boot with drm.debug=0xe added to your kernel cmdline, reproduce the WARN on the modeset-rework branch and then attach the full dmesg (please make sure it's not cut off at the beginning)?
Created attachment 66004 [details] dmesg output
Unfortunately, this specific bug is not always reproducable, so I cannot just go, reboot and start from scratch. The kernel output as attached I all I can offer. It should be complete, though. The important part seems to be the following: [ 22.572217] ------------[ cut here ]------------ [ 22.572286] WARNING: at drivers/gpu/drm/i915/intel_display.c:3567 intel_connector_check_state+0xe6/0x1d0 [i915]() [ 22.572290] Hardware name: 2656M1G [ 22.572293] encoder active on the wrong pipe [ 22.572296] Modules linked in: fuse loop snd_intel8x0 i915 snd_ac97_codec ac97_bus e100 snd_pcm drm_kms_helper snd_seq sg drm mii i2c_i801 pcmcia snd_timer snd_seq_device uhci_hcd snd sr_mod evdev cdrom microcode psmouse yenta_socket pcmcia_rsrc soundcore usbcore snd_page_alloc pcspkr serio_raw i2c_algo_bit i2c_core pcmcia_core shpchp pci_hotplug rng_core usb_common processor video button battery ac ext3 jbd mbcache sd_mod ata_generic ata_piix libata scsi_mod thermal thermal_sys hwmon [ 22.572375] Pid: 926, comm: Xorg Tainted: G W 3.6.0-rc2+ #2 [ 22.572378] Call Trace: [ 22.572397] [<c102ebdd>] warn_slowpath_common+0x6d/0xa0 [ 22.572417] [<f8c70536>] ? intel_connector_check_state+0xe6/0x1d0 [i915] [ 22.572435] [<f8c70536>] ? intel_connector_check_state+0xe6/0x1d0 [i915] [ 22.572443] [<c102ec8e>] warn_slowpath_fmt+0x2e/0x30 [ 22.572461] [<f8c70536>] intel_connector_check_state+0xe6/0x1d0 [i915] [ 22.572482] [<f8c70657>] intel_modeset_check_state+0x37/0x440 [i915] [ 22.572509] [<f8a0e659>] ? drm_mode_destroy+0x19/0x20 [drm] [ 22.572529] [<f8c765c9>] intel_set_mode+0x789/0xa80 [i915] [ 22.572554] [<f8c7a927>] intel_get_load_detect_pipe+0x2a7/0x3a0 [i915] [ 22.572566] [<c118295b>] ? string+0x3b/0xe0 [ 22.572585] [<f8c7d072>] ? intel_crt_detect_ddc+0xa2/0xc0 [i915] [ 22.572604] [<f8c7d072>] ? intel_crt_detect_ddc+0xa2/0xc0 [i915] [ 22.572623] [<f8c7d355>] intel_crt_detect+0x2c5/0x750 [i915] [ 22.572631] [<c11840ca>] ? snprintf+0x1a/0x20 [ 22.572641] [<f8acb258>] drm_helper_probe_single_connector_modes+0x248/0x310 [drm_kms_helper] [ 22.572656] [<f8a10cc7>] drm_mode_getconnector+0x2c7/0x320 [drm] [ 22.572670] [<c117bfb8>] ? idr_get_new_above+0x8/0x40 [ 22.572682] [<f8a02de2>] drm_ioctl+0x282/0x550 [drm] [ 22.572696] [<f8a10a00>] ? drm_mode_getencoder+0xb0/0xb0 [drm] [ 22.572708] [<f8a02b60>] ? drm_version+0x90/0x90 [drm] [ 22.572717] [<c10f309e>] do_vfs_ioctl+0x7e/0x570 [ 22.572725] [<c10e440c>] ? vfs_write+0xfc/0x140 [ 22.572737] [<c11575d2>] ? tomoyo_file_ioctl+0x12/0x20 [ 22.572743] [<c10f35ff>] sys_ioctl+0x6f/0x80 [ 22.572757] [<c1316450>] sysenter_do_call+0x12/0x26 [ 22.572761] ---[ end trace f75b507d5217cfb3 ]--- I'll try to get a bit more out of it, but as said, I cannot really promise much.
Np, I have a few other i830M reporters around and they seem to be able to reproduced much easier. I'll try to cook up a patch, but need to analyze the failure case a bit first.
Created attachment 66015 [details] dmesg output Now with drm.debug=0x0e
The above debug output contains now all the requested information. I also found a way how to reproduce it (if it helps others): *) boot without the VGA output being connected, *) enable panning *) press Fn-F7 to activate the VGA output on the R31: The screen will start to flicker unbearably, possibly trying to detect a monitor on the output that isn't there. *) press Fn-F7 again - more flickering, and the wrong resolution on what is visible (sometimes) *) press Fn-F7 again - you now get a stable picture, but without the panning, and a message that the screen dimensions are not supported. dmesg output is above.
Ok, I've updated the modeset-rework branch with a fix, which hopefully at least squashes one of the WARNs you're seeing. Please test and attach again a dmesg with drm.debug=0xe, thanks.
Ok, thanks for the update. I will provide debug output soon. This update is *somewhat* better, but still fails to work reasonable. *) With gnome, I'm using xrandr to enable panning in the desktop (2048x1536 on a 1024x768 screen). I still get a warning that the monitor does not support this resolution, even though the monitor enables panning. *) Scrolling in panning does not work correctly - even if you scroll to the edge of the screen, the monitor position does not reflect the scroll position correctly, quite some pixels are missing meaning that the apparent (visible) mouse position does not agree with the real mouse position - IOW, the desktop is unusable. Initially, the position is correct, but as soon as you move the mouse to pan the screen, the scroll position only updates incompletely. By moving the mouse left and right, with some luck, you can get the mouse to agree with the pan position. This did not work in the previous release either. It worked "somehow" in the 3.4.0 driver - in the sense that the screen flickered for some scroll positions. But at least the scrolling was consistent. Panning did work completely with the driver I modified for the 2501 DVO. *) Enabling the monitor output with the Fn key combination on the R31 starts again a flickering screen as if the driver tries to detect an external monitor over and over again. Pressing the Fn-combo again, I get the monitor in the native resolution with panning disabled. This works better than the previous release. *) I do not seem to get the kernel warnings anymore. *) I haven't tried whether xvideo works. Will report back as soon as I can (but probably not before next week).
There was still a bug in the plane fixup code, updated patch pushed to the modeset-rework branch. Please test.
Panning still does not work with this new revision - the screen flickers when moving the cursor around, and the position is incorrect. When scrolling left and right, the adjustment is incomplete and off by a couple of pixels. When performing an up-down scroll, the left-right scroll position is adjusted correctly (but then up-down will be incorrect again). Xvideo still crashes after the second invocation, no changes. I still get warnings that the screen size could not be adjusted through xrandr (no difference from the previous release). Activating the external output creates a flickering and unusable screen, same as with the previous release. Sharing the outputs deactivates panning on the internal screen but restores it correctly. Thus, no news, still broken and not usable. Sorry.
A patch referencing this bug report has been merged in Linux v3.7-rc2: 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
A fix for the Xv issue (hang on second invocation) has also landed. Can you please also attach an Xorg.log?
(In reply to comment #19) > Activating the external output creates a flickering and unusable screen, > same as with the previous release. Sharing the outputs deactivates panning > on the internal screen but restores it correctly. Issue with VGA going bonkers should be papered over with: commit 7f6658ef35a470cd641ea35a1da409c4bc5bae1e Author: Daniel Vetter <daniel.vetter@ffwll.ch> Date: Sun Oct 21 23:26:29 2012 +0200 drm/i915: VGA needs to be on pipe A on i830M which is merged into drm-intel-fixes.
presumed fixed, please re-open if not.
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.