Bug 19460

Summary: [915GM] VBIOS parsing fails to account for varying LVDS data block size
Product: xorg Reporter: Nuzhdin Urii <vzorvat>
Component: Driver/intelAssignee: Jesse Barnes <jbarnes>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: major    
Priority: medium CC: bryce, jbarnes, martin1404, michael.fu, rofmeister
Version: unspecifiedKeywords: NEEDINFO
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
xorg.conf
none
xorg.0.log
none
Xorg log with 2.6.0 driver
none
Xorg conf i used to start with 2.6.0 driver
none
Here Xorg.log with ModeDebug enabled
none
xorg log with tv output configured
none
xorg log
none
xorg conf
none
please try the patch on your machine, thanks.
none
with extra debug info
none
please try the patch on your machine, thanks.
none
it started
none
please try it on your machine, thanks
none
please try the patch on your machine, thanks.
none
working patch
none
working patch
none
rom dump
none
Add LVDS LFP data quirk
none
LVDS data fetch fix none

Description Nuzhdin Urii 2009-01-08 04:00:58 UTC
after starting x server it fails with error:
"Couldn't find PLL settings for mode!"

here is my Xorg log:
//////////////////////////////////////////////////////////////////////////////
X.Org X Server 1.5.3
Release Date: 5 November 2008
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.28-gentoo i686 
Current Operating System: Linux R2H 2.6.28-gentoo #4 Thu Jan 8 14:06:15 MSK 2009 i686
Build Date: 08 January 2009  06:20:31PM                                              
                                                                                     
        Before reporting problems, check http://wiki.x.org                           
        to make sure that you have the latest version.                               
Markers: (--) probed, (**) from config file, (==) default setting,                   
        (++) from command line, (!!) notice, (II) informational,                     
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.                
(==) Log file: "/var/log/Xorg.0.log", Time: Fri Jan  9 12:50:18 2009                 
(==) Using config file: "/etc/X11/xorg.conf"                                         
(==) ServerLayout "Simple Layout"                                                    
(**) |-->Screen "Screen 1" (0)                                                       
(**) |   |-->Monitor "display"                                                       
(**) |   |-->Device "videocard"                                                      
(**) |-->Input Device "Mouse1"                                                       
(**) |-->Input Device "touchscreen0"                                                 
(**) |-->Input Device "Keyboard1"                                                    
(==) Automatically adding devices                                                    
(==) Automatically enabling devices                                                  
(WW) The directory "/usr/lib/X11/fonts/local/" does not exist.                       
        Entry deleted from font path.                                                
(WW) The directory "/usr/lib/X11/fonts/misc/" does not exist.                        
        Entry deleted from font path.                                                
(WW) The directory "/usr/lib/X11/fonts/75dpi/" does not exist.                       
        Entry deleted from font path.                                                
(WW) The directory "/usr/lib/X11/fonts/100dpi/" does not exist.                      
        Entry deleted from font path.                                                
(WW) The directory "/usr/lib/X11/fonts/Type1/" does not exist.                       
        Entry deleted from font path.                                                
(WW) The directory "/usr/lib/X11/fonts/TrueType/" does not exist.                    
        Entry deleted from font path.                                                
(WW) The directory "/usr/lib/X11/fonts/freefont/" does not exist.                    
        Entry deleted from font path.                                                
(WW) The directory "/usr/lib/X11/fonts/75dpi/" does not exist.                       
        Entry deleted from font path.                                                
(WW) The directory "/usr/lib/X11/fonts/100dpi/" does not exist.                      
        Entry deleted from font path.                                                
(==) Including the default font path built-ins.                                      
(**) FontPath set to:                                                                
        built-ins,                                                                   
        built-ins                                                                    
(==) ModulePath set to "/usr/lib/xorg/modules"                                       
(WW) Duplicate core pointer devices.  Removing core pointer attribute from "touchscreen0"
(WW) AllowEmptyInput is on, devices using drivers 'kbd' or 'mouse' will be disabled.     
(WW) Disabling Mouse1                                                                    
(WW) Disabling Keyboard1                                                                 
(WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)                
(II) No APM support in BIOS or kernel                                                    
(II) Loader magic: 0x81cfb80                                                             
(II) Module ABI versions:                                                                
        X.Org ANSI C Emulation: 0.4                                                      
        X.Org Video Driver: 4.1                                                          
        X.Org XInput driver : 2.1                                                        
        X.Org Server Extension : 1.1                                                     
        X.Org Font Renderer : 0.6                                                        
(II) Loader running on linux                                                             
(--) using VT number 7                                                                   

(--) PCI:*(0@0:2:0) Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller rev 4, Mem @ 0xfeb80000/0, 0xd0000000/0, 0xfeb40000/0, I/O @ 0x0000ec00/0
(--) PCI: (0@0:2:1) Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller rev 4, Mem @ 0xfea80000/0                                                
(II) System resource ranges:                                                                                                                                       
        [0] -1  0       0xffffffff - 0xffffffff (0x1) MX[B]                                                                                                        
        [1] -1  0       0x000f0000 - 0x000fffff (0x10000) MX[B]                                                                                                    
        [2] -1  0       0x000c0000 - 0x000effff (0x30000) MX[B]                                                                                                    
        [3] -1  0       0x00000000 - 0x0009ffff (0xa0000) MX[B]                                                                                                    
        [4] -1  0       0x0000ffff - 0x0000ffff (0x1) IX[B]                                                                                                        
        [5] -1  0       0x00000000 - 0x00000000 (0x1) IX[B]                                                                                                        
(II) "extmod" will be loaded. This was enabled by default and also specified in the config file.                                                                   
(II) "dbe" will be loaded. This was enabled by default and also specified in the config file.                                                                      
(II) "glx" will be loaded by default.                                                                                                                              
(II) "freetype" will be loaded. This was enabled by default and also specified in the config file.                                                                 
(II) "record" will be loaded by default.                                                                                                                           
(II) "dri" will be loaded by default.                                                                                                                              
(II) LoadModule: "dbe"                                                                                                                                             

(II) Loading /usr/lib/xorg/modules/extensions//libdbe.so
(II) Module dbe: vendor="X.Org Foundation"              
        compiled for 1.5.3, module version = 1.0.0      
        Module class: X.Org Server Extension            
        ABI class: X.Org Server Extension, version 1.1  
(II) Loading extension DOUBLE-BUFFER                    
(II) LoadModule: "extmod"                               

(II) Loading /usr/lib/xorg/modules/extensions//libextmod.so
(II) Module extmod: vendor="X.Org Foundation"              
        compiled for 1.5.3, module version = 1.0.0         
        Module class: X.Org Server Extension               
        ABI class: X.Org Server Extension, version 1.1     
