2009-09-08 22:19:28

by Knut Petersen

[permalink] [raw]
Subject: Regression DRM/i915/KMS: VGA connector unusable after 2.6.31-rc8-git1, DVI connector ok

<5> Kernel command line: root=/dev/sdb6 showopts acpi_enforce_resources=lax drm.debug=15
<6> [drm] Initialized drm 1.1.0 20060810
<7> [drm:drm_init],
<7> [drm:drm_get_dev],
<7> [drm:drm_get_minor],
<7> [drm:drm_get_minor], new minor assigned 64
<7> [drm:drm_get_minor],
<7> [drm:drm_get_minor], new minor assigned 0
<7> [drm:drm_agp_bind_pages],
<7> [drm:parse_lfp_panel_data], Found panel mode in BIOS VBT tables:
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 0:"1024x768" 0 65000 1024 1048 1184 1344 768 771 777 806 0x8 0x0
<7> [drm:parse_sdvo_device_mapping], the SDVO device with slave addr 70 is found on SDVOB port
<7> [drm:parse_sdvo_device_mapping], the SDVO device with slave addr 72 is found on SDVOC port
<7> [drm:drm_irq_install], irq=16
<7> [drm:intel_modeset_init], 2 display pipes available.
<7> [drm:drm_sysfs_connector_add], adding "VGA-1" to sysfs
<7> [drm:drm_sysfs_hotplug_event], generating hotplug event
<7> [drm:drm_sysfs_connector_add], adding "DVI-D-1" to sysfs
<7> [drm:drm_sysfs_hotplug_event], generating hotplug event
<7> [drm:drm_sysfs_connector_add], adding "SVIDEO-1" to sysfs
<7> [drm:drm_sysfs_hotplug_event], generating hotplug event
<7> [drm:drm_sysfs_connector_add], adding "SVIDEO-2" to sysfs
<7> [drm:drm_sysfs_hotplug_event], generating hotplug event
<7> [drm:drm_helper_probe_single_connector_modes], VGA-1
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 39:"0x0" 0 0 0 0 0 0 0 0 0 0 0x0 0x0
<7> [drm_mode:drm_mode_prune_invalid], Not using 0x0 mode 16
<7> [drm:drm_helper_probe_single_connector_modes], Probed modes for VGA-1
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 40:"1280x1024" 60019 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x48 0x5
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 28:"1280x1024" 75024 135000 1280 1296 1440 1688 1024 1025 1028 1066 0x40 0x5
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 35:"1152x864" 75000 108000 1152 1216 1344 1600 864 865 868 900 0x40 0x5
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 29:"1024x768" 75075 78800 1024 1040 1136 1312 768 769 772 800 0x40 0x5
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 30:"1024x768" 70068 75000 1024 1048 1184 1328 768 771 777 806 0x40 0xa
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 31:"1024x768" 60003 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 32:"832x624" 74550 57284 832 864 928 1152 624 625 628 667 0x40 0xa
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 34:"800x600" 72186 50000 800 856 976 1040 600 637 643 666 0x40 0x5
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 33:"800x600" 75000 49500 800 816 896 1056 600 601 604 625 0x40 0x5
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 21:"800x600" 60315 40000 800 840 968 1056 600 601 605 628 0x40 0x5
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 22:"800x600" 56249 36000 800 824 896 1024 600 601 603 625 0x40 0x5
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 24:"640x480" 72807 31500 640 664 704 832 480 489 491 520 0x40 0xa
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 23:"640x480" 75000 31500 640 656 720 840 480 481 484 500 0x40 0xa
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 25:"640x480" 66666 30240 640 704 768 864 480 483 486 525 0x40 0xa
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 26:"640x480" 60000 25200 640 656 752 800 480 490 492 525 0x40 0xa
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 27:"720x400" 70080 28320 720 738 846 900 400 412 414 449 0x40 0x6
<7> [drm:drm_helper_probe_single_connector_modes], DVI-D-1
<7> [drm:intel_sdvo_detect], SDVO response 1 0
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 42:"0x0" 0 0 0 0 0 0 0 0 0 0 0x0 0x0
<7> [drm_mode:drm_mode_prune_invalid], Not using 0x0 mode 16
<7> [drm:drm_helper_probe_single_connector_modes], Probed modes for DVI-D-1
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 43:"1280x1024" 60019 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x48 0x5
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 41:"1024x768" 60003 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 37:"800x600" 60315 40000 800 840 968 1056 600 601 605 628 0x40 0x5
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 38:"640x480" 60000 25200 640 656 752 800 480 490 492 525 0x40 0xa
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 39:"720x400" 70080 28320 720 738 846 900 400 412 414 449 0x40 0x6
<7> [drm:drm_helper_probe_single_connector_modes], SVIDEO-1
<7> [drm:intel_sdvo_detect], SDVO response 0 0
<7> [drm:drm_helper_probe_single_connector_modes], SVIDEO-1 is disconnected
<7> [drm:drm_helper_probe_single_connector_modes], SVIDEO-2
<7> [drm:intel_update_watermarks], plane A (pipe 0) clock: 107520
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) A: 28
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) B: 31
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 20
<7> [drm:intel_calculate_wm], FIFO watermark level: 6
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 0
<7> [drm:intel_calculate_wm], FIFO watermark level: 29
<7> [drm:i9xx_update_wm], FIFO watermarks - A: 6, B: 29
<7> [drm:i9xx_update_wm], self-refresh entries: 43
<7> [drm:i9xx_update_wm], Setting FIFO watermarks - A: 6, B: 29, C: 2, SR 52
<7> [drm:drm_vblank_get], enabling vblank on crtc 0, ret: -22
<7> [drm:intel_crtc_mode_set], Mode for pipe A:
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
<7> [drm:intel_pipe_set_base], No FB bound
<7> [drm:intel_update_watermarks], plane A (pipe 0) clock: 107520
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) A: 28
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) B: 31
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 20
<7> [drm:intel_calculate_wm], FIFO watermark level: 6
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 0
<7> [drm:intel_calculate_wm], FIFO watermark level: 29
<7> [drm:i9xx_update_wm], FIFO watermarks - A: 6, B: 29
<7> [drm:i9xx_update_wm], self-refresh entries: 43
<7> [drm:i9xx_update_wm], Setting FIFO watermarks - A: 6, B: 29, C: 2, SR 52
<6> [drm] TV-12: set mode NTSC 480i 0
<7> [drm:intel_update_watermarks], plane A (pipe 0) clock: 107520
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) A: 28
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) B: 31
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 20
<7> [drm:intel_calculate_wm], FIFO watermark level: 6
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 0
<7> [drm:intel_calculate_wm], FIFO watermark level: 29
<7> [drm:i9xx_update_wm], FIFO watermarks - A: 6, B: 29
<7> [drm:i9xx_update_wm], self-refresh entries: 43
<7> [drm:i9xx_update_wm], Setting FIFO watermarks - A: 6, B: 29, C: 2, SR 52
<7> [drm:intel_tv_detect_type], No TV connection detected
<7> [drm:drm_helper_probe_single_connector_modes], SVIDEO-2 is disconnected
<7> [drm:drm_setup_crtcs],
<7> [drm:drm_enable_connectors], connector 5 enabled? yes
<7> [drm:drm_enable_connectors], connector 7 enabled? yes
<7> [drm:drm_enable_connectors], connector 9 enabled? no
<7> [drm:drm_enable_connectors], connector 11 enabled? no
<7> [drm:drm_target_preferred], looking for preferred mode on connector 5
<7> [drm:drm_target_preferred], found mode 1280x1024
<7> [drm:drm_target_preferred], looking for preferred mode on connector 7
<7> [drm:drm_target_preferred], found mode 1280x1024
<7> [drm:drm_setup_crtcs], picking CRTCs for 4096x4096 config
<7> [drm:drm_setup_crtcs], desired mode 1280x1024 set on crtc 3
<7> [drm:drm_setup_crtcs], desired mode 1280x1024 set on crtc 4
<7> [drm:intelfb_probe],
<7> [drm:intelfb_single_fb_probe],
<7> [drm:intelfb_single_fb_probe], creating new fb (console size 1280x1024, buffer size 1280x1024)
<7> [drm:drm_agp_bind_pages],
<7> [drm:intelfb_create], allocated 1280x1024 fb: 0x007df000, bo f738cec0
<7> [drm:intelfb_set_par], 1280 -1
<7> [drm:drm_crtc_helper_set_config],
<7> [drm:drm_crtc_helper_set_config], crtc: f737e000 3 fb: f737ab00 connectors: f737e448 num_connectors: 1 (x, y) (0, 0)
<7> [drm:drm_crtc_helper_set_config], crtc has no fb, full mode set
<7> [drm:drm_crtc_helper_set_config], modes are different, full mode set
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 44:"1280x1024" 60019 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x48 0x5
<7> [drm:drm_crtc_helper_set_config], setting connector 5 crtc to f737e000
<7> [drm:drm_crtc_helper_set_config], setting connector 7 crtc to f7385000
<7> [drm:drm_crtc_helper_set_config], attempting to set mode from userspace
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 44:"1280x1024" 60019 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x48 0x5
<7> [drm:intel_update_watermarks], plane A (pipe 0) clock: 108000
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) A: 28
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) B: 31
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 20
<7> [drm:intel_calculate_wm], FIFO watermark level: 6
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 0
<7> [drm:intel_calculate_wm], FIFO watermark level: 29
<7> [drm:i9xx_update_wm], FIFO watermarks - A: 6, B: 29
<7> [drm:i9xx_update_wm], self-refresh entries: 43
<7> [drm:i9xx_update_wm], Setting FIFO watermarks - A: 6, B: 29, C: 2, SR 52
<7> [drm:drm_vblank_get], enabling vblank on crtc 0, ret: -22
<7> [drm:intel_crtc_mode_set], Mode for pipe A:
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 44:"1280x1024" 60019 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x48 0x5
<7> [drm:intel_pipe_set_base], Writing base 007DF000 00000000 0 0
<3> [drm:i915_handle_error] *ERROR* EIR stuck: 0x00000010, masking
<7> [drm:intel_update_watermarks], plane A (pipe 0) clock: 108000
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) A: 28
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) B: 31
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 20
<7> [drm:intel_calculate_wm], FIFO watermark level: 6
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 0
<7> [drm:intel_calculate_wm], FIFO watermark level: 29
<7> [drm:i9xx_update_wm], FIFO watermarks - A: 6, B: 29
<7> [drm:i9xx_update_wm], self-refresh entries: 43
<7> [drm:i9xx_update_wm], Setting FIFO watermarks - A: 6, B: 29, C: 2, SR 52
<6> [drm] DAC-6: set mode 1280x1024 2c
<7> [drm:intel_update_watermarks], plane A (pipe 0) clock: 108000
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) A: 28
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) B: 31
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 20
<7> [drm:intel_calculate_wm], FIFO watermark level: 6
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 0
<7> [drm:intel_calculate_wm], FIFO watermark level: 29
<7> [drm:i9xx_update_wm], FIFO watermarks - A: 6, B: 29
<7> [drm:i9xx_update_wm], self-refresh entries: 43
<7> [drm:i9xx_update_wm], Setting FIFO watermarks - A: 6, B: 29, C: 2, SR 52
<7> [drm:drm_crtc_helper_set_config],
<7> [drm:drm_crtc_helper_set_config], crtc: f7385000 4 fb: f737ab00 connectors: f7385448 num_connectors: 1 (x, y) (0, 0)
<7> [drm:drm_crtc_helper_set_config], crtc has no fb, full mode set
<7> [drm:drm_crtc_helper_set_config], modes are different, full mode set
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 45:"1280x1024" 60019 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x48 0x5
<7> [drm:drm_crtc_helper_set_config], setting connector 5 crtc to f737e000
<7> [drm:drm_crtc_helper_set_config], setting connector 7 crtc to f7385000
<7> [drm:drm_crtc_helper_set_config], attempting to set mode from userspace
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 45:"1280x1024" 60019 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x48 0x5
<7> [drm:intel_update_watermarks], plane A (pipe 0) clock: 108000
<7> [drm:intel_update_watermarks], plane B (pipe 1) clock: 108000
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) A: 28
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) B: 31
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 20
<7> [drm:intel_calculate_wm], FIFO watermark level: 6
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 20
<7> [drm:intel_calculate_wm], FIFO watermark level: 9
<7> [drm:i9xx_update_wm], FIFO watermarks - A: 6, B: 9
<7> [drm:i9xx_update_wm], Setting FIFO watermarks - A: 6, B: 9, C: 2, SR 1
<7> [drm:drm_vblank_get], enabling vblank on crtc 1, ret: -22
<7> [drm:intel_crtc_mode_set], Mode for pipe B:
<7> [drm_mode:drm_mode_debug_printmodeline], Modeline 45:"1280x1024" 60019 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x48 0x5
<7> [drm:intel_pipe_set_base], Writing base 007DF000 00000000 0 0
<7> [drm:intel_update_watermarks], plane A (pipe 0) clock: 108000
<7> [drm:intel_update_watermarks], plane B (pipe 1) clock: 108000
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) A: 28
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) B: 31
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 20
<7> [drm:intel_calculate_wm], FIFO watermark level: 6
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 20
<7> [drm:intel_calculate_wm], FIFO watermark level: 9
<7> [drm:i9xx_update_wm], FIFO watermarks - A: 6, B: 9
<7> [drm:i9xx_update_wm], Setting FIFO watermarks - A: 6, B: 9, C: 2, SR 1
<6> [drm] TMDS-8: set mode 1280x1024 2d
<7> [drm:intel_update_watermarks], plane A (pipe 0) clock: 108000
<7> [drm:intel_update_watermarks], plane B (pipe 1) clock: 108000
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) A: 28
<7> [drm:intel_get_fifo_size], FIFO size - (0x00001d9c) B: 31
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 20
<7> [drm:intel_calculate_wm], FIFO watermark level: 6
<7> [drm:intel_calculate_wm], FIFO entries required for mode: 20
<7> [drm:intel_calculate_wm], FIFO watermark level: 9
<7> [drm:i9xx_update_wm], FIFO watermarks - A: 6, B: 9
<7> [drm:i9xx_update_wm], Setting FIFO watermarks - A: 6, B: 9, C: 2, SR 1
<7> [drm:drm_crtc_helper_set_config],
<7> [drm:drm_crtc_helper_set_config], crtc: f737e000 3 fb: f737ab00 connectors: f737e448 num_connectors: 1 (x, y) (0, 0)
<7> [drm:drm_crtc_helper_set_config], setting connector 5 crtc to f737e000
<7> [drm:drm_crtc_helper_set_config], setting connector 7 crtc to f7385000
<7> [drm:drm_crtc_helper_set_config],
<7> [drm:drm_crtc_helper_set_config], crtc: f7385000 4 fb: f737ab00 connectors: f7385448 num_connectors: 1 (x, y) (0, 0)
<7> [drm:drm_crtc_helper_set_config], setting connector 5 crtc to f737e000
<7> [drm:drm_crtc_helper_set_config], setting connector 7 crtc to f7385000
<7> [drm:drm_crtc_helper_set_config],
<7> [drm:drm_crtc_helper_set_config], crtc: f737e000 3 fb: f737ab00 connectors: f737e448 num_connectors: 1 (x, y) (0, 0)
<7> [drm:drm_crtc_helper_set_config], setting connector 5 crtc to f737e000
<7> [drm:drm_crtc_helper_set_config], setting connector 7 crtc to f7385000
<7> [drm:drm_crtc_helper_set_config],
<7> [drm:drm_crtc_helper_set_config], crtc: f7385000 4 fb: f737ab00 connectors: f7385448 num_connectors: 1 (x, y) (0, 0)
<7> [drm:drm_crtc_helper_set_config], setting connector 5 crtc to f737e000
<7> [drm:drm_crtc_helper_set_config], setting connector 7 crtc to f7385000
<6> [drm] fb0: inteldrmfb frame buffer device
<7> [drm:intelfb_single_fb_probe], registered panic notifier
<7> [drm:intel_opregion_init], graphic opregion physical addr: 0x0
<7> [drm:intel_opregion_init], ACPI OpRegion not supported!
<6> [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
<7> [drm:i915_error_work_func], generating error event


Attachments:
LOG_BROKEN (13.38 kB)
LOG_OK (15.53 kB)
Download all attachments

2009-09-08 22:26:37

by Jesse Barnes

[permalink] [raw]
Subject: Re: Regression DRM/i915/KMS: VGA connector unusable after 2.6.31-rc8-git1, DVI connector ok

cc'ing the intel-gfx list.

On Wed, 09 Sep 2009 00:19:04 +0200
Knut Petersen <[email protected]> wrote:

> Hi everybody!
>
> During the release cycle of the 2.6.31-rc* kernels KMS started to work
> on my computer.
>
> Booting with a monitor attached to both the VAG and the DVI
> connectors, kernel 2.6.31-rc8-git1
> detects both monitors correctly and sets the native video mode.
>
> Booting the same configuration with kernel 2.6.31-rc8-git2 ...
> -rc9-git1 gives a different result:
> the DVI-attached monitor is still working perfectly, the VGA-attached
> monitor does not detect a
> valid video signal and switches off.
>
> Hardware: AOpen i915GMm-hfs, Pentium-M 1.86 MHz, 2GB RAM
> The Aopen i915GMm-hfs is a desktop board with a mobile Chipset:
>
> 00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML
> Express Processor to DRAM Controller (rev 04)
> 00:02.0 VGA compatible controller: Intel Corporation Mobile
> 915GM/GMS/910GML Express Graphics Controller (rev 04)
> 00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML
> Express Graphics Controller (rev 04)
>
> Config: AGP/DRM/I915 all compiled into kernel, KMS enabled.
>
> Log_Broken contains the result of "cat boot.msg | grep -i drm" of a
> boot with 2.6.31-rc8-git2,
> Log_OK contains the result of "cat boot.msg | grep -i drm" of a boot
> with 2.6.31-rc8-git1
>
> As a black monitor is not a nice gift I think this should be fixed
> before the final release of 2.6.31.
>
> cu,
> Knut


--
Jesse Barnes, Intel Open Source Technology Center

2009-09-08 22:37:25

by Carlos Mafra

[permalink] [raw]
Subject: Re: Regression DRM/i915/KMS: VGA connector unusable after 2.6.31-rc8-git1, DVI connector ok

On Wed 9.Sep'09 at 0:19:04 +0200, Knut Petersen wrote:
> Hi everybody!
>
> During the release cycle of the 2.6.31-rc* kernels KMS started to work
> on my computer.
>
> Booting with a monitor attached to both the VAG and the DVI connectors,
> kernel 2.6.31-rc8-git1
> detects both monitors correctly and sets the native video mode.
>
> Booting the same configuration with kernel 2.6.31-rc8-git2 ... -rc9-git1
> gives a different result:
> the DVI-attached monitor is still working perfectly, the VGA-attached
> monitor does not detect a
> valid video signal and switches off.

I had a similar problem between -rc8 and -rc9, and the patch here

http://marc.info/?l=linux-kernel&m=125239311508274&w=2

fixed it for me.

2009-09-08 23:02:14

by Knut Petersen

[permalink] [raw]
Subject: Re: Regression DRM/i915/KMS: VGA connector unusable after 2.6.31-rc8-git1, DVI connector ok

Carlos R. Mafra schrieb:
> On Wed 9.Sep'09 at 0:19:04 +0200, Knut Petersen wrote:
>
>> Hi everybody!
>>
>> During the release cycle of the 2.6.31-rc* kernels KMS started to work
>> on my computer.
>>
>> Booting with a monitor attached to both the VAG and the DVI connectors,
>> kernel 2.6.31-rc8-git1
>> detects both monitors correctly and sets the native video mode.
>>
>> Booting the same configuration with kernel 2.6.31-rc8-git2 ... -rc9-git1
>> gives a different result:
>> the DVI-attached monitor is still working perfectly, the VGA-attached
>> monitor does not detect a
>> valid video signal and switches off.
>>
>
> I had a similar problem between -rc8 and -rc9, and the patch here
>
> http://marc.info/?l=linux-kernel&m=125239311508274&w=2
>
> fixed it for me.
>
>

I tested that patch with kernel 2.6.31-rc9-git1 and it solves my problem.

Carlos, Jesse: Thanks a lot for that quick response!

cu,
Knut

2009-09-08 23:12:12

by Linus Torvalds

[permalink] [raw]
Subject: Re: Regression DRM/i915/KMS: VGA connector unusable after 2.6.31-rc8-git1, DVI connector ok



On Wed, 9 Sep 2009, Knut Petersen wrote:
>
> During the release cycle of the 2.6.31-rc* kernels KMS started to work
> on my computer.
>
> Booting with a monitor attached to both the VAG and the DVI connectors,
> kernel 2.6.31-rc8-git1 detects both monitors correctly and sets the
> native video mode.
>
> Booting the same configuration with kernel 2.6.31-rc8-git2 ... -rc9-git1
> gives a different result: the DVI-attached monitor is still working
> perfectly, the VGA-attached monitor does not detect a valid video signal
> and switches off.

I just pushed out something that may fix it. It was reported to fix
another situation that sounds _somewhat_ similar (ie VGA out on a mobile
chipset)

It's commit 7c8460d: "drm/i915: fix mask bits setting", but it may take a
few minutes to mirror out to the public machines, so if you don't see it
yet, here's the patch if you want to try.

Linus

---
>From 7c8460db30dfd085ef3837c8fb02ecf2e718b983 Mon Sep 17 00:00:00 2001
From: Zhenyu Wang <[email protected]>
Date: Tue, 8 Sep 2009 14:52:25 +0800
Subject: [PATCH] drm/i915: fix mask bits setting

eDP is exclusive connector too, and add missing crtc_mask
setting for TV.

This fixes

http://bugzilla.kernel.org/show_bug.cgi?id=14139

Signed-off-by: Zhenyu Wang <[email protected]>
Reported-and-tested-by: Carlos R. Mafra <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
---
drivers/gpu/drm/i915/intel_dp.c | 2 +-
drivers/gpu/drm/i915/intel_drv.h | 1 +
drivers/gpu/drm/i915/intel_tv.c | 1 +
3 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index f2afc4a..2b914d7 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1263,7 +1263,7 @@ intel_dp_init(struct drm_device *dev, int output_reg)

if (IS_eDP(intel_output)) {
intel_output->crtc_mask = (1 << 1);
- intel_output->clone_mask = (1 << INTEL_OUTPUT_EDP);
+ intel_output->clone_mask = (1 << INTEL_EDP_CLONE_BIT);
} else
intel_output->crtc_mask = (1 << 0) | (1 << 1);
connector->interlace_allowed = true;
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 25aa6fa..26a6227 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -74,6 +74,7 @@
#define INTEL_LVDS_CLONE_BIT 14
#define INTEL_DVO_TMDS_CLONE_BIT 15
#define INTEL_DVO_LVDS_CLONE_BIT 16
+#define INTEL_EDP_CLONE_BIT 17

#define INTEL_DVO_CHIP_NONE 0
#define INTEL_DVO_CHIP_LVDS 1
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index 2fbe13a..5b1c9e9 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -1730,6 +1730,7 @@ intel_tv_init(struct drm_device *dev)
drm_mode_connector_attach_encoder(&intel_output->base, &intel_output->enc);
tv_priv = (struct intel_tv_priv *)(intel_output + 1);
intel_output->type = INTEL_OUTPUT_TVOUT;
+ intel_output->crtc_mask = (1 << 0) | (1 << 1);
intel_output->clone_mask = (1 << INTEL_TV_CLONE_BIT);
intel_output->enc.possible_crtcs = ((1 << 0) | (1 << 1));
intel_output->enc.possible_clones = (1 << INTEL_OUTPUT_TVOUT);

2009-09-09 01:05:45

by Zhao, Yakui

[permalink] [raw]
Subject: Re: [Intel-gfx] Regression DRM/i915/KMS: VGA connector unusable after 2.6.31-rc8-git1, DVI connector ok

On Wed, 2009-09-09 at 06:26 +0800, Jesse Barnes wrote:
> cc'ing the intel-gfx list.
>
> On Wed, 09 Sep 2009 00:19:04 +0200
> Knut Petersen <[email protected]> wrote:
>
> > Hi everybody!
> >
> > During the release cycle of the 2.6.31-rc* kernels KMS started to work
> > on my computer.
> >
> > Booting with a monitor attached to both the VAG and the DVI
> > connectors, kernel 2.6.31-rc8-git1
> > detects both monitors correctly and sets the native video mode.
> >
> > Booting the same configuration with kernel 2.6.31-rc8-git2 ...
> > -rc9-git1 gives a different result:
> > the DVI-attached monitor is still working perfectly, the VGA-attached
> > monitor does not detect a
> > valid video signal and switches off.
> >
> > Hardware: AOpen i915GMm-hfs, Pentium-M 1.86 MHz, 2GB RAM
> > The Aopen i915GMm-hfs is a desktop board with a mobile Chipset:
> >
> > 00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML
> > Express Processor to DRAM Controller (rev 04)
> > 00:02.0 VGA compatible controller: Intel Corporation Mobile
> > 915GM/GMS/910GML Express Graphics Controller (rev 04)
> > 00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML
> > Express Graphics Controller (rev 04)
> >
> > Config: AGP/DRM/I915 all compiled into kernel, KMS enabled.
> >
> > Log_Broken contains the result of "cat boot.msg | grep -i drm" of a
> > boot with 2.6.31-rc8-git2,
> > Log_OK contains the result of "cat boot.msg | grep -i drm" of a boot
> > with 2.6.31-rc8-git1
> >
> > As a black monitor is not a nice gift I think this should be fixed
> > before the final release of 2.6.31.
Will you please try the latest git tree and see whether the issue can
still be reproduced?
Thanks.
> >
> > cu,
> > Knut
>
>

2009-09-09 07:09:33

by Knut Petersen

[permalink] [raw]
Subject: Re: Regression DRM/i915/KMS: VGA connector unusable after 2.6.31-rc8-git1, DVI connector ok


> I just pushed out something that may fix it. It was reported to fix
> another situation that sounds _somewhat_ similar (ie VGA out on a mobile
> chipset)
>
> It's commit 7c8460d: "drm/i915: fix mask bits setting", but it may take a
> few minutes to mirror out to the public machines, so if you don't see it
> yet, here's the patch if you want to try.
>
> Linus
>
Zhenyu Wangs patch fixed the problem, and 2.6.31-rc9-git2 works again with
monitors attached to the VGA output. Thanks to all of you for the quick
reaction.

BTW: My reason to try kernel 2.6.31-* is to find a good replacement for
my current
outdated setup (kernel 2.6.22.6 with a vintage (2006) X Window System
Version 7.1.99.902).
I?m testing the current kernels and X.Org X Server 1.6.3, Release Date:
2009-7-31, with
intel module version = 2.8.0. (openSuSE 11.2 MS 6).

The old setup is a bit faster, and glx acceleration is much smoother:

- glxgears running on the old setup looks fine running on
the old software, no matter what window size is used.

- glxgears running on the new setup looks almost fine with small
windows, but is _very_ jerky running in a big window.

As the old X does not work with the new kernel, I cannot decide if the
kernel
or X is to blame.

Some other things I noticed. Have a look at the log:

<6>[ 1.933807] agpgart-intel 0000:00:00.0: Intel 915GM Chipset
<6>[ 1.934571] agpgart-intel 0000:00:00.0: detected 7932K stolen memory
<6>[ 1.937271] agpgart-intel 0000:00:00.0: AGP aperture is 256M @
0xc0000000
<6>[ 1.937431] [drm] Initialized drm 1.1.0 20060810
<6>[ 1.937528] i915 0000:00:02.0: PCI INT A -> GSI 16 (level, low) ->
IRQ 16
<7>[ 1.937619] i915 0000:00:02.0: setting latency timer to 64
<6>[ 3.051634] [drm] TV-12: set mode NTSC 480i 0
<3>[ 3.271424] render error detected, EIR: 0x00000010
<3>[ 3.271426] page table error
<3>[ 3.271428] PGTBL_ER: 0x00000010
<3>[ 3.271431] [drm:i915_handle_error] *ERROR* EIR stuck: 0x00000010,
masking
<3>[ 3.271437] render error detected, EIR: 0x00000010
<3>[ 3.271438] page table error
<3>[ 3.271440] PGTBL_ER: 0x00000010
<6>[ 3.277774] [drm] DAC-6: set mode 1280x1024 2c
<6>[ 3.375806] [drm] TMDS-8: set mode 1280x1024 2d
<4>[ 3.632583] Console: switching to colour frame buffer device 160x64
<6>[ 3.638966] [drm] fb0: inteldrmfb frame buffer device
<6>[ 3.639011] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0
on minor 0

What shall I think about that render error followed by "EIR stuck"?
Apparently it does not hurt, but it does appear on every boot.

What?s about that page table error? It?s also in every boot log,
and it seems that it does not hurt either.

In the boot log I read "TV-12: set mode NTSC 480i 0". Well, I do
not use the TV out connector, but in the BIOS setup I selected
PAL and not NTSC. Why isn?t that detected and used?

cu,
Knut

2009-09-09 14:28:32

by Linus Torvalds

[permalink] [raw]
Subject: Re: Regression DRM/i915/KMS: VGA connector unusable after 2.6.31-rc8-git1, DVI connector ok



On Wed, 9 Sep 2009, Knut Petersen wrote:
>
> As the old X does not work with the new kernel, I cannot decide if the
> kernel or X is to blame.

Hmm. Doesn't old X work if you disable KMS? Either with "i915.modeset=0"
or by just compiling it out?

Also, glxgears is usually not a good way to verify anything. At least some
versions used to run the gears at the painting frame rate rather than some
fixed rate, and so "jerky" or not depended not on how fast it was
painting, but on whether the painting speed was some multiple of the
screen refresh.

The FPS output from glxgears should mean something, although quite
frankly, considering the simplicity of the thing, not a whole lot. I'd
suggest using some somewhat more real test (I admit to having used
"Extreme Tux Racer", which while not wonderful either is certainly better
than glxgears ;^)

Linus

2009-09-09 16:04:22

by Jesse Barnes

[permalink] [raw]
Subject: Re: Regression DRM/i915/KMS: VGA connector unusable after 2.6.31-rc8-git1, DVI connector ok

On Wed, 09 Sep 2009 09:09:15 +0200
Knut Petersen <[email protected]> wrote:

>
> > I just pushed out something that may fix it. It was reported to fix
> > another situation that sounds _somewhat_ similar (ie VGA out on a
> > mobile chipset)
> >
> > It's commit 7c8460d: "drm/i915: fix mask bits setting", but it may
> > take a few minutes to mirror out to the public machines, so if you
> > don't see it yet, here's the patch if you want to try.
> >
> > Linus
> >
> Zhenyu Wangs patch fixed the problem, and 2.6.31-rc9-git2 works again
> with monitors attached to the VGA output. Thanks to all of you for
> the quick reaction.
>
> BTW: My reason to try kernel 2.6.31-* is to find a good replacement
> for my current
> outdated setup (kernel 2.6.22.6 with a vintage (2006) X Window System
> Version 7.1.99.902).
> I´m testing the current kernels and X.Org X Server 1.6.3, Release
> Date: 2009-7-31, with
> intel module version = 2.8.0. (openSuSE 11.2 MS 6).
>
> The old setup is a bit faster, and glx acceleration is much smoother:
>
> - glxgears running on the old setup looks fine running on
> the old software, no matter what window size is used.
>
> - glxgears running on the new setup looks almost fine with small
> windows, but is _very_ jerky running in a big window.
>
> As the old X does not work with the new kernel, I cannot decide if the
> kernel
> or X is to blame.
>
> Some other things I noticed. Have a look at the log:
>
> <6>[ 1.933807] agpgart-intel 0000:00:00.0: Intel 915GM Chipset
> <6>[ 1.934571] agpgart-intel 0000:00:00.0: detected 7932K stolen
> memory <6>[ 1.937271] agpgart-intel 0000:00:00.0: AGP aperture is
> 256M @ 0xc0000000
> <6>[ 1.937431] [drm] Initialized drm 1.1.0 20060810
> <6>[ 1.937528] i915 0000:00:02.0: PCI INT A -> GSI 16 (level, low)
> -> IRQ 16
> <7>[ 1.937619] i915 0000:00:02.0: setting latency timer to 64
> <6>[ 3.051634] [drm] TV-12: set mode NTSC 480i 0
> <3>[ 3.271424] render error detected, EIR: 0x00000010
> <3>[ 3.271426] page table error
> <3>[ 3.271428] PGTBL_ER: 0x00000010
> <3>[ 3.271431] [drm:i915_handle_error] *ERROR* EIR stuck:
> 0x00000010, masking
> <3>[ 3.271437] render error detected, EIR: 0x00000010
> <3>[ 3.271438] page table error
> <3>[ 3.271440] PGTBL_ER: 0x00000010
> <6>[ 3.277774] [drm] DAC-6: set mode 1280x1024 2c
> <6>[ 3.375806] [drm] TMDS-8: set mode 1280x1024 2d
> <4>[ 3.632583] Console: switching to colour frame buffer device
> 160x64 <6>[ 3.638966] [drm] fb0: inteldrmfb frame buffer device
> <6>[ 3.639011] [drm] Initialized i915 1.6.0 20080730 for
> 0000:00:02.0 on minor 0

Linus is probably right here; old X assumes it completely owns the
hardware, so won't work very well if you have a KMS enabled i915
driver. Loading i915 with modeset=0 should let you use the old
interfaces.

> What shall I think about that render error followed by "EIR stuck"?
> Apparently it does not hurt, but it does appear on every boot.
>
> What´s about that page table error? It´s also in every boot log,
> and it seems that it does not hurt either.

These two are related. The BIOS is probably setting up a partially
bogus configuration. Then when the i915 driver initializes we see the
errors. We might be able to work around it by doing some extra
hardware work (disabling everything or scanning for bad addresses), but
I haven't had time to try that out yet.

> In the boot log I read "TV-12: set mode NTSC 480i 0". Well, I do
> not use the TV out connector, but in the BIOS setup I selected
> PAL and not NTSC. Why isn´t that detected and used?

You'll see lines like that whenever the kernel does load detection on
an output. In this case it's trying to set a mode on the TV output
(which is always there, even if you don't have an exposed connector) to
see if anything is attached. For load detection purposes I don't think
it matters if we use PAL or NTSC signaling; but please file a bug at
bugs.freedesktop.org if you find problems (see
http://www.intellinuxgraphics.org/how_to_report_bug.html for the sort
of info we're looking for).

--
Jesse Barnes, Intel Open Source Technology Center

2009-09-09 21:35:52

by Knut Petersen

[permalink] [raw]
Subject: Re: Regression DRM/i915/KMS: VGA connector unusable after 2.6.31-rc8-git1, DVI connector ok

Linus Torvalds schrieb:
> On Wed, 9 Sep 2009, Knut Petersen wrote:
>
>> As the old X does not work with the new kernel, I cannot decide if the
>> kernel or X is to blame.
>>
>
> Hmm. Doesn't old X work if you disable KMS? Either with "i915.modeset=0"
> or by just compiling it out?
>
>
It does work somehow, but very slow and jerky as long as DRI is
enabled in the kernel.

It?s not a a problem related to KMS. Allocation of tiled buffers fails with
that old X, although it worked with 2.6.22.6, that results in a massive
performance drop (more than 70 percent).

Jerky drawing can only be avoided if DRI is disabled in the kernel.


cu,
Knut