Bug 11103 - intel-driver-2.0.0 with 915GM, panel stays black, "Couldn't detect panel mode"
Summary: intel-driver-2.0.0 with 915GM, panel stays black, "Couldn't detect panel mode"
Status: RESOLVED INVALID
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: 7.2 (2007.02)
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Hong Liu
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 13027
  Show dependency treegraph
 
Reported: 2007-05-30 04:23 UTC by Uli
Modified: 2008-01-09 20:38 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
simple conf with dri disabled (1.55 KB, application/octet-stream)
2007-05-30 04:25 UTC, Uli
no flags Details
Xorg.0.log (30.38 KB, text/plain)
2007-05-30 04:26 UTC, Uli
no flags Details

Description Uli 2007-05-30 04:23:23 UTC
Hi!

Running gentoo on an Asus R2H UMPC I get a blank screen with 2.0.0.
(1.7.4 runs fine on the panel, although I get segfaults when trying dual head configs - which I'd really like to do)
Panel error comes with and without DRI.

kernel 2.6.22-rc2
xorg-server 1.2.0-r3
xf86-video-intel-2.0.0

Card is:
00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 04) (prog-if 00 [VGA])
        Subsystem: ASUSTeK Computer Inc. Unknown device 12f7
Comment 1 Uli 2007-05-30 04:25:20 UTC
Created attachment 10134 [details]
simple conf with dri disabled
Comment 2 Uli 2007-05-30 04:26:05 UTC
Created attachment 10135 [details]
Xorg.0.log
Comment 3 Uli 2007-05-30 05:19:49 UTC
same thing with today's git intel driver and xorg-server-1.3.0.0
Comment 4 Jesse Barnes 2007-08-09 11:45:36 UTC
Looks like a neat little machine, too bad we can't properly detect the panel.

You could try modifying i830_lvds.c to force it to grab the current panel mode (add "|| 1" or similiar to the end of the line that says:
  if (dev_priv->panel_fixed_mode == NULL) {
or add a new quirk for your device in i830_quirks.c if you can.

Hopefully that'll get the new driver up and running for you.
Comment 5 Gordon Jin 2007-09-11 20:47:19 UTC
Uli, any problem in trying comment#4?
Comment 6 Gordon Jin 2007-10-17 19:20:06 UTC
Jesse, are you able to add the quirk?
Comment 7 Jesse Barnes 2007-10-19 15:11:41 UTC
Uli, can you try running the attached program on your system (make sure you have ACPI enabled in your kernel).  If it works, it means we just need to add ACPI EDID detection to the X server, otherwise something else is going on...

Also, please attach the output of 'ls -R /proc/acpi' from your system.

Sorry this one has taken so long to work out.

Thanks,
Jesse
Comment 8 Jesse Barnes 2007-10-19 15:15:04 UTC
since bz doesn't seem to want to let me attach the file, here it is inline.

/*
 * Copyright (c) 2007 Intel Corporation, All rights reserved
 *   Jesse Barnes <jesse.barnes@intel.com>
 */

#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>

#define EDID_LEN 128
#define EDID_HEADER_LEN 8
static const char edid_header[] = { 0x00, 0xff, 0xff, 0xff,
                                    0xff, 0xff, 0xff, 0x00 };

static char *acpi_get_edid(char *path)
{
        int fd, ret;
        char *edid;

        edid = malloc(EDID_LEN);
        if (!edid)
                return NULL;

        fd = open(path, O_RDONLY);
        if (fd == -1)
                return NULL;

        ret = read(fd, edid, EDID_LEN);
        if (ret != EDID_LEN) {
                close(fd);
                return NULL;
        }

        close(fd);
        return edid;
}

static void validate_edid(char *edid)
{
        if (memcmp(edid, edid_header, EDID_HEADER_LEN) == 0)
                printf("Found valid EDID. \n");
        else
                printf("EDID data invalid\n");
}

int main(void)
{
        struct stat stat_buf;
        char *edid;

        if (!stat("/proc/acpi/video/VID/LCD0", &stat_buf)) {
                edid = acpi_get_edid("/proc/acpi/video/VID/LCD0/EDID");
                if (edid)
                        validate_edid(edid);
        }

        if (!edid && !stat("/proc/acpi/video/VID1/LCD0", &stat_buf)) {
                edid = acpi_get_edid("/proc/acpi/video/VID1/LCD0/EDID");
                if (edid)
                        validate_edid(edid);
        }

        return 0;
}
Comment 9 Jesse Barnes 2007-10-31 14:01:25 UTC
Uli, any chance you can try out the program in this bug?

Thanks,
Jesse
Comment 10 Jesse Barnes 2007-11-28 14:41:45 UTC
Reassigning to Hong as I think he'll take care of this one along with the rest of the LVDS initial mode bugs.
Comment 11 Michael Fu 2007-12-02 18:47:07 UTC
uli, if no response from you, we will have to close this bug...would you please test as comment# 7 and comment# 8?
Comment 12 Jesse Barnes 2007-12-02 19:42:42 UTC
It's a shame if we can't find a tester for this one... I suspect several laptops have similar problems, and it would be good if we could figure out how to get EDID data from ACPI to make them work.  Oh well I guess the code is easy enough to put together if we end up seeing something similar in the future.
Comment 13 Michael Fu 2008-01-08 21:12:24 UTC
last ping...
Comment 14 Michael Fu 2008-01-09 20:38:43 UTC
reject this bug due to no response from bug reporter..


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.