Beginning with kernel 3.1.0 the screen blanks when X starts and stays blank no matter what. The computer hasn't crashed, I can run programs blind and quit X. I don't have this problem with 3.0.9. I had it with some previous versions of the kernel and built my own X for a year or so. Video chip: Intel i915 System architecture: i686 Computer: eMachines e725-4250 laptop Slackware distribution, updated daily libdrm_intel 2.4.25
I solved the problem by using the drivers/gpu/drm/drm_crtc_helper.c from kernel 3.0. The drm_crtc_helper.c for version 3.1 has these additional lines: 562a563,567 > } else if (set->fb->depth != set->crtc->fb->depth) { > mode_changed = true; > } else if (set->fb->bits_per_pixel != > set->crtc->fb->bits_per_pixel) { > mode_changed = true; which are in the drm_crtc_helper_set_config routine.
Sorry for not noticing before and thanks for delving into the issue! So it sounds like X causes a change in fb depth which necessitates a mode switch. Can you please attach dmesg with drm.debug=0xe and your Xorg.0.log?
Created attachment 54210 [details] Xorg.0.log
Created attachment 54211 [details] dmesg
[drm:drm_crtc_helper_set_config], [CONNECTOR:5:LVDS-1] to [CRTC:4] [drm:drm_crtc_helper_set_config], attempting to set mode from userspace [drm:drm_mode_debug_printmodeline], Modeline 8:"1366x768" 60 72300 1366 1414 1446 1526 768 771 776 790 0x48 0xa [drm:drm_crtc_helper_set_mode], [CRTC:4] [drm:intel_panel_actually_set_backlight], set backlight PWM = 0 [drm:intel_panel_get_max_backlight], max backlight PWM = 736950 [drm] capturing error event; look for more information in /debug/dri/0/i915_error_state [drm:i9xx_crtc_mode_set], using SSC reference clock of 96 MHz [drm:i9xx_crtc_mode_set], Mode for pipe B: [drm:drm_mode_debug_printmodeline], Modeline 8:"1366x768" 60 72300 1366 1414 1446 1526 768 771 776 790 0x48 0xa [drm:i9xx_crtc_mode_set], disabling CxSR downclocking render error detected, EIR: 0x00000010 IPEIR: 0x00000000 IPEHR: 0x00000000 INSTDONE: 0xfffffffe INSTPS: 0x00000000 INSTDONE1: 0xffffffff ACTHD: 0x00000000 page table error PGTBL_ER: 0x00000001 [drm:i915_report_and_clear_eir] *ERROR* EIR stuck: 0x00000010, masking [drm:i9xx_update_plane], Writing base 00042000 00000000 0 0 5504 Notice how the display engine explodes with a bad pointer dereference just prior to use setting the scanout...
Created attachment 60339 [details] [review] Remove too-early-plane enable.
*** Bug 48944 has been marked as a duplicate of this bug. ***
(In reply to comment #7) > *** Bug 48944 has been marked as a duplicate of this bug. *** By mistake. That patch solves the blanking-on-boot problem but doesn't affect the render error.
(In reply to comment #8) > (In reply to comment #7) > > *** Bug 48944 has been marked as a duplicate of this bug. *** > > By mistake. That patch solves the blanking-on-boot problem but doesn't affect > the render error. Whoops! I meant blanking on starting X.
commit c7bd4c25650704d4d065eb4ce2a122d2a80ce804 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Tue Apr 24 16:36:50 2012 +0100 drm/i915: Remove too early plane enable on pre-PCH hardware Enabling the plane before we have assigned valid address means that it will access random PTE (often with conflicting memory types) and cause GPU lockups. However, enabling the plane too early appears to workaround a number of bugs in our modesetting code. Cc: Franz Melchior <melchior.franz@gmail.com> References: https://bugs.freedesktop.org/show_bug.cgi?id=39947 References: https://bugs.freedesktop.org/show_bug.cgi?id=41091 References: https://bugs.freedesktop.org/show_bug.cgi?id=49041 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
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.