Comment 42 for bug 410455

Revision history for this message
Stefan Glasenhardt (glasen) wrote :

Hi,

This is definitely not a xorg-driver bug. It is a kernel bug. I suffer from the same problem (Dell Latitude D505, Intel 855GM) and only disabling all display-modes (Ext. VGA, HDMI, TV-Out, etc.) except the internal display (LVDS) in the kernel source file "drivers/gpu/drm/i915/intel_display.c" in lines 69852-70373 solves the problem :

        list_for_each_entry(connector, &mode_config->connector_list, head) {
                struct intel_output *intel_output = to_intel_output(connector);

                if (!connector->encoder || connector->encoder->crtc != crtc)
                        continue;

                switch (intel_output->type) {
/* case INTEL_OUTPUT_LVDS: */ -> Always enable LVDS
                        is_lvds = true;
/* break;
                case INTEL_OUTPUT_SDVO:
                case INTEL_OUTPUT_HDMI:
                        is_sdvo = true;
                        if (intel_output->needs_tv_clock)
                                is_tv = true;
                        break;
                case INTEL_OUTPUT_DVO:
                        is_dvo = true;
                        break;
                case INTEL_OUTPUT_TVOUT:
                        is_tv = true;
                        break;
                case INTEL_OUTPUT_ANALOG:
                        is_crt = true;
                        break;
                case INTEL_OUTPUT_DISPLAYPORT:
                        is_dp = true;
                        break;
                case INTEL_OUTPUT_EDP:
                        is_edp = true;
                        break;*/
                }

                num_outputs++;
        }

It seems that the kernel does not correcty handle the display pipes of the intel chipset and always enables the VGA-port as first display and oversees the internal display. I tested the kernel with two external display (VGA and DVI-port) and both display work perfectly. Only the internal display isn't initialized correctly.