(II) Loading extension SHAPE                               
(II) Loading extension MIT-SUNDRY-NONSTANDARD              
(II) Loading extension BIG-REQUESTS                        
(II) Loading extension SYNC                                
(II) Loading extension MIT-SCREEN-SAVER                    
(II) Loading extension XC-MISC                             
(II) Loading extension XFree86-VidModeExtension            
(II) Loading extension XFree86-Misc                        
(II) Loading extension DPMS                                
(II) Loading extension TOG-CUP                             
(II) Loading extension Extended-Visual-Information         
(II) Loading extension XVideo                              
(II) Loading extension XVideo-MotionCompensation           
(II) Loading extension X-Resource                          
(II) LoadModule: "freetype"                                

(II) Loading /usr/lib/xorg/modules/fonts//libfreetype.so
(II) Module freetype: vendor="X.Org Foundation & the After X-TT Project"
        compiled for 1.5.3, module version = 2.1.0                      
        Module class: X.Org Font Renderer                               
        ABI class: X.Org Font Renderer, version 0.6                     
(II) Loading font FreeType                                              
(II) LoadModule: "glx"                                                  

(II) Loading /usr/lib/xorg/modules/extensions//libglx.so
(II) Module glx: vendor="X.Org Foundation"              
        compiled for 1.5.3, module version = 1.0.0      
        ABI class: X.Org Server Extension, version 1.1  
(==) AIGLX enabled                                      
(==) Exporting typical set of GLX visuals               
(II) Loading extension GLX                              
(II) LoadModule: "record"                               

(II) Loading /usr/lib/xorg/modules/extensions//librecord.so
(II) Module record: vendor="X.Org Foundation"              
        compiled for 1.5.3, module version = 1.13.0        
        Module class: X.Org Server Extension               
        ABI class: X.Org Server Extension, version 1.1     
(II) Loading extension RECORD                              
(II) LoadModule: "dri"                                     

(II) Loading /usr/lib/xorg/modules/extensions//libdri.so
(II) Module dri: vendor="X.Org Foundation"              
        compiled for 1.5.3, module version = 1.0.0      
        ABI class: X.Org Server Extension, version 1.1  
(II) Loading extension XFree86-DRI                      
(II) LoadModule: "intel"                                

(II) Loading /usr/lib/xorg/modules/drivers//intel_drv.so
(II) Module intel: vendor="X.Org Foundation"            
        compiled for 1.5.3, module version = 2.5.99     
        Module class: X.Org Video Driver                
        ABI class: X.Org Video Driver, version 4.1      
(II) LoadModule: "evtouch"                              

(WW) Warning, couldn't open module evtouch
(II) UnloadModule: "evtouch"              
(EE) Failed to load module "evtouch" (module does not exist, 0)
(II) intel: Driver for Intel Integrated Graphics Chipsets: i810,
        i810-dc100, i810e, i815, i830M, 845G, 852GM/855GM, 865G, 915G,
        E7221 (i915), 915GM, 945G, 945GM, 945GME, 965G, G35, 965Q, 946GZ,
        965GM, 965GME/GLE, G33, Q35, Q33,                                
        Mobile IntelĀ® GM45 Express Chipset,                              
        Intel Integrated Graphics Device, G45/G43, Q45/Q43, G41          
(II) Primary Device is: PCI 00@00:02:0                                   
(II) resource ranges after xf86ClaimFixedResources() call:               
        [0] -1  0       0xffffffff - 0xffffffff (0x1) MX[B]              
        [1] -1  0       0x000f0000 - 0x000fffff (0x10000) MX[B]          
        [2] -1  0       0x000c0000 - 0x000effff (0x30000) MX[B]          
        [3] -1  0       0x00000000 - 0x0009ffff (0xa0000) MX[B]          
        [4] -1  0       0x0000ffff - 0x0000ffff (0x1) IX[B]              
        [5] -1  0       0x00000000 - 0x00000000 (0x1) IX[B]              
(II) resource ranges after probing:                                      
        [0] -1  0       0xffffffff - 0xffffffff (0x1) MX[B]              
        [1] -1  0       0x000f0000 - 0x000fffff (0x10000) MX[B]          
        [2] -1  0       0x000c0000 - 0x000effff (0x30000) MX[B]          
        [3] -1  0       0x00000000 - 0x0009ffff (0xa0000) MX[B]          
        [4] 0   0       0x000a0000 - 0x000affff (0x10000) MS[B]          
        [5] 0   0       0x000b0000 - 0x000b7fff (0x8000) MS[B]           
        [6] 0   0       0x000b8000 - 0x000bffff (0x8000) MS[B]           
        [7] -1  0       0x0000ffff - 0x0000ffff (0x1) IX[B]              
        [8] -1  0       0x00000000 - 0x00000000 (0x1) IX[B]              
        [9] 0   0       0x000003b0 - 0x000003bb (0xc) IS[B]              
        [10] 0  0       0x000003c0 - 0x000003df (0x20) IS[B]             
(II) Loading sub module "vgahw"                                          
(II) LoadModule: "vgahw"                                                 

(II) Loading /usr/lib/xorg/modules//libvgahw.so
(II) Module vgahw: vendor="X.Org Foundation"   
        compiled for 1.5.3, module version = 0.1.0
        ABI class: X.Org Video Driver, version 4.1
