[Intel-gfx] 2.6.33: white screen flash with i915
Holger Schurig
holgerschurig at gmail.com
Thu Mar 4 11:02:27 CET 2010
> the whitescreen you encounter is probably a bug.
> to get further with debugging this:
> try to restart with i915 and fbcon built into the kernel and modesetting
> switched on (in your .config or via kernel commandline: i915.modeset=1 )
> as well as the kernel commandline drm.debug=12 (probably needs some
> debugging option for drm turned on in your .config )
>
> then post your resulting dmesg here and/or on
> dri-devel at lists.sourceforge.net (which is the list mentioned in the
> kernel MAINTAINERS file for the drm drivers )
Thanks for this info.
Okay, I cross-post now to dri-devel. For readers there: I have an embedded
device with a fixed 800x600 LCD display. Kernel is vanilla 2.6.33 from
kernel.org, for the exact hardware see lspci output below.
My real problem is that with an older kernel / older X11 the xserver-xorg-
video-i810 used to work. But with current kernel and current X11 the xserver-
xorg-video-intel driver (from Debian unstable) doesn't work at all, it hard-
locks my board -> i have to reset. So I first thougth about getting a
framebuffer from Linux kernel. If the kernel itself can turn the intel
graphics to 800x600 frame-buffer mode, I think I have the first step done.
Unfortunately, modprobing i915 only yields me a totally white screen, but the
white screen disappears after a short period of time.
Apparently the framebuffer is now turned on, e.g. "cat /sbin/init >/dev/fb0"
brings garbage (as expected) to the window.
Now my question is if / how I can disable this white-screen.
-------------------------------------------------------------
# modprobe drm debug=12
# modprobe i915 modeset=1
... now I have a totally white screen ... for about one second ...
# lsmod
Module Size Used by
i915 195424 1
drm_kms_helper 20496 1 i915
drm 105440 2 i915,drm_kms_helper
i2c_algo_bit 3668 1 i915
button 2852 1 i915
video 12332 1 i915
backlight 1972 1 video
output 848 1 video
# dmesg
[drm] Initialized drm 1.1.0 20060810
input: Power Button as /class/input/input2
ACPI: Power Button [PWRB]
input: Power Button as /class/input/input3
ACPI: Power Button [PWRF]
i915 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
i915 0000:00:02.0: setting latency timer to 64
[drm] set up 31M of stolen space
[drm:parse_general_definitions], crt_ddc_bus_pin: 2
[drm:parse_lfp_panel_data], Found panel mode in BIOS VBT tables:
[drm:drm_mode_debug_printmodeline], Modeline 0:"800x600" 0 40000 800 840 968
1056 600 601 605 628 0x8 0x0
[drm:parse_sdvo_device_mapping], No SDVO device info is found in VBT
[drm:intel_modeset_init], 2 display pipes available.
[drm:ch7xxx_init], Detected CH7301 chipset, vendor/device ID 0x95/0x17
[drm] initialized overlay support
[drm:drm_helper_probe_single_connector_modes], VGA-1
[drm:intel_update_watermarks], plane A (pipe 0) clock: 31500
[drm:i9xx_get_fifo_size], FIFO size - (0x00015455) A: 85
[drm:i9xx_get_fifo_size], FIFO size - (0x00015455) B: -45
[drm:intel_calculate_wm], FIFO entries required for mode: 19
[drm:intel_calculate_wm], FIFO watermark level: 64
[drm:intel_calculate_wm], FIFO entries required for mode: 0
[drm:intel_calculate_wm], FIFO watermark level: -47
[drm:i9xx_update_wm], FIFO watermarks - A: 63, B: 1
[drm:i9xx_update_wm], Setting FIFO watermarks - A: 63, B: 1, C: 2, SR 1
[drm:intel_crtc_mode_set], Mode for pipe A:
[drm:drm_mode_debug_printmodeline], Modeline 0:"640x480" 0 31500 640 664 704
832 480 489 491 520 0x10 0xa
[drm:intel_pipe_set_base], No FB bound
[drm:intel_update_watermarks], plane A (pipe 0) clock: 31500
[drm:i9xx_get_fifo_size], FIFO size - (0x00015455) A: 85
[drm:i9xx_get_fifo_size], FIFO size - (0x00015455) B: -45
[drm:intel_calculate_wm], FIFO entries required for mode: 19
[drm:intel_calculate_wm], FIFO watermark level: 64
[drm:intel_calculate_wm], FIFO entries required for mode: 0
[drm:intel_calculate_wm], FIFO watermark level: -47
[drm:i9xx_update_wm], FIFO watermarks - A: 63, B: 1
[drm:i9xx_update_wm], Setting FIFO watermarks - A: 63, B: 1, C: 2, SR 1
[drm:intel_update_watermarks], plane A (pipe 0) clock: 31500
[drm:i9xx_get_fifo_size], FIFO size - (0x00015455) A: 85
[drm:i9xx_get_fifo_size], FIFO size - (0x00015455) B: -45
[drm:intel_calculate_wm], FIFO entries required for mode: 19
[drm:intel_calculate_wm], FIFO watermark level: 64
[drm:intel_calculate_wm], FIFO entries required for mode: 0
[drm:intel_calculate_wm], FIFO watermark level: -47
[drm:i9xx_update_wm], FIFO watermarks - A: 63, B: 1
[drm:i9xx_update_wm], Setting FIFO watermarks - A: 63, B: 1, C: 2, SR 1
[drm:drm_helper_probe_single_connector_modes], VGA-1 is disconnected
[drm:drm_helper_probe_single_connector_modes], LVDS-1
[drm:drm_helper_probe_single_connector_modes], Probed modes for LVDS-1
[drm:drm_mode_debug_printmodeline], Modeline 13:"800x600" 60 40000 800 840 968
1056 600 601 605 628 0x8 0x0
[drm:drm_helper_probe_single_connector_modes], DVI-I-1
[drm:drm_helper_probe_single_connector_modes], DVI-I-1 is disconnected
[drm:drm_setup_crtcs],
[drm:drm_enable_connectors], connector 5 enabled? no
[drm:drm_enable_connectors], connector 7 enabled? yes
[drm:drm_enable_connectors], connector 11 enabled? no
[drm:drm_target_preferred], looking for cmdline mode on connector 7
[drm:drm_target_preferred], looking for preferred mode on connector 7
[drm:drm_target_preferred], found mode 800x600
[drm:drm_setup_crtcs], picking CRTCs for 2048x2048 config
[drm:drm_setup_crtcs], desired mode 800x600 set on crtc 4
[drm:intelfb_probe],
[drm:intelfb_create], allocated 800x600 fb: 0x02000000, bo cc969540
[drm:drm_crtc_helper_set_config],
[drm:drm_crtc_helper_set_config], crtc: cc978800 4 fb: cda15300 connectors:
cd973f70 num_connectors: 1 (x, y) (0, 0)
[drm:drm_crtc_helper_set_config], crtc has no fb, full mode set
[drm:drm_crtc_helper_set_config], modes are different, full mode set
[drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0
[drm:drm_mode_debug_printmodeline], Modeline 15:"800x600" 60 40000 800 840 968
1056 600 601 605 628 0x8 0x0
[drm:drm_crtc_helper_set_config], setting connector 7 crtc to cc978800
[drm:drm_crtc_helper_set_config], attempting to set mode from userspace
[drm:drm_mode_debug_printmodeline], Modeline 15:"800x600" 60 40000 800 840 968
1056 600 601 605 628 0x8 0x0
[drm:intel_update_watermarks], plane B (pipe 1) clock: 40000
[drm:i9xx_get_fifo_size], FIFO size - (0x00015455) A: 85
[drm:i9xx_get_fifo_size], FIFO size - (0x00015455) B: -45
[drm:intel_calculate_wm], FIFO entries required for mode: 0
[drm:intel_calculate_wm], FIFO watermark level: 83
[drm:intel_calculate_wm], FIFO entries required for mode: 25
[drm:intel_calculate_wm], FIFO watermark level: -72
[drm:i9xx_update_wm], FIFO watermarks - A: 63, B: 1
[drm:i9xx_update_wm], Setting FIFO watermarks - A: 63, B: 1, C: 2, SR 1
[drm:intel_crtc_mode_set], Mode for pipe B:
[drm:drm_mode_debug_printmodeline], Modeline 15:"800x600" 60 40000 800 840 968
1056 600 601 605 628 0x8 0x0
[drm:intel_pipe_set_base], Writing base 02000000 00000000 0 0
[drm:intel_update_watermarks], plane B (pipe 1) clock: 40000
[drm:i9xx_get_fifo_size], FIFO size - (0x00015455) A: 85
[drm:i9xx_get_fifo_size], FIFO size - (0x00015455) B: -45
[drm:intel_calculate_wm], FIFO entries required for mode: 0
[drm:intel_calculate_wm], FIFO watermark level: 83
[drm:intel_calculate_wm], FIFO entries required for mode: 25
[drm:intel_calculate_wm], FIFO watermark level: -72
[drm:i9xx_update_wm], FIFO watermarks - A: 63, B: 1
[drm:i9xx_update_wm], Setting FIFO watermarks - A: 63, B: 1, C: 2, SR 1
[drm:intel_update_watermarks], plane B (pipe 1) clock: 40000
[drm:i9xx_get_fifo_size], FIFO size - (0x00015455) A: 85
[drm:i9xx_get_fifo_size], FIFO size - (0x00015455) B: -45
[drm:intel_calculate_wm], FIFO entries required for mode: 0
[drm:intel_calculate_wm], FIFO watermark level: 83
[drm:intel_calculate_wm], FIFO entries required for mode: 25
[drm:intel_calculate_wm], FIFO watermark level: -72
[drm:i9xx_update_wm], FIFO watermarks - A: 63, B: 1
[drm:i9xx_update_wm], Setting FIFO watermarks - A: 63, B: 1, C: 2, SR 1
[drm:intel_update_watermarks], plane B (pipe 1) clock: 40000
[drm:i9xx_get_fifo_size], FIFO size - (0x00015455) A: 85
[drm:i9xx_get_fifo_size], FIFO size - (0x00015455) B: -45
[drm:intel_calculate_wm], FIFO entries required for mode: 0
[drm:intel_calculate_wm], FIFO watermark level: 83
[drm:intel_calculate_wm], FIFO entries required for mode: 25
[drm:intel_calculate_wm], FIFO watermark level: -72
[drm:i9xx_update_wm], FIFO watermarks - A: 63, B: 1
[drm:i9xx_update_wm], Setting FIFO watermarks - A: 63, B: 1, C: 2, SR 1
Console: switching to colour frame buffer device 100x37
[drm:drm_crtc_helper_set_config],
[drm:drm_crtc_helper_set_config], crtc: cc978800 4 fb: cda15300 connectors:
cd973f70 num_connectors: 1 (x, y) (0, 0)
[drm:drm_crtc_helper_set_config], setting connector 7 crtc to cc978800
fb0: inteldrmfb frame buffer device
registered panic notifier
[drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
# lspci -vnn
...
00:02.0 VGA compatible controller [0300]: Intel Corporation 82852/855GM
Integrated Graphics Device [8086:3582] (rev 02) (prog-if 00 [VGA controller])
Subsystem: Intel Corporation 82852/855GM Integrated Graphics Device
[8086:3582]
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at d8000000 (32-bit, prefetchable) [size=128M]
Memory at e8180000 (32-bit, non-prefetchable) [size=512K]
I/O ports at e300 [size=8]
Expansion ROM at <unassigned> [disabled]
Capabilities: [d0] Power Management version 1
Kernel driver in use: i915
00:02.1 Display controller [0380]: Intel Corporation 82852/855GM Integrated
Graphics Device [8086:3582] (rev 02)
Subsystem: Intel Corporation 82852/855GM Integrated Graphics Device
[8086:3582]
Flags: bus master, fast devsel, latency 0
Memory at e0000000 (32-bit, prefetchable) [size=128M]
Memory at e8100000 (32-bit, non-prefetchable) [size=512K]
Capabilities: [d0] Power Management version 1
...
# cat /boot/config
...
#
# Graphics support
#
CONFIG_AGP=y
# CONFIG_AGP_ALI is not set
# CONFIG_AGP_ATI is not set
# CONFIG_AGP_AMD is not set
# CONFIG_AGP_AMD64 is not set
CONFIG_AGP_INTEL=y
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
# CONFIG_AGP_VIA is not set
# CONFIG_AGP_EFFICEON is not set
# CONFIG_VGA_ARB is not set
CONFIG_DRM=m
CONFIG_DRM_KMS_HELPER=m
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
# CONFIG_DRM_RADEON is not set
# CONFIG_DRM_I810 is not set
# CONFIG_DRM_I830 is not set
CONFIG_DRM_I915=m
CONFIG_DRM_I915_KMS=y
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
# CONFIG_FB_DDC is not set
CONFIG_FB_BOOT_VESA_SUPPORT=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
# CONFIG_FB_FOREIGN_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
#
# Frame buffer hardware drivers
#
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
CONFIG_FB_VESA=y
# CONFIG_FB_N411 is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_I810 is not set
# CONFIG_FB_LE80578 is not set
# CONFIG_FB_INTEL is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_VIA is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=m
CONFIG_BACKLIGHT_GENERIC=m
# CONFIG_BACKLIGHT_PROGEAR is not set
# CONFIG_BACKLIGHT_MBP_NVIDIA is not set
# CONFIG_BACKLIGHT_SAHARA is not set
...
# cat /proc/cmdline
root=/dev/hdc1 ro quiet
-------------------------------------------------------------
I cat'ted /proc/cmdline, so that you see that the compiled-in vesa framebuffer
isn't active. With vga=0x243 I can switch on the vesa-framebuffer with a
little help from the BIOS.
--
http://www.holgerschurig.de
More information about the Intel-gfx
mailing list