Bug 19529

Summary: [855GM] entire display shows just one color
Product: xorg Reporter: Bryce Harrington <bryce>
Component: Driver/intelAssignee: Wang Zhenyu <zhenyu.z.wang>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: major    
Priority: medium CC: chops, lesmana
Version: 7.3 (2007.09)Keywords: NEEDINFO
Hardware: x86 (IA32)   
OS: Linux (All)   
URL: https://bugs.edge.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/305269
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
quirk_intel_mb890.patch
none
Xorg.0.log
none
xorg log from ubuntu 9.04 alpha 6 live cd using intel driver from git as of 15.03.2009
none
output of dmidecode
none
vbios.img
none
lspci -vn
none
iBase LVDS quirk
none
iBase LVDS quirk
none
xorg log
none
New ibase quirk
none
xorg log none

Description Bryce Harrington 2009-01-12 23:55:33 UTC
Created attachment 21925 [details] [review]
quirk_intel_mb890.patch

Forwarding this bug from a Ubuntu reporter:
https://bugs.edge.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/305269

[Problem]
In Ubuntu 8.10 (-intel 2:2.4.1-1ubuntu10.1) entire display shows just one color (under gdm and under x) on this hardware.

[Discussion]
Disabling the LVDS on this hardware seems to resolve the problem, thus the attached patch should do it.  However, the hardware advertises LVDS output support, so in theory presumably someone could attach an LVDS to it I guess...  So perhaps this quirk is not the best solution to the problem?  I'm going to leave it for upstream to decide, but here's the patch if quirking off the LVDS is the right thing to do.

[Original Report]
since i upgraded to ubuntu 8.10 my entire display shows just one color (under gdm and under x). i asume it is the color value of a certain pixel because when i move the mouse in a certain spot it will switch color from black to white to brown. aside from the display problem everything else is working fine. i can login, i can start applications (using the alt+f2 tool), i can switch to the virtual console and see the applications i started using ps. i made a screenshot using scrot, the image is showing a normal desktop with a resolution of 1024x768 (monitor should show 1600x1200).