(**) intel(0): Depth 24, (--) framebuffer bpp 32  
(==) intel(0): RGB weight 888                     
(==) intel(0): Default visual is TrueColor        
(II) intel(0): Integrated Graphics Chipset: Intel(R) 915GM
(--) intel(0): Chipset: "915GM"                           
(--) intel(0): Linear framebuffer at 0xD0000000           
(--) intel(0): IO registers at addr 0xFEB80000            
(WW) intel(0): libpciaccess reported 0 rom size, guessing 64kB
(==) intel(0): Using EXA for acceleration                     
(II) intel(0): 2 display pipes available.                     
(II) Loading sub module "ddc"                                 
(II) LoadModule: "ddc"                                        
(II) Module "ddc" already built-in                            
(II) Loading sub module "i2c"                                 
(II) LoadModule: "i2c"                                        
(II) Module "i2c" already built-in                            
(II) intel(0): Output VGA using monitor section display       
(II) intel(0): Output LVDS has no monitor section             
(II) intel(0): I2C bus "LVDSDDC_C" initialized.               
(II) intel(0): Attempting to determine panel fixed mode.      
(II) intel(0): I2C device "LVDSDDC_C:ddc2" registered at address 0xA0.
(II) intel(0): I2C device "LVDSDDC_C:ddc2" removed.                   
(II) intel(0): Output TV has no monitor section                       
(II) intel(0): I2C bus "CRTDDC_A" initialized.                        
(II) intel(0): I2C bus "CRTDDC_A" removed.                            
(II) intel(0): I2C device "LVDSDDC_C:ddc2" registered at address 0xA0.
(II) intel(0): I2C device "LVDSDDC_C:ddc2" removed.                   
(II) intel(0): Output VGA disconnected                                
(II) intel(0): Output LVDS connected                                  
(II) intel(0): Output TV connected                                    
(II) intel(0): Using fuzzy aspect match for initial modes             
(II) intel(0): Output LVDS using initial mode 1024x768                
(II) intel(0): Output TV using initial mode 1024x768                  
(II) intel(0): detected 256 kB GTT.                                   
(II) intel(0): detected 16124 kB stolen memory.                       
(==) intel(0): video overlay key set to 0x101fe                       
(==) intel(0): Will not try to enable page flipping                   
(==) intel(0): Triple buffering disabled                              
(==) intel(0): Using gamma correction (1.0, 1.0, 1.0)                 
(==) intel(0): DPI set to (96, 96)                                    
(II) Loading sub module "fb"                                          
(II) LoadModule: "fb"                                                 

(II) Loading /usr/lib/xorg/modules//libfb.so
(II) Module fb: vendor="X.Org Foundation"   
        compiled for 1.5.3, module version = 1.0.0
        ABI class: X.Org ANSI C Emulation, version 0.4
(II) Loading sub module "exa"                         
(II) LoadModule: "exa"                                

(II) Loading /usr/lib/xorg/modules//libexa.so
(II) Module exa: vendor="X.Org Foundation"   
        compiled for 1.5.3, module version = 2.4.0
        ABI class: X.Org Video Driver, version 4.1
(II) Loading sub module "ramdac"                  
(II) LoadModule: "ramdac"                         
(II) Module "ramdac" already built-in             
(II) intel(0): Comparing regs from server start up to After PreInit
(WW) intel(0): Register 0x61200 (PP_STATUS) changed from 0xc0000008 to 0xd0000009
(WW) intel(0): PP_STATUS before: on, ready, sequencing idle                      
(WW) intel(0): PP_STATUS after: on, ready, sequencing on                         
(WW) intel(0): Register 0x70024 (PIPEASTAT) changed from 0x00000800 to 0x00000000
(WW) intel(0): PIPEASTAT before: status: GMBUS_INT_STATUS                        
(WW) intel(0): PIPEASTAT after: status:                                          
(WW) intel(0): Register 0x71024 (PIPEBSTAT) changed from 0x80000202 to 0x00000202
(WW) intel(0): PIPEBSTAT before: status: FIFO_UNDERRUN VSYNC_INT_STATUS VBLANK_INT_STATUS
(WW) intel(0): PIPEBSTAT after: status: VSYNC_INT_STATUS VBLANK_INT_STATUS               
(==) Depth 24 pixmap format is 32 bpp                                                    
(II) do I need RAC?  No, I don't.                                                        
(II) resource ranges after preInit:                                                      
        [0] -1  0       0xffffffff - 0xffffffff (0x1) MX[B]                              
        [1] -1  0       0x000f0000 - 0x000fffff (0x10000) MX[B]                          
        [2] -1  0       0x000c0000 - 0x000effff (0x30000) MX[B]                          
        [3] -1  0       0x00000000 - 0x0009ffff (0xa0000) MX[B]                          
        [4] 0   0       0x000a0000 - 0x000affff (0x10000) MS[B](OprD)                    
        [5] 0   0       0x000b0000 - 0x000b7fff (0x8000) MS[B](OprD)                     
        [6] 0   0       0x000b8000 - 0x000bffff (0x8000) MS[B](OprD)                     
        [7] -1  0       0x0000ffff - 0x0000ffff (0x1) IX[B]                              
        [8] -1  0       0x00000000 - 0x00000000 (0x1) IX[B]                              
        [9] 0   0       0x000003b0 - 0x000003bb (0xc) IS[B](OprU)                        
        [10] 0  0       0x000003c0 - 0x000003df (0x20) IS[B](OprU)                       
