[Intel-gfx] KMS breaks console

Paul Collins paul at burly.ondioline.org
Tue Feb 3 22:13:35 CET 2009


Jesse Barnes <jbarnes at virtuousgeek.org> writes:

> On Tuesday, February 3, 2009 10:18 am Tino Keitel wrote:
>> On Tue, Feb 03, 2009 at 10:11:54 -0800, Jesse Barnes wrote:
>> > On Tuesday, February 3, 2009 9:51 am Tino Keitel wrote:
>> > > Hi folks,
>> > >
>> > > I just enabled CONFIG_DRM_I915_KMS in 2.6.29-rc3 and now the text
>> > > console is just black. This happens with the 2.6 branch on a Mac mini
>> > > Core Duo with i945GM. Any hints how to solve this?
>> >
>> > You need to enable the framebuffer console and make sure it's loaded.
>>
>> It is:
>>
>> CONFIG_FRAMEBUFFER_CONSOLE=y
>
> Is your machine still running?  Can you capture kernel logs with drm debugging 
> enabled (just pass 'debug=1' when you modprobe drm)?

I hit what may be the same problem on a Mac Mini Core 2 Duo with 945GM.

After some poking around I saw there's some code in intel_lvds_init
regarding weirdness with the Mac Mini reporting LVDS when there is none,
but the workaround doesn't seem to be active, as the DRM_DEBUG is never
logged (drivers/gpu/drm/i915/intel_lvds.c, line 516ish).

Judging by the X log, the xorg driver has similar workaround:

  (II) intel(0): Suspected Mac Mini, ignoring the LVDS

I tried sticking a 'goto failed' near the the top of intel_lvds_init and
then I did get a console, albeit at 800x600 rather than my screen's
native 1680x1050.