the system is a not a notebook but not a common desktop either. mainboard is a mb890 (link http://www.ibase-i.com.tw/mb890.htm ). the mainboard has three video outputs: VGA, DVI and LVDS. my monitor is connected to the DVI output. monitor is an IBM ThinkVision L200p. other video outputs are not connected to anything, as far as i can tell.

using ubuntu 8.10 and xserver-xorg-video-intel version 2:2.4.1-1ubuntu10.1

[lspci]
00:00.0 Host bridge [0600]: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller [8086:3580] (rev 02)
 Subsystem: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller [8086:3580]
00:02.0 VGA compatible controller [0300]: Intel Corporation 82852/855GM Integrated Graphics Device [8086:3582] (rev 02)
 Subsystem: Intel Corporation 82852/855GM Integrated Graphics Device [8086:3582]
Comment 1 Bryce Harrington 2009-01-12 23:56:13 UTC
Created attachment 21926 [details]
Xorg.0.log
Comment 2 Wang Zhenyu 2009-01-14 21:56:37 UTC
This quirk is removed in

commit e807834863d6d3c3779fc3513e13c6a99f645d96
Author: Zhenyu Wang <zhenyu.z.wang@intel.com>
Date:   Tue Dec 9 19:19:58 2008 +0800

    Remove Cappuccino SlimPRO SP625F 855GM LVDS quirk
    
    It breaks bug #18462 on IBM 855GM with same subdevice ids.
    (cherry picked from commit 0fe61b0b7e3bbe8ced1b0ad2be72c438d200c64b)

As there's other machine with same subdev id that does have LVDS.
So please use Ignore option in xorg.conf instead.
Comment 3 Wang Zhenyu 2009-01-19 19:33:20 UTC
Do we have other method to detect this board? like DMI info? otherwise I can only mark this as wontfix.
Comment 4 Lesmana Zimmer 2009-01-21 15:01:29 UTC
hi, i am the original poster of this bug in launchpad. if you tell me how i can help you with the DMI info i will try my best.

the board does have an advertised LVDS output, so i think it is wrong to disable the LVDS output completely. i don't know what the quirk does exactly. if the quirk tells the driver to consider all the other outputs before LVDS, and it is possible to turn LVDS back on using some xorg.conf option, then i say it would be better to implement the quirk.

i think someone planning to use this board with LVDS is much more likely to know how to deal with the "problem" that LVDS is not working out of the box. someone planning to use this board with DVI is rather not that savvy (that would be me, at least at first).
Comment 5 Wang Zhenyu 2009-01-21 16:55:38 UTC
You can disable LVDS in xorg.conf like

Section "Monitor"
    Identifier "LVDS"
    Option "Ignore" "true"
EndSection

Section "Device"
    Identifier "intel gfx"
    Driver "intel"
    Option "monitor-LVDS" "LVDS"
EndSection

More details in xorg.conf and intel manpage.

If ignored LVDS, that means this output won't be enabled, and won't be seen.
As this board does have users for LVDS, so a driver quirk can not be accepted, instead just using above configs.
Comment 6 Bryce Harrington 2009-01-21 23:18:01 UTC
If a patch to disable LVDS cannot be accepted, then an alternate solution is required for the original issue.  Updating title accordingly.
Comment 7 Wang Zhenyu 2009-02-01 19:00:00 UTC
The solution is to use the setting like in comment #5 for this machine. No other solution now, so I mark this as fixed.
Comment 8 Bryce Harrington 2009-02-02 07:33:42 UTC
We already know that turning LVDS off in xorg.conf works, as mentioned in the original description.  That is a workaround, not a solution, because users cannot be expected to hand-edit their xorg.conf just to get their computer working correctly.

As I mentioned in the original description, it is understood this might not be solvable through an ordinary disable-lvds quirk, but this needs to be detected and solved in some fashion, not simply require the user to hand-edit xorg.conf.
Comment 9 Wang Zhenyu 2009-02-02 16:50:38 UTC
Understood. So please first test with current git master which has LVDS detect code that I'd like to be tested more before pushing to stable. And attach output of dmidecode.
Comment 10 Wang Zhenyu 2009-02-08 18:32:41 UTC
Bryce, I think you should know about those LVDS detect commits on git master, but per our manager's request here's the first commit info.
commit 4d7a95959d8223aec41550eb19f60b3edd7210a1
Author: Zhenyu Wang <zhenyu.z.wang@intel.com>
Date:   Tue Dec 9 19:48:11 2008 +0800

    Try to add LVDS detect support
    
    This one trys to use lid status for LVDS detect,
    which works when internal panel is not used as primary
    display alone, or there's no internal panel at all.
    ACPI button driver's lid state interface is preferred,
    and SWF state is also checked if ACPI method failed.

and some fixes follow it, try to get git master later than that.
Comment 11 Wang Zhenyu 2009-02-17 00:03:18 UTC
Any testing news? Could you attach dmidecode?
Comment 12 Bryce Harrington 2009-02-17 08:57:39 UTC
User reports issue still exists with your 2.6.99.1.
Comment 13 Wang Zhenyu 2009-02-17 19:54:06 UTC
ok, could you attach dmidecode and vbios image?

vbios image is got from "cd /sys/devices/pci0000\:00/0000\:00\:02.0/; echo 1 > rom; cat rom > /tmp/vbios.img".
Comment 14 Wang Zhenyu 2009-02-25 00:04:54 UTC
The LVDS detect problem should be fixed in current git master with commit
commit f6d8ae69b0f97e696c142f06c8038f336ed024f9
Author: Zhenyu Wang <zhenyu.z.wang@intel.com>
Date:   Wed Feb 25 09:57:00 2009 +0800

    Use LVDS config in Driver feature BDB for integrated LVDS check
    
    The LVDS config bits in VBT driver feature block is used by vendor
    to identify the board implement of integrated LVDS/eDP or SDVO LVDS.
    And video bios uses these bits for LVDS enabling or not. So check
    these bits for integrated LVDS might eliminate more quirks.

Please try it, reopen if this issue still exists after testing.
Comment 15 Bryce Harrington 2009-03-12 19:54:39 UTC
User reports in testing xserver-xorg-video-intel version 2.6.99.1+git20090207.3aa8591a that the problem as originally reported still exists.
Comment 16 Wang Zhenyu 2009-03-12 19:58:13 UTC
Bryce, could you ask the reporter to attach info here? We had nothing input from him in this bug. X log and vbios dump is needed.
Comment 17 Bryce Harrington 2009-03-12 20:02:43 UTC
Done.
Comment 18 Lesmana Zimmer 2009-03-15 17:27:55 UTC
hello, sorry for taking so long.

i did everything on an ubuntu 9.04 alpha 6 live cd.

i took the latest intel driver from freedesktop git as of sunday 15.03.2009

$ git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel

during make i got this error

i830_memory.c:534: error: ‘I915_SETPARAM_NUM_USED_FENCES’ undeclared (first use in this function)

which i "fixed" like this. i asume it doesn't matter because my chip is an i855.

-               sp.param = I915_SETPARAM_NUM_USED_FENCES;
+               sp.param = 0; //I915_SETPARAM_NUM_USED_FENCES;

the result is still the same. entire monitor will show just one color. i will attach the xorg log and dmidecode and vbios image.
Comment 19 Lesmana Zimmer 2009-03-15 17:38:46 UTC
Created attachment 23886 [details]
xorg log from ubuntu 9.04 alpha 6 live cd using intel driver from git as of 15.03.2009
Comment 20 Lesmana Zimmer 2009-03-15 17:39:40 UTC
Created attachment 23887 [details]
output of dmidecode
Comment 21 Lesmana Zimmer 2009-03-15 17:40:19 UTC
Created attachment 23888 [details]
vbios.img
Comment 22 Wang Zhenyu 2009-03-15 18:25:26 UTC
ok, 855GM can't use VBIOS method for LVDS detect. This needs a quirk. Looks like dmi info has board_name as  i855-W83627HF, which can be used for identify this board. Could you paste lspci -vn?
Comment 23 Lesmana Zimmer 2009-03-16 02:26:36 UTC
Created attachment 23907 [details]
lspci -vn
Comment 24 Wang Zhenyu 2009-03-16 17:47:18 UTC
Created attachment 23942 [details] [review]
iBase LVDS quirk

Please test with this patch.
Comment 25 Wang Zhenyu 2009-03-19 01:40:06 UTC
Updates? Could you try this patch?
Comment 26 Wang Zhenyu 2009-03-19 01:43:09 UTC
*** Bug 11368 has been marked as a duplicate of this bug. ***
Comment 27 Lesmana Zimmer 2009-03-19 09:38:10 UTC
the pc in question is not at my place. i only have access to the pc on weekends. i will try the patch this weekend.
Comment 28 Lesmana Zimmer 2009-03-22 06:30:35 UTC
i tried the patch. the short answer is: it does not fix the problem.

the long answer:

as before i used ubuntu 9.04 alpha 6 live cd

errors during the compile process:

your patch had a typo
-  pI830->quick_flag |= QUIRK_IGNORE_LVDS;
+  pI830->quirk_flag |= QUIRK_IGNORE_LVDS;

also this problem was still there
-  sp.param = I915_SETPARAM_NUM_USED_FENCES;
+  sp.param = 0; //I915_SETPARAM_NUM_USED_FENCES;

then the compile finished without errors, although some warnings were still there.

i copied the produced files to their respective directories and restarted the x server but it still showed the problem with the color of one pixel on the entire display.

there was another completely unrelated problem on my side: the wlan router constantly dropped the connection so i was unable to work from my laptop. this frustated me so i forgot to make a copy of the xorg log file. tell me if you need the xorg log file and i will repeat the process and upload the log file here.
Comment 29 Wang Zhenyu 2009-03-22 18:12:05 UTC
Do you use a kernel without dmi info exposed? Could you attach current X log? Could you check /sys/class/dmi/ exists and its content, or non-existing?
Comment 30 Lesmana Zimmer 2009-03-26 03:03:34 UTC
i use the kernel as it is in ubuntu 9.04 alpha 6.

/sys/class/dmi/ exists. here is the contents:

ubuntu@ubuntu:~$ cd /sys/class/dmi/id
ubuntu@ubuntu:/sys/class/dmi/id$ for i in $(ls -1); do echo \#cat $i; sudo cat $i; done
#cat bios_date
07/06/2006
#cat bios_vendor
Phoenix Technologies, LTD
#cat bios_version
6.00 PG
#cat board_asset_tag

#cat board_name
i855-W83627HF
#cat board_serial
 
#cat board_vendor
 
#cat board_version
 
#cat chassis_asset_tag
 
#cat chassis_serial
 
#cat chassis_type
3
#cat chassis_vendor
 
#cat chassis_version
 
#cat modalias
dmi:bvnPhoenixTechnologies,LTD:bvr6.00PG:bd07/06/2006:svn:pn:pvr:rvn:rni855-W83627HF:rvr:cvn:ct3:cvr:
#cat power
cat: power: Is a directory
#cat product_name
 
#cat product_serial
 
#cat product_version
 
#cat subsystem
cat: subsystem: Is a directory
#cat sys_vendor
 
#cat uevent
MODALIAS=dmi:bvnPhoenixTechnologies,LTD:bvr6.00PG:bd07/06/2006:svn:pn:pvr:rvn:rni855-W83627HF:rvr:cvn:ct3:cvr:
ubuntu@ubuntu:/sys/class/dmi/id$ 
Comment 31 Wang Zhenyu 2009-03-26 17:53:27 UTC
ok, I tried to use 'board_name' from dmi to quirk LVDS on your board, as you can see from my patch, not sure why it doesn't work...could you do some ErrorF debug around it to see anything goes wrong?
Comment 32 Wang Zhenyu 2009-03-30 22:30:22 UTC
Created attachment 24386 [details] [review]
iBase LVDS quirk

Could you test with this patch and send X log?
Comment 33 Lesmana Zimmer 2009-04-01 15:02:52 UTC
i tried the new patch. i hope i got it right. i had two kids age 4 and 6 around me while trying this.

this time i used ubuntu 9.04 beta live cd

i did git clone as usual

$ git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel

since that didn't compile with various error messages i tried some older versions until i tried the one from comment #14

$ git reset --hard f6d8ae69b0f97e696c142f06c8038f336ed024f9

applied patch, compiled, restarted xserver and ...

the screen is showing the desktop as expected, xorg log says driver version 2.6.99, but there are also these lines in the log

ibase: LVDS quirk check!
ibase: non-match board name i855-W83627HF

i am confused.
Comment 34 Lesmana Zimmer 2009-04-01 15:05:40 UTC
Created attachment 24447 [details]
xorg log

xorg log from ubuntu 9.04 beta livecd using intel driver patched as described in comment #33
Comment 35 Wang Zhenyu 2009-04-01 18:51:18 UTC
Created attachment 24451 [details] [review]
New ibase quirk

yeah, it looks using VBT LVDS config bit can fix your problem, but as it gets more regressions I have disabled it in current git master now. So could you try this patch against master? It looks we should check the board name carefully.
Comment 36 Lesmana Zimmer 2009-04-05 10:47:29 UTC
Created attachment 24583 [details]
xorg log

attached is xorg log from ubuntu 9.04 beta live cd using latest intel driver with patch applied and latest drm.

i tested the patch against master:
$ git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel

also downloaded latest drm:
$ git clone git://anongit.freedesktop.org/git/mesa/drm

everything done on ubuntu 9.04 beta live cd.

applied patch and compiled. this time it went without any errors :)

screen is showing correct image. xorg log says intel driver version 2.6.99 and these lines are there

ibase: LVDS quirk check!
ibase: matching board name found!

i think all went well
Comment 37 Wang Zhenyu 2009-04-06 20:06:16 UTC
Pushed the fix. Thanks for testing!
commit 63b4b5efac936c674dedad8125a8dbac4f000908
Author: Zhenyu Wang <zhenyu.z.wang@intel.com>
Date:   Tue Apr 7 10:53:08 2009 +0800

    quirk LVDS on ibase MB890 855GM board
    
    fix bug #19529

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.