(II) intel(0): Kernel reported 172544 total, 1 used                                      
(II) intel(0): I830CheckAvailableMemory: 690172 kB available                             
drmOpenDevice: node name is /dev/dri/card0                                               
drmOpenDevice: open result is 10, (OK)                                                   
drmOpenDevice: node name is /dev/dri/card0                                               
drmOpenDevice: open result is 10, (OK)                                                   
drmOpenByBusid: Searching for BusID pci:0000:00:02.0                                     
drmOpenDevice: node name is /dev/dri/card0                                               
drmOpenDevice: open result is 10, (OK)                                                   
drmOpenByBusid: drmOpenMinor returns 10                                                  
drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0                                     
(II) [drm] DRM interface version 1.3                                                     
(II) [drm] DRM open master succeeded.                                                    
(II) intel(0): [drm] Using the DRM lock SAREA also for drawables.                        
(II) intel(0): [drm] framebuffer mapped by ddx driver                                    
(II) intel(0): [drm] added 1 reserved context for kernel                                 
(II) intel(0): X context handle = 0x1                                                    
(II) intel(0): [drm] installed DRM signal handler                                        
(**) intel(0): Framebuffer compression enabled                                           
(**) intel(0): Tiling enabled                                                            
(==) intel(0): VideoRam: 262144 KB                                                       
(II) intel(0): Attempting memory allocation with tiled buffers.                          
(II) intel(0): Tiled allocation successful.                                              
(II) intel(0): [drm] Registers = 0xfeb80000
(II) intel(0): [drm] Initialized kernel agp heap manager, 33554432
(II) intel(0): [dri] visual configs initialized
(II) intel(0): Page Flipping disabled
(II) intel(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000
(II) EXA(0): Offscreen pixmap area of 50331648 bytes
(II) EXA(0): Driver registered support for the following operations:
(II)         Solid
(II)         Copy
(II)         Composite (RENDER acceleration)
(==) intel(0): Backing store disabled
(==) intel(0): Silken mouse enabled
(II) intel(0): Initializing HW Cursor
(II) intel(0): [DRI] installation complete
(II) intel(0): xf86BindGARTMemory: bind key 0 at 0x0a9f4000 (pgoffset 43508)
(II) intel(0): xf86BindGARTMemory: bind key 1 at 0x0d9f4000 (pgoffset 55796)
(II) intel(0): Fixed memory allocation layout:
(II) intel(0): 0x00000000-0x005fffff: compressed frame buffer (6144 kB, 0x000000002f000000 physical
)
(II) intel(0): 0x00600000-0x00600fff: compressed ll buffer (4 kB, 0x000000002f600000 physical
)
(II) intel(0): 0x00601000-0x0060afff: HW cursors (40 kB, 0x000000002f601000 physical
)
(II) intel(0): 0x0060b000-0x0060bfff: overlay registers (4 kB, 0x000000002f60b000 physical
)
(II) intel(0): 0x00fbf000:            end of stolen memory
(II) intel(0): 0x00fbf000-0x0a9f3fff: DRI memory manager (157908 kB)
(II) intel(0): 0x0a9f4000-0x0d9f3fff: exa offscreen (49152 kB)
(II) intel(0): 0x0d9f4000-0x0f9f3fff: classic textures (32768 kB)
(II) intel(0): 0x10000000:            end of aperture
(II) intel(0): BO memory allocation layout:
(II) intel(0): 0x00fbf000:            start of memory manager
(II) intel(0): 0x01000000-0x01ffffff: depth buffer (16384 kB) X tiled
(II) intel(0): 0x02000000-0x02ffffff: back buffer (16384 kB) X tiled
(II) intel(0): 0x03000000-0x03ffffff: front buffer (16384 kB) X tiled
(II) intel(0): 0x00fdf000-0x00fe6fff: logical 3D context (32 kB)
(II) intel(0): 0x0a9f4000:            end of memory manager

Fatal server error:
Couldn't find PLL settings for mode!

(II) intel(0): xf86UnbindGARTMemory: unbind key 0
(II) intel(0): xf86UnbindGARTMemory: unbind key 1
//////////////////////////////////////////////////////////////////////////////

and xorg.conf (it's VERY bad, know,i tryed to change many things in it,but bug stll here,if i use VESA xorg server works)

//////////////////////////////////////////////////////////////////////////////
# File generated by xorgconfig.

#
# Copyright 2004 The X.Org Foundation
#                                    
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation 
# the rights to use, copy, modify, merge, publish, distribute, sublicense,  
# and/or sell copies of the Software, and to permit persons to whom the     
# Software is furnished to do so, subject to the following conditions:      
#                                                                           
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.                       
#                                                                           
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL  
# The X.Org Foundation BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF 
# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE    
# SOFTWARE.                                                                 
#                                                                           
# Except as contained in this notice, the name of The X.Org Foundation shall
# not be used in advertising or otherwise to promote the sale, use or other 
# dealings in this Software without prior written authorization from        
# The X.Org Foundation.                                                     
#                                                                           

# **********************************************************************
# Refer to the xorg.conf(5) man page for details about the format of    
# this file.                                                            
# **********************************************************************

# **********************************************************************
# Module section -- this  section  is used to specify                   
# which dynamically loadable modules to load.                           
# **********************************************************************
#                                                                       
Section "Module"                                                        

# This loads the DBE extension module.

    Load        "dbe"   # Double buffer extension

# This loads the miscellaneous extensions module, and disables
# initialisation of the XFree86-DGA extension within that module.
    SubSection  "extmod"                                         
      Option    "omit xfree86-dga"   # don't initialise the DGA extension
    EndSubSection                                                        

# This loads the font modules
#    Load        "type1"     
    Load        "freetype"   
#    Load        "xtt"       

# This loads the GLX module
#    Load       "glx"      
# This loads the DRI module
#    Load       "dri"      

EndSection

# **********************************************************************
# Files section.  This allows default font and rgb paths to be set      
# **********************************************************************

Section "Files"

# Multiple FontPath entries are allowed (which are concatenated together),
# as well as specifying multiple comma-separated entries in one FontPath  
# command (or a combination of both methods)                              
#                                                                         

    FontPath   "built-ins"
    FontPath   "/usr/lib/X11/fonts/local/"
    FontPath   "/usr/lib/X11/fonts/misc/" 
    FontPath   "/usr/lib/X11/fonts/75dpi/:unscaled"
    FontPath   "/usr/lib/X11/fonts/100dpi/:unscaled"
    FontPath   "/usr/lib/X11/fonts/Type1/"          
    FontPath   "/usr/lib/X11/fonts/TrueType/"       
    FontPath   "/usr/lib/X11/fonts/freefont/"       
    FontPath   "/usr/lib/X11/fonts/75dpi/"          
    FontPath   "/usr/lib/X11/fonts/100dpi/"         

# The module search path.  The default path is shown here.

#    ModulePath "/usr/lib/modules"

EndSection

# **********************************************************************
# Server flags section.                                                 
# **********************************************************************

Section "ServerFlags"

# Uncomment this to cause a core dump at the spot where a signal is 
# received.  This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging  

#    Option "NoTrapSignals"

# Uncomment this to disable the <Ctrl><Alt><Fn> VT switch sequence
# (where n is 1 through 12).  This allows clients to receive these key
# events.                                                             

#    Option "DontVTSwitch"

# Uncomment this to disable the <Ctrl><Alt><BS> server abort sequence
# This allows clients to receive this key event.                     

#    Option "DontZap"

# Uncomment this to disable the <Ctrl><Alt><KP_+>/<KP_-> mode switching
# sequences.  This allows clients to receive these key events.         

#    Option "Dont Zoom"

# Uncomment this to disable tuning with the xvidtune client. With
# it the client can still run and fetch card and monitor attributes,
# but it will not be allowed to change them. If it tries it will    
# receive a protocol error.                                         

#    Option "DisableVidModeExtension"

# Uncomment this to enable the use of a non-local xvidtune client. 

#    Option "AllowNonLocalXvidtune"

# Uncomment this to disable dynamically modifying the input device
# (mouse and keyboard) settings.                                  

#    Option "DisableModInDev"

# Uncomment this to enable the use of a non-local client to
# change the keyboard or mouse settings (currently only xset).

#    Option "AllowNonLocalModInDev"

EndSection

# **********************************************************************
# Input devices                                                         
# **********************************************************************

# **********************************************************************
# Core keyboard's InputDevice section                                   
# **********************************************************************

Section "InputDevice"

    Identifier  "Keyboard1"
    Driver      "kbd"      

    Option "AutoRepeat" "500 30"

# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
#    Option     "Xleds"      "1 2 3"                                   

#    Option "LeftAlt"     "Meta"
#    Option "RightAlt"    "ModeShift"

# To customise the XKB settings to suit your keyboard, modify the
# lines below (which are the defaults).  For example, for a non-U.S.
# keyboard, you will probably want to use:                          
#    Option "XkbModel"    "pc105"                                   
# If you have a US Microsoft Natural keyboard, you can use:         
#    Option "XkbModel"    "microsoft"                               
#                                                                   
# Then to change the language, change the Layout setting.           
# For example, a german layout can be obtained with:                
#    Option "XkbLayout"   "de"                                      
# or:                                                               
#    Option "XkbLayout"   "de"                                      
#    Option "XkbVariant"  "nodeadkeys"                              
#                                                                   
# If you'd like to switch the positions of your capslock and        
# control keys, use:                                                
#    Option "XkbOptions"  "ctrl:swapcaps"                           

# These are the default XKB settings for Xorg
#    Option "XkbRules"    "xorg"             
#    Option "XkbModel"    "pc105"            
#    Option "XkbLayout"   "us"               
#    Option "XkbVariant"  ""                 
#    Option "XkbOptions"  ""                 

#    Option "XkbDisable"

    Option "XkbRules"   "xorg"
    Option "XkbModel"   "pc104"
    Option "XkbLayout"  "ru"   

EndSection


# **********************************************************************
# Core Pointer's InputDevice section                                    
# **********************************************************************

Section "InputDevice"

# Identifier and driver

    Identifier  "Mouse1"
    Driver      "mouse" 
    Option "Protocol"    "Auto" # Auto detect
    Option "Device"      "/dev/input/mice"   

# Mouse-speed setting for PS/2 mouse.

#    Option "Resolution"        "256"

# Baudrate and SampleRate are only for some Logitech mice. In
# almost every case these lines should be omitted.           

#    Option "BaudRate"  "9600"
#    Option "SampleRate"        "150"

# Mouse wheel mapping.  Default is to map vertical wheel to buttons 4 & 5,
# horizontal wheel to buttons 6 & 7.   Change if your mouse has more than 
# 3 buttons and you need to map the wheel to different button ids to avoid
# conflicts.                                                              

    Option "ZAxisMapping"   "4 5 6 7"

# Emulate3Buttons is an option for 2-button mice
# Emulate3Timeout is the timeout in milliseconds (default is 50ms)

    Option "Emulate3Buttons"
#    Option "Emulate3Timeout"    "50"

# ChordMiddle is an option for some 3-button Logitech mice

#    Option "ChordMiddle"

EndSection


# **********************************************************************
# Other input device sections                                           
# this is optional and is required only if you                          
# are using extended input devices.  This is for example only.  Refer   
# to the xorg.conf man page for a description of the options.           
# **********************************************************************
#                                                                       
# Section "InputDevice"                                                 
#    Identifier  "Mouse2"                                               
#    Driver      "mouse"                                                
#    Option      "Protocol"      "MouseMan"                             
#    Option      "Device"        "/dev/mouse2"                          
# EndSection                                                            
#                                                                       
# Section "InputDevice"                                                 
#    Identifier "spaceball"                                             
#    Driver     "magellan"                                              
#    Option     "Device"        "/dev/cua0"                             
# EndSection                                                            
#                                                                       
# Section "InputDevice"                                                 
#    Identifier "spaceball2"                                            
#    Driver     "spaceorb"                                              
#    Option     "Device"        "/dev/cua0"                             
# EndSection                                                            
#                                                                       
 Section "InputDevice"                                                  
    Identifier "touchscreen0"                                           
    Driver     "evtouch"                                                
    Option     "Device"        "/dev/input/mouse2"                      
    Option     "MinX"          "0"                                      
    Option     "MaxX"          "0"                                      
    Option     "MinY"          "0"                                      
    Option     "MaxY"          "0"                                      
    Option     "SwapY"  "1"                                             
    Option     "ScreenNumber"  "0"                                      
    Option     "ReportingMode" "Raw"                                    
    Option     "ButtonNumber"  "1"                                      
    Option     "SendCoreEvents" "on"                                    
 EndSection                                                             
#                                                                       
# Section "InputDevice"                                                 
#    Identifier "touchscreen1"                                          
#    Driver     "elo2300"                                               
#    Option     "Device"        "/dev/ttyS0"                            
#    Option     "MinX"          "231"                                   
#    Option     "MaxX"          "3868"                                  
#    Option     "MinY"          "3858"                                  
#    Option     "MaxY"          "272"                                   
#    Option     "ScreenNumber"  "0"                                     
#    Option     "ReportingMode" "Scaled"                                
#    Option     "ButtonThreshold"       "17"                            
#    Option     "ButtonNumber"  "1"                                     
#    Option     "SendCoreEvents"                                        
# EndSection                                                            

# **********************************************************************
# Monitor section                                                       
# **********************************************************************

# Any number of monitor sections may be present

Section "Monitor"

    Identifier  "display"

# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.                       
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.                             

    HorizSync   31.5 - 37.9

#    HorizSync  30-64         # multisync
#    HorizSync  31.5, 35.2    # multiple fixed sync frequencies
#    HorizSync  15-25, 30-50  # multiple ranges of sync frequencies

# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.                         
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S 
# USER MANUAL FOR THE CORRECT NUMBERS.                              

    VertRefresh 50-90

EndSection


# **********************************************************************
# Graphics device section                                               
# **********************************************************************

# Any number of graphics device sections may be present

# Standard VGA Device:

Section "Device"
    Identifier  "Standard VGA"
    VendorName  "Unknown"     
    BoardName   "Unknown"     

# The chipset line is optional in most cases.  It can be used to override
# the driver's chipset detection, and should not normally be specified.  

#    Chipset    "generic"

# The Driver line must be present.  When using run-time loadable driver
# modules, this line instructs the server to load the specified driver 
# module.  Even when not using loadable driver modules, this line      
# indicates which driver should interpret the information in this section.

    Driver     "vga"
# The BusID line is used to specify which of possibly multiple devices
# this section is intended for.  When this line isn't present, a device
# section can only match up with the primary video device.  For PCI    
# devices a line like the following could be used.  This line should not
# normally be included unless there is more than one video device       
# intalled.                                                             

#    BusID      "PCI:0:10:0"

#    VideoRam   256

#    Clocks     25.2 28.3

EndSection

# Device configured by xorgconfig:

Section "Device"
    Identifier  "videocard"
    Driver      "intel"    
    #VideoRam    65536     
    # Insert Clocks lines here if appropriate
EndSection                                   


# **********************************************************************
# Screen sections                                                       
# **********************************************************************

# Any number of screen sections may be present.  Each describes
# the configuration of a single screen.  A single specific screen section
# may be specified from the X server command line with the "-screen"     
# option.                                                                
Section "Screen"                                                         
    Identifier  "Screen 1"                                               
    Device      "videocard"                                              
    Monitor     "display"                                                
    DefaultDepth 24                                                      

    Subsection "Display"
        Depth       24  
        Modes       "800x480"
        ViewPort    0 0      
        #Virtual     1152 900
    EndSubsection
EndSection

# **********************************************************************
# ServerLayout sections.
# **********************************************************************

# Any number of ServerLayout sections may be present.  Each describes
# the way multiple screens are organised.  A specific ServerLayout
# section may be specified from the X server command line with the
# "-layout" option.  In the absence of this, the first section is used.
# When now ServerLayout section is present, the first Screen section
# is used alone.

Section "ServerLayout"

# The Identifier line must be present
    Identifier  "Simple Layout"

# Each Screen line specifies a Screen section name, and optionally
# the relative position of other screens.  The four names after
# primary screen name are the screens to the top, bottom, left and right
# of the primary screen.  In this example, screen 2 is located to the
# right of screen 1.

    Screen "Screen 1"

# Each InputDevice line specifies an InputDevice section name and
# optionally some options to specify the way the device is to be
# used.  Those options include "CorePointer", "CoreKeyboard" and
# "SendCoreEvents".

    InputDevice "Mouse1" "CorePointer"
    InputDevice "touchscreen0" "CorePointer"
    InputDevice "Keyboard1" "CoreKeyboard"

EndSection

# Section "DRI"
#    Mode 0666
# EndSection
//////////////////////////////////////////////////////////////////////////////
Comment 1 Gordon Jin 2009-01-08 23:26:45 UTC
reassign to Jesse as the error info is like #17310.
Comment 2 Nuzhdin Urii 2009-01-11 01:06:26 UTC
patch from bug #17310	 didn't help,because i use 2.5-r1 version of video driver,wich already includes that patch
test's show that 2.5* versons causes this error,and 2.4 versons show one big full-screen artefact
Comment 3 Dmitry Kornev 2009-01-14 08:15:25 UTC
have same problem with that driver

asus r2h 

Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller

configs in attachment

another one report: http://bugs.gentoo.org/show_bug.cgi?&id=208358


ps work fine with vesa
Comment 4 Dmitry Kornev 2009-01-14 08:16:42 UTC
Created attachment 21981 [details]
xorg.conf
Comment 5 Dmitry Kornev 2009-01-14 08:19:03 UTC
Created attachment 21983 [details]
xorg.0.log
Comment 6 Nuzhdin Urii 2009-01-15 10:05:50 UTC
Created attachment 22011 [details]
Xorg log with 2.6.0 driver
Comment 7 Nuzhdin Urii 2009-01-15 10:06:34 UTC
Created attachment 22012 [details]
Xorg conf i used to start with 2.6.0 driver
Comment 8 Nuzhdin Urii 2009-01-15 10:07:36 UTC
I have tested 2.6.0 driver,it didn't work too
Comment 9 Michael Fu 2009-01-18 23:25:47 UTC
pls get rid of your xorg.conf and retest.
Comment 10 MaLing 2009-01-19 04:51:07 UTC
(In reply to comment #9)
> pls get rid of your xorg.conf and retest.

hi Nuzhdin Urii,

when you test comment #9, please paste Xorg log file with Modedebug option.

Thanks
Ma Ling  



Comment 11 Nuzhdin Urii 2009-01-26 05:10:03 UTC
Created attachment 22244 [details]
Here Xorg.log with ModeDebug enabled

Sorry for so long whait,here is log of Xorg server
i tryed remove Xorg.conf,Xorg didn't started with same error
how to enable modedebug without xorg.conf i don't know (am i stupid?)
Comment 12 MaLing 2009-01-31 23:47:59 UTC
Hi Nuzhdin Urii,

Could you describe what 's your evironment configuration, such as external displays and output ports, I find driver detect TV output. If your laptop actually doesn't connect TV, please use the following option to ignore it, then restart your Xorg ,and paste log file.

Section "Device"
        Identifier  "videocard"
        Option		"monitor-TV"	"TV"
        ...
EndSection
        ...
Section "Monitor" 
	Identifier      "TV" 
	Option          "Ignore" "True" 
EndSection 

Thanks
Ma Ling


Comment 13 Nuzhdin Urii 2009-02-02 23:57:09 UTC
Created attachment 22511 [details]
xorg log with tv output configured

videocard installed into ASUS R2H umpc
it have video out port via additional device
i made recommended changes to Xorg,log attached
Comment 14 MaLing 2009-02-03 04:56:41 UTC
Hi Nuzhdin Urii,

From the log file, I find the reasone may be from too high pixel clock, 388.04MHZ of initial mode 2048x1536 exceed our scope.

please try use lower resolution and pixel rate, then paste your log file, which are configured in xorg.conf as follow.

Section "Device"
        Identifier      "videocard"
        Option          "monitor-TV"    "TV"
        Option          "monitor-LVDS"    "LVDS"
 
        ...
EndSection

Section "Monitor"
        Identifier      "LVDS"
        Modeline "1280x1024_60.00"  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync
        Option  "PreferredMode" "1280x1024_60.00"
EndSection


Thanks
Ma Ling
Comment 15 Nuzhdin Urii 2009-02-06 11:57:18 UTC
Created attachment 22660 [details]
xorg log
Comment 16 Nuzhdin Urii 2009-02-06 12:03:30 UTC
Created attachment 22661 [details]
xorg conf

here my conf ang log
by the way,R2H has 800x480 screen,may be this is a problem?
Comment 17 Michael Fu 2009-02-09 20:56:03 UTC
(In reply to comment #14)
> Hi Nuzhdin Urii,
> 
> From the log file, I find the reasone may be from too high pixel clock,
> 388.04MHZ of initial mode 2048x1536 exceed our scope.
> 
> please try use lower resolution and pixel rate, then paste your log file, which
> are configured in xorg.conf as follow.
> 
> Section "Device"
>         Identifier      "videocard"
>         Option          "monitor-TV"    "TV"
>         Option          "monitor-LVDS"    "LVDS"
> 
>         ...
> EndSection
> 
> Section "Monitor"
>         Identifier      "LVDS"
>         Modeline "1280x1024_60.00"  108.00  1280 1328 1440 1688  1024 1025 1028
> 1066 +hsync +vsync
>         Option  "PreferredMode" "1280x1024_60.00"
> EndSection
> 
> 
> Thanks
> Ma Ling
> 

ling, for LVDS, timging info for all modes are "fixed up" to the fixed modes in fixup func, so chaning modeline may not help...maybe we can try to dump out more info about the fixed mode the device use (it must be a broken modeline I think )
Comment 18 MaLing 2009-02-10 05:54:02 UTC
Created attachment 22746 [details] [review]
please try the patch on your machine, thanks.

Hi Nuzhdin Urii,
Could you try the patch which can help us narrow down the issue, and paste log info again?

thanks
Ma Ling
Comment 19 Nuzhdin Urii 2009-02-12 11:39:54 UTC
Created attachment 22870 [details]
with extra debug info

seems like there is no modline for 800x480
i will try to start with other resolutions later,but it is not sollution of problem
Comment 20 MaLing 2009-02-13 00:45:00 UTC
Created attachment 22890 [details]
please try the patch on your machine, thanks.

Hi Nuzhdin Urii,
the log  shows the clock of fixed mode is 0! It can't work, based on your mode list from Xorg, I re-construct another fixed mode, please try.

Thanks
Ma Ling
Comment 21 Nuzhdin Urii 2009-02-13 11:01:09 UTC
Created attachment 22908 [details]
it  started

xorg started but image very bad
Comment 22 MaLing 2009-02-13 23:15:10 UTC
Created attachment 22932 [details] [review]
please try it on your machine, thanks

Hi Nuzhdin Urii,

In order not to impact your work, the new patch intends to make better image.


Thanks
Ma Ling
Comment 23 MaLing 2009-02-15 22:26:16 UTC
Created attachment 22972 [details] [review]
please try the patch on your machine, thanks.

Hi Nuzhdin Urii,
The patch is our latest one, because we have no corresponding HW, could you try it besides that on comment #22

Thanks
Ma Ling
Comment 24 Nuzhdin Urii 2009-02-16 05:31:41 UTC
Created attachment 22980 [details] [review]
working patch

still bad in cause of wrong resolution
i changed your patch to this one,it works good
Comment 25 Nuzhdin Urii 2009-02-16 13:14:59 UTC
Created attachment 23000 [details] [review]
working patch

still bad in cause of wrong resolution
i changed your patch to this one,it works good
Comment 26 Michael Fu 2009-02-16 14:59:01 UTC
(In reply to comment #25)
> Created an attachment (id=23000) [details]
> working patch
> 
> still bad in cause of wrong resolution
> i changed your patch to this one,it works good
> 

have you tried ma ling's patch in comment# 23? we are looking for a generic fix, though I agree this bug is because your HW is broken...

where do you get those parameters in your patch?
Comment 27 MaLing 2009-02-18 17:24:17 UTC
(In reply to comment #26)
> (In reply to comment #25)
> > Created an attachment (id=23000) [details] [details]
> > working patch
> > 
> > still bad in cause of wrong resolution
> > i changed your patch to this one,it works good
> > 
> have you tried ma ling's patch in comment# 23? we are looking for a generic
> fix, though I agree this bug is because your HW is broken...
> where do you get those parameters in your patch?

ping   Nuzhdin Urii ~ 
Thanks
Ma Ling
Comment 28 Nuzhdin Urii 2009-02-19 09:06:50 UTC
(In reply to comment #27)
> (In reply to comment #26)
> > (In reply to comment #25)
> > > Created an attachment (id=23000) [details] [details] [details]
> > > working patch
> > > 
> > > still bad in cause of wrong resolution
> > > i changed your patch to this one,it works good
> > > 
> > have you tried ma ling's patch in comment# 23? we are looking for a generic
> > fix, though I agree this bug is because your HW is broken...
> > where do you get those parameters in your patch?
> 
> ping   Nuzhdin Urii ~ 
> Thanks
> Ma Ling
> 

sorry :)

patch from comment# 23 didn't work
parameters was found in google
Comment 29 Michael Fu 2009-02-19 17:54:14 UTC
(In reply to comment #28)
> (In reply to comment #27)
> > (In reply to comment #26)
> > > (In reply to comment #25)
> > > > Created an attachment (id=23000) [details] [details] [details] [details]
> > > > working patch
> > > > 
> > > > still bad in cause of wrong resolution
> > > > i changed your patch to this one,it works good
> > > > 
> > > have you tried ma ling's patch in comment# 23? we are looking for a generic
> > > fix, though I agree this bug is because your HW is broken...
> > > where do you get those parameters in your patch?
> > 
> > ping   Nuzhdin Urii ~ 
> > Thanks
> > Ma Ling
> > 
> 
> sorry :)
> 
> patch from comment# 23 didn't work
> parameters was found in google
> 

There are only two ways we can find the correct fixed timing that is suitable for the panel this device use - either from the BIOS, or from the EDID. DDC fails, and no EDID returns. Apparently the modes read from BIOS is also broken..

I think the patch in general is ok for sanity check purpose, so should send to mailing list for RFC.

Nuzhdin Urii, you need to report this to the HW vendor of your device...

Comment 30 Dmitry Kornev 2009-02-20 00:43:19 UTC
>There are only two ways we can find the correct fixed timing that is suitable
>for the panel this device use - either from the BIOS, or from the EDID. DDC
>fails, and no EDID returns. Apparently the modes read from BIOS is also
>broken..

but why i810 worked fine with that device ?

http://www.xs4all.nl/~sozonko/asus_r2h_howto/index.html#32

Comment 31 Michael Fu 2009-02-20 17:00:10 UTC
please provide the vbios dump via:

# cd /sys/devices/pci0000\:00/0000\:00\:02.0/
# echo 1 > rom
# cat rom > /tmp/rom.bin
# echo 0 > rom

then submit the rom.bin here. thanks.
Comment 32 Michael Fu 2009-02-20 22:58:23 UTC
also, pls try if Option "NoDDC" "True" will help, without the patch. Pls attach xorg log as well.
Comment 33 Dmitry Kornev 2009-02-21 02:02:27 UTC
Created attachment 23145 [details]
rom dump
Comment 34 MaLing 2009-02-24 05:55:07 UTC
(In reply to comment #33)
> Created an attachment (id=23145) [details]
> rom dump

Thanks for you help, whould you please append option LVDSFixedMode "true" into xorg.conf as follow
Section "Device"
        Identifier      "MY Video Device"
        driver          "intel"
        ...
        Option          "LVDSFixedMode"   "true"
EndSection

Thanks
Ma Ling
Comment 35 Michael Fu 2009-02-26 21:27:25 UTC
*** Bug 20327 has been marked as a duplicate of this bug. ***
Comment 36 Michael Fu 2009-03-01 19:20:54 UTC
root cause of this is a HW issue that the panel report modes that it can't support at all. I think NoDDC option should fix this, if it works in console mode.
Comment 37 Dmitry Kornev 2009-03-09 08:40:07 UTC
not working with

Option  "NoDCC"         "true"

and 

 Option "LVDSFixedMode"   "true"
Comment 38 Jesse Barnes 2009-03-13 17:07:28 UTC
Are we sure this isn't our bug?  It looks like the rom Dmitry posted has a mostly correct modeline:
*       panel type 02: 800x480 clock 27000000                                   
                info:                                                           
                  LVDS: 0x40000300                                              
                  PP_ON_DELAYS: 0x025907d1                                      
                  PP_OFF_DELAYS: 0x01f507d1                                     
                  PP_DIVISOR: 0x00270f05                                        
                  PFIT: 0x00000668                                              
                timings: 800 808 904 900 480 482 484 500 27000.00 (BAD!)
only the vtotal vs vsyncend is broken (as we've seen before).  The mode pointer table is busted though:
LVDS timing pointer data:                                                       
  Number of entries: 3                                                          
        panel type 02: 0x3072                                                   

It sounds like the EDID might be broken, but we're trying to use it anyway?  What happens if we just use the VBT mode unconditionally, rather than assuming the EDID data is right?

Maybe once we get more VBIOS info we'll be able to figure out what data to trust better...
Comment 39 Michael Fu 2009-03-13 17:37:51 UTC
(In reply to comment #38)
> It sounds like the EDID might be broken, but we're trying to use it anyway? 
> What happens if we just use the VBT mode unconditionally, rather than assuming
> the EDID data is right?
> 
> Maybe once we get more VBIOS info we'll be able to figure out what data to
> trust better...
> 

if we can get a mode from vbt, it actually override any mode from EDID via fix_up call in LVDS. It seems even though the VBT has a mode that is correct, the VBT didn't point it to us, and rather point us a wrong one. Apparently this is wrong. that's why I say it's notourbug.

unfortunately, any modeline setting in conf will also be overrided by the fixed mode as well, thus we don't have a way to correct this. My wild guess is windows driver has a way to override it maybe using a inf file, but that's just my guess..
Comment 40 Jesse Barnes 2009-03-13 17:47:16 UTC
But one of the VBT modes looked ok, which is why I thought it's probably our bug.  There's some versioning magic we're missing in our VBT parsing; on some platforms we need to use the BDB_LVDS_LFP_DATA block, while on others we need to use the BDB_LVDS_LFP_DATA_PTRS block.  Apparently on this platform needs to use the former.  I don't know how we can tell which one will be accurate though...
Comment 41 Michael Fu 2009-03-13 19:20:22 UTC
actually could this bug just a dup of bug# 17292? so, even bios indicator 800x480 is the preferred, and we use it to override EDID modes, but since its DTD is "wrong", the screen is still blank...

we didn't notice the HTotal vs Hsync issue before and didn't double check with the bug reporter about this..

Comment 42 Michael Fu 2009-03-14 18:48:56 UTC
Jesse, I think the BDB_LVDS_LFP_DATA and BDB_LVDS_LFP_DATA_PTRS should be the same thing, while one is pointers and the other is datum. Driver is preferred to use BDB_LVDS_LFP_DATA_PTRS , rather than visit BDB_LVDS_LFP_DATA directly, even though we can...But,

I did some Hex editing and noticed that all pointers in BDB_LVDS_LFP_DATA_PTRS are busted, as you said, and are set 4 bytes ahead of the correct value. Not only DVO_Timing, but also LFP_PARAMs, PnPIDs. I further checked out and noticed that BDB_LVDS_OPTIONS is unexpected 4 bytes longer than it should be of its BDB version ...The correct size is 4 ( excluding bdb header/size ) , but in this rom, it's 8. From a document I have, it is valid to have this size but it's only in later version, not 1.26.

It looks like someone tucked 4 extra bytes of information to block BDB_LVDS_OPTIONS and just updated its size ( thus each block can still be parsed out correctly ),  while forget the offset values in following blocks..

Googling around of this platform, it seems i810 or vesa driver need the hint of 800x480 to pick up the correct timing as well. I guess they use BDB_LVDS_LFP_DATA directly...
Comment 43 Jesse Barnes 2009-03-17 16:39:41 UTC
(In reply to comment #42)
> Jesse, I think the BDB_LVDS_LFP_DATA and BDB_LVDS_LFP_DATA_PTRS should be the
> same thing, while one is pointers and the other is datum. Driver is preferred
> to use BDB_LVDS_LFP_DATA_PTRS , rather than visit BDB_LVDS_LFP_DATA directly,
> even though we can...But,
> 
> I did some Hex editing and noticed that all pointers in BDB_LVDS_LFP_DATA_PTRS
> are busted, as you said, and are set 4 bytes ahead of the correct value. Not
> only DVO_Timing, but also LFP_PARAMs, PnPIDs. I further checked out and noticed
> that BDB_LVDS_OPTIONS is unexpected 4 bytes longer than it should be of its BDB
> version ...The correct size is 4 ( excluding bdb header/size ) , but in this
> rom, it's 8. From a document I have, it is valid to have this size but it's
> only in later version, not 1.26.

Oh, nice debugging Michael, thanks for checking it out.  So do you think it's possible to add a version check that accounts for this in our VBT parsing code?  Sounds like 1.26 wouldn't work but maybe something earlier?  Or we could check the BDB_LVDS_OPTIONS size instead since that seems correct, and use that to determine how to handle the DATA_PTRS offsets.

Comment 44 Jesse Barnes 2009-05-04 10:47:36 UTC
Created attachment 25420 [details] [review]
Add LVDS LFP data quirk

Can you give this patch a try?  I'll need the output from lspci -vn on your machine to make it more specific.
Comment 45 Jesse Barnes 2009-05-11 13:23:42 UTC
Created attachment 25750 [details] [review]
LVDS data fetch fix

Here's another one to try too.  It uses the goofy offset calculation used by the Windows driver, so it seems to pick up the size on your panel correctly at least.
Comment 46 Michael Fu 2009-05-12 00:03:17 UTC
*** Bug 21641 has been marked as a duplicate of this bug. ***
Comment 47 Jesse Barnes 2009-06-22 11:14:10 UTC
Fix pushed, putting together the kernel side now.

commit 15af8ea6ab6998bbab9f4eeda227565c409da229
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Mon Jun 22 11:11:06 2009 -0700

    Fix LFP data block fetch

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.