Here are two debug=1 logs, the first with vanilla code and the second
with the crippled intel_lvds_init.

  [drm] Initialized drm 1.1.0 20060810
  [drm:drm_init] 
  [drm:drm_get_dev] 
  pci 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
  pci 0000:00:02.0: setting latency timer to 64
  [drm:drm_get_minor] 
  [drm:drm_get_minor] new minor assigned 64
  [drm:drm_get_minor] 
  [drm:drm_get_minor] new minor assigned 0
  [drm:i915_init_phys_hws] Enabled hardware status page
  [drm:intel_opregion_init] graphic opregion physical addr: 0x0
  [drm:intel_opregion_init] ACPI OpRegion not supported!
  [drm:drm_agp_bind_pages] 
  [drm:parse_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:drm_irq_install] irq=16
  [drm:intel_modeset_init] 2 display pipes available.
  [drm:drm_sysfs_connector_add] adding "VGA-1" to sysfs
  [drm:drm_sysfs_hotplug_event] generating hotplug event
  i2c-adapter i2c-2: unable to read EDID block.
  pci 0000:00:02.0: LVDS-1: no EDID data
  [drm:drm_sysfs_connector_add] adding "LVDS-1" to sysfs
  [drm:drm_sysfs_hotplug_event] generating hotplug event
  [drm:drm_sysfs_connector_add] adding "DVI-D-1" to sysfs
  [drm:drm_sysfs_hotplug_event] generating hotplug event
  [drm:intel_sdvo_init] SDVOB device VID/DID: 04:AA.03, clock range 25MHz - 165MHz, input 1: Y, input 2: N, output 1: Y, output 2: N
  [drm:intel_sdvo_read_byte] i2c transfer returned -6
  [drm:intel_sdvo_init] No SDVO device found on SDVOC
  [drm:drm_sysfs_connector_add] adding "SVIDEO-1" to sysfs
  [drm:drm_sysfs_hotplug_event] generating hotplug event
  [drm:drm_helper_probe_single_connector_modes] VGA-1
  [drm:drm_helper_probe_single_connector_modes] VGA-1 is disconnected
  [drm:drm_helper_probe_single_connector_modes] LVDS-1
  i2c-adapter i2c-2: unable to read EDID block.
  pci 0000:00:02.0: LVDS-1: no EDID data
  [drm:drm_helper_probe_single_connector_modes] Probed modes for LVDS-1
  [drm:drm_mode_debug_printmodeline] Modeline 21:"800x600" 60315 40000 800 840 968 1056 600 601 605 628 0x8 0x0
  [drm:drm_helper_probe_single_connector_modes] DVI-D-1
  [drm:intel_sdvo_detect] SDVO response 1 0
  i2c-adapter i2c-3: unable to read EDID block.
  pci 0000:00:02.0: DVI-D-1: no EDID data
  [drm:drm_helper_probe_single_connector_modes] SVIDEO-1
  [drm:drm_vblank_get] enabling vblank on crtc 0, ret: -22
  [drm:intel_crtc_mode_set] Mode for pipe A:
  [drm:drm_mode_debug_printmodeline] Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
  [drm:intel_pipe_set_base] No FB bound
  [drm] TV-13: set mode NTSC 480i 0
  [drm:intel_tv_detect_type] No TV connection detected
  [drm:drm_helper_probe_single_connector_modes] SVIDEO-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 10 enabled? yes
  [drm:drm_enable_connectors] connector 12 enabled? no
  [drm:drm_target_preferred] looking for preferred mode on connector 7
  [drm:drm_target_preferred] found mode 800x600
  [drm:drm_target_preferred] looking for preferred mode on connector 10
  [drm:drm_target_preferred] found mode none
  [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_single_fb_probe] 
  [drm:intelfb_single_fb_probe] creating new fb (console size 800x600, buffer size 800x600)
  [drm:drm_agp_bind_pages] 
  allocated 800x600 fb: 0x00fdf000, bo ffff88006cc61a80
  [drm:intelfb_set_par] 800 -1
  Console: switching to colour frame buffer device 100x37
  [drm:drm_crtc_helper_set_config] 
  [drm:drm_crtc_helper_set_config] crtc: ffff880077e25800 4 fb: ffff88006cc61780 connectors: ffff880077e25ca8 num_connectors: 1 (x, y) (0, 0)
  [drm:drm_crtc_helper_set_config] modes are different
  [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 21:"800x600" 60315 40000 800 840 968 1056 600 601 605 628 0x8 0x0
  [drm:drm_crtc_helper_set_config] attempting to set mode from userspace
  [drm:drm_mode_debug_printmodeline] Modeline 21:"800x600" 60315 40000 800 840 968 1056 600 601 605 628 0x8 0x0
  [drm:drm_vblank_get] enabling vblank on crtc 1, ret: -22
  [drm:intel_crtc_mode_set] Mode for pipe B:
  [drm:drm_mode_debug_printmodeline] Modeline 21:"800x600" 60315 40000 800 840 968 1056 600 601 605 628 0x8 0x0
  [drm:intel_pipe_set_base] Writing base 00FDF000 00000000 0 0
  [drm] LVDS-8: set mode 800x600 15
  fb0: inteldrmfb frame buffer device
  registered panic notifier
  [drm] Initialized i915 1.6.0 20080730 on minor 0

Crippled intel_lvds_init:

  [drm] Initialized drm 1.1.0 20060810
  [drm:drm_init] 
  [drm:drm_get_dev] 
  pci 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
  pci 0000:00:02.0: setting latency timer to 64
  [drm:drm_get_minor] 
  [drm:drm_get_minor] new minor assigned 64
  [drm:drm_get_minor] 
  [drm:drm_get_minor] new minor assigned 0
  [drm:i915_init_phys_hws] Enabled hardware status page
  [drm:intel_opregion_init] graphic opregion physical addr: 0x0
  [drm:intel_opregion_init] ACPI OpRegion not supported!
  [drm:drm_agp_bind_pages] 
  [drm:parse_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:drm_irq_install] irq=16
  [drm:intel_modeset_init] 2 display pipes available.
  [drm:drm_sysfs_connector_add] adding "VGA-1" to sysfs
  [drm:drm_sysfs_hotplug_event] generating hotplug event
  [drm] Skipping LVDS for now.
  [drm:intel_lvds_init] No LVDS modes found, disabling.
  [drm:drm_sysfs_connector_add] adding "DVI-D-1" to sysfs
  [drm:drm_sysfs_hotplug_event] generating hotplug event
  [drm:intel_sdvo_init] SDVOB device VID/DID: 04:AA.03, clock range 25MHz - 165MHz, input 1: Y, input 2: N, output 1: Y, output 2: N
  [drm:intel_sdvo_read_byte] i2c transfer returned -6
  [drm:intel_sdvo_init] No SDVO device found on SDVOC
  [drm:drm_sysfs_connector_add] adding "SVIDEO-1" to sysfs
  [drm:drm_sysfs_hotplug_event] generating hotplug event
  [drm:drm_helper_probe_single_connector_modes] VGA-1
  [drm:drm_helper_probe_single_connector_modes] VGA-1 is disconnected
  [drm:drm_helper_probe_single_connector_modes] DVI-D-1
  [drm:intel_sdvo_detect] SDVO response 1 0
  i2c-adapter i2c-2: unable to read EDID block.
  pci 0000:00:02.0: DVI-D-1: no EDID data
  [drm:drm_helper_probe_single_connector_modes] SVIDEO-1
  [drm:drm_vblank_get] enabling vblank on crtc 0, ret: -22
  [drm:intel_crtc_mode_set] Mode for pipe A:
  [drm:drm_mode_debug_printmodeline] Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
  [drm:intel_pipe_set_base] No FB bound
  [drm] TV-11: set mode NTSC 480i 0
  [drm:intel_tv_detect_type] No TV connection detected
  [drm:drm_helper_probe_single_connector_modes] SVIDEO-1 is disconnected
  [drm:drm_helper_initial_config] *ERROR* connectors have no modes, using standard modes
  [drm:drm_helper_add_std_modes] Adding mode 800x600 to VGA-1
  [drm:drm_helper_add_std_modes] Added std modes on VGA-1
  [drm:drm_mode_debug_printmodeline] Modeline 19:"800x600" 60315 40000 800 840 968 1056 600 601 605 628 0x10 0x5
  [drm:drm_helper_add_std_modes] Adding mode 800x600 to DVI-D-1
  [drm:drm_helper_add_std_modes] Added std modes on DVI-D-1
  [drm:drm_mode_debug_printmodeline] Modeline 20:"800x600" 60315 40000 800 840 968 1056 600 601 605 628 0x10 0x5
  [drm:drm_helper_add_std_modes] Adding mode 800x600 to SVIDEO-1
  [drm:drm_helper_add_std_modes] Added std modes on SVIDEO-1
  [drm:drm_mode_debug_printmodeline] Modeline 21:"800x600" 60315 40000 800 840 968 1056 600 601 605 628 0x10 0x5
  [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 10 enabled? no
  [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 3
  [drm:intelfb_probe] 
  [drm:intelfb_single_fb_probe] 
  [drm:intelfb_single_fb_probe] creating new fb (console size 800x600, buffer size 800x600)
  [drm:drm_agp_bind_pages] 
  allocated 800x600 fb: 0x00fdf000, bo ffff88007336bf00
  [drm:intelfb_set_par] 800 -1
  Console: switching to colour frame buffer device 100x37
  [drm:drm_crtc_helper_set_config] 
  [drm:drm_crtc_helper_set_config] crtc: ffff88007ca17800 3 fb: ffff88007336b3c0 connectors: ffff88007ca17ca8 num_connectors: 1 (x, y) (0, 0)
  [drm:drm_crtc_helper_set_config] modes are different
  [drm:drm_mode_debug_printmodeline] Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
  [drm:drm_mode_debug_printmodeline] Modeline 20:"800x600" 60315 40000 800 840 968 1056 600 601 605 628 0x10 0x5
  [drm:drm_crtc_helper_set_config] attempting to set mode from userspace
  [drm:drm_mode_debug_printmodeline] Modeline 20:"800x600" 60315 40000 800 840 968 1056 600 601 605 628 0x10 0x5
  [drm:intel_crtc_mode_set] Mode for pipe A:
  [drm:drm_mode_debug_printmodeline] Modeline 20:"800x600" 60315 40000 800 840 968 1056 600 601 605 628 0x10 0x5
  [drm:intel_pipe_set_base] Writing base 00FDF000 00000000 0 0
  [drm] TMDS-9: set mode 800x600 14
  fb0: inteldrmfb frame buffer device
  registered panic notifier
  [drm] Initialized i915 1.6.0 20080730 on minor 0


-- 
Paul Collins
Wellington, New Zealand

Dag vijandelijk luchtschip de huismeester is dood



More information about the Intel-gfx mailing list