Bug 4768

Summary: Screen appears at mid-right section
Product: Drivers Reporter: Vincent Fortier (th0ma7)
Component: Console/FramebuffersAssignee: Antonino Daplas (adaplas)
Status: CLOSED CODE_FIX    
Severity: normal CC: akpm
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.12 Subsystem:
Regression: --- Bisected commit-id:
Bug Depends on:    
Bug Blocks: 5002    
Attachments: Picture of the "feature" in action...
patch: Get edid from video BIOS
Fallback to BIOS edid if DDC probing failed
Fix stupid bugs of previous 2 patches
Kernel crash
Test for valid EDID
Copy contents of firmware edid to kmalloc'ed memory
Here is the get-edid | parse-edid command output (undocked)
Here is the get-edid | parse-edid command output (docked)
Add 1920x1200 to mode database
IT is still wrong.. here is the boot without any options.
Here is the result by adding video=nvidiafb:1920x1200@60
Base initial mode from flatpanel dimensions
It works!

Description Vincent Fortier 2005-06-20 18:49:02 UTC
Distribution: fedora core 3
Hardware Environment: dell latitude d800 (nvidia go 5650)
Software Environment: xor 6.8.2 + kde 3.4.1 (kde for redhat project)
Problem Description:
At boot time the screen appears moved to the mid right portion of the actual
video pannel making the end of the line appears at the left edge...  It simply
looks like moved half way to the right

Steps to reproduce:
compile a vanilla 2.6.12 with only thoses fb options:
CONFIG_FB=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_SOFT_CURSOR=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
CONFIG_VIDEO_SELECT=y
CONFIG_FB_NVIDIA=y
CONFIG_FB_NVIDIA_I2C=y
Comment 1 Vincent Fortier 2005-06-20 18:57:45 UTC
Created attachment 5197 [details]
Picture of the "feature" in action...

Here is what it looks like... note that the blurry effect comes from my
camera..  Although text does really appear repeated like "Bo	 Booting Fedora
Core" instead of simply "Booting Fedora Core" ... but the overlayed effect
probably come from my hand shaking.. :)
Comment 2 Antonino Daplas 2005-07-22 07:16:03 UTC
Can you post the pertinent parts of dmesg? 
 
Can you try using fbset to change the resolution and color depth? 
Comment 3 Vincent Fortier 2005-07-25 17:51:36 UTC
I
Comment 4 Andrew Morton 2005-07-28 21:53:30 UTC
Please retest 2.6.13-rc4, thanks.

If it's still failing it would be useful to know the latest
kernel version which worked OK.
Comment 5 Vincent Fortier 2005-07-30 06:15:55 UTC
I just gave it a try to 2.6.13-rc4.. Here is the dmesg output .. at least to 
most relevant section of it: 
=========================================================== 
nvidiafb: nVidia device/chipset 10DE031B 
nvidiafb: CRTC0 not found 
nvidiafb: CRTC1 not found 
nvidiafb: CRTC 0 is currently programmed for DFP 
nvidiafb: Using DFP on CRTC 0 
Panel size is 1920 x 1200 
nvidiafb: MTRR set to ON 
Console: switching to colour frame buffer device 80x30 
nvidiafb: PCI nVidia NV31 framebuffer (64MB @ 0xD0000000) 
================================================================ 
 
While giving it a try, it worked when my laptop was docked and the display 
being redirected to my standard 19 inch CRT.  Althought it does the same thing 
on the WUXGA flat pannel.  The dmesg log seems to have capture the right 
resolution but same final output. 
 
- vin 
Comment 6 Vincent Fortier 2005-07-30 10:15:32 UTC
I just got time to make a few more tests.... It really works great when docked  
on my CRT.. But, when not docked, on the laptop display I
Comment 7 Antonino Daplas 2005-07-30 14:59:03 UTC
I'm surprised that your display corrected with that command. Can you
submit the output of /sys/class/graphics/fb0/modes?

Anyhow, try to add this option to your boot line:

video=nvidiafb:1600x1200@60

/* we don't have 1900x1200 yet in the mode database, so let's try that one */

Comment 8 Antonino Daplas 2005-07-30 18:18:29 UTC
Created attachment 5430 [details]
patch: Get edid from video BIOS

Apply this first.
Comment 9 Antonino Daplas 2005-07-30 18:19:59 UTC
Created attachment 5431 [details]
Fallback to BIOS edid if DDC probing failed

Then apply this one.
Comment 10 Antonino Daplas 2005-07-30 18:26:59 UTC
I'm guessing that you have a timings problem.  Your panel size is set at
1920x1200, but nvidiafb chooses 640x480. This usually indicates that the
edid (contains display information) was not probed via I2C/DDC. The driver may
have problems scaling up to this resolution.

If this is the case, let's try to use the one that was probed via the Video
BIOS. This is usually successful, but is only useful for the first display
connected to the device.

Hopefully, with the proper edid, your machine will boot with a working display,
even without the boot option.  

Oh, and to get verbose output in dmesg, open drivers/video/fbmon.c and change
this line:

#undef DEBUG

to

#define DEBUG
Comment 11 Vincent Fortier 2005-07-31 06:33:59 UTC
I hope I
Comment 12 Vincent Fortier 2005-07-31 07:31:30 UTC
Just got time to make the tests:     
 
Boot 1 (unpatched) 
------------------ 
dmesg: 
Linux version 2.6.13-rc4-001 
Kernel command line: ro root=/dev/vg00/lvol_root rhgb quiet     
nvidiafb: nVidia device/chipset 10DE031B    
nvidiafb: CRTC0 not found    
nvidiafb: CRTC1 not found    
nvidiafb: CRTC 0 is currently programmed for DFP    
nvidiafb: Using DFP on CRTC 0    
Panel size is 1920 x 1200    
nvidiafb: MTRR set to ON    
Console: switching to colour frame buffer device 80x30    
nvidiafb: PCI nVidia NV31 framebuffer (64MB @ 0xD0000000)    
 
/sys/class/graphics/fb0/modes: 
U:640x480-59 
 
/sys/class/graphics/fb0/modes (after fbset -g 1920 1200 1920 4): 
U:1920x1200-9 
U:640x480-59U 
 
 
Boot 2 (unpatched + video at boot time) 
--------------------------------------- 
NOTE:  It
Comment 13 Antonino Daplas 2005-07-31 14:51:09 UTC
Created attachment 5438 [details]
Fix stupid bugs of previous 2 patches

My fault, I forgot the extra underscores in __i386__. And extra points against
me
for not testing it fully. I think this should fix it for you, assuming you have
a
DDC capable monitor and I'm pretty sure it is.

Apply this patch on top of the previous 2. Boot with and without options.

Thanks for following up on this.
Comment 14 Andrew Morton 2005-07-31 14:59:05 UTC
Tony, I'll assume you'll mail me any patches when it's all
ready to go.

Comment 15 Vincent Fortier 2005-07-31 16:42:30 UTC
Created attachment 5439 [details]
Kernel crash

It crashed with or without the video option at boot time.

- vin
Comment 16 Antonino Daplas 2005-07-31 18:52:10 UTC
Created attachment 5440 [details]
Test for valid EDID

I'm surprised it crashed.  Can you apply this patch?  It's just a test patch
that checks for validity of the EDID.  If your machine still crashes, then
there's something wrong with the way the edid was acquired from the BIOS. If
your machine
continues to boot, post your dmesg.

I don't have an nvidia card anymore, except for an old riva128, so I can't do
the
test myself.
Comment 17 Antonino Daplas 2005-08-01 00:17:09 UTC
Created attachment 5445 [details]
Copy contents of firmware edid to kmalloc'ed memory

Ok, I was able to duplicate the crash with another driver. The crash was caused
by nvidiafb trying to kfree the firmware edid, which is not freeable.  So apply
this 5th patch, and forget about the 4th.  

Just to clarify, apply these patches in order:

patch: Get edid from video BIOS
Fallback to BIOS edid if DDC probing failed
Fix stupid bugs of previous 2 patches
Copy contents of firmware edid to kmalloc'ed memory

Please post your dmesg.  I don't think your box will crash again :-) (fingers
crossed).
Comment 18 Vincent Fortier 2005-08-01 07:56:50 UTC
Made a few more tests  
  
Boot A (patch 1-2-3 and 5 applied + define DEBUG)  
-------------------------------------------------  
dmesg:  
Linux version 2.6.13-rc4-005  
Kernel command line: ro root=/dev/vg00/lvol_root rhgb quiet  
nvidiafb: nVidia device/chipset 10DE031B  
nvidiafb: CRTC0 not found  
nvidiafb: CRTC1 not found  
nvidiafb: CRTC 0 is currently programmed for DFP  
nvidiafb: Using DFP on CRTC 0  
Panel size is 1920 x 1200  
nvidiafb: MTRR set to ON  
Console: switching to colour frame buffer device 80x30  
nvidiafb: PCI nVidia NV31 framebuffer (64MB @ 0xD0000000)  
  
/sys/class/graphics/fb0/modes:  
U:640x480-59  
  
/sys/class/graphics/fb0/modes (after fbset -g 1920 1200 1920 4):  
U:1920x1200-9  
U:640x480-59  
  
  
Boot B (patch 1-2-3 and 5 applied + define DEBUG + video= at boot time)  
----------------------------------------------------------------------- 
It booted just fine like previous Boot 2 
dmesg:  
Linux version 2.6.13-rc4-005  
Kernel command line: ro root=/dev/vg00/lvol_root rhgb quiet  
video=nvidiafb:1600x1200@60  
nvidiafb: nVidia device/chipset 10DE031B  
nvidiafb: CRTC0 not found  
nvidiafb: CRTC1 not found  
nvidiafb: CRTC 0 is currently programmed for DFP  
nvidiafb: Using DFP on CRTC 0  
Panel size is 1920 x 1200  
nvidiafb: MTRR set to ON  
Console: switching to colour frame buffer device 200x75  
nvidiafb: PCI nVidia NV31 framebuffer (64MB @ 0xD0000000)  
  
/sys/class/graphics/fb0/modes:  
U:1600x1200-60  
  
Comment 19 Antonino Daplas 2005-08-01 08:10:53 UTC
Hmm, interesting. It seems that even the Video BIOS cannot get the EDID (DDC
incapable display?)

Just to confirm, can you post /var/log/XFree86.0.log, just the parts that
pertain to DDC/EDID.  X uses the DDC interface to get the EDID.

Also, can you download and compile read-edid from:

http://john.fremlin.de/programs/linux/read-edid/read-edid-1.4.1.tar.gz

read_edid grabs the edid via the Video BIOS. Just run:

get_edid | parse_edid.

Finally, as a last resort, if your display really has no usable edid, switch to
X, then dump the timings.  I will add these timings to the default mode database
of the kernel so you can boot at 1920x1200. (Of course I can always make one
using GTF, but I would rather have a working version)

Thanks for all the help.  I really appreciate it.
Comment 20 Vincent Fortier 2005-08-01 09:17:46 UTC
Here is my xorg.log using the 1920x1200 pannel: 
 
(==) NV(0): Using HW cursor 
(--) NV(0): Linear framebuffer at 0xD0000000 
(--) NV(0): MMIO registers at 0xFC000000 
(II) Loading sub module "i2c" 
(II) LoadModule: "i2c" 
(II) Loading /usr/X11R6/lib/modules/libi2c.a 
(II) Module i2c: vendor="X.Org Foundation" 
	compiled for 6.8.2, module version = 1.2.0 
	ABI class: X.Org Video Driver, version 0.7 
(II) Loading sub module "ddc" 
(II) LoadModule: "ddc" 
(II) Loading /usr/X11R6/lib/modules/libddc.a 
(II) Module ddc: vendor="X.Org Foundation" 
	compiled for 6.8.2, module version = 1.0.0 
	ABI class: X.Org Video Driver, version 0.7 
(II) NV(0): I2C bus "DDC" initialized. 
(II) NV(0): Probing for analog device on output A... 
(--) NV(0):   ...can't find one 
(II) NV(0): Probing for analog device on output B... 
(--) NV(0):   ...can't find one 
(II) NV(0): Probing for EDID on I2C bus A... 
(II) NV(0): I2C device "DDC:ddc2" registered at address 0xA0. 
(II) NV(0): I2C device "DDC:ddc2" removed. 
(II) NV(0):   ... none found 
(II) NV(0): Probing for EDID on I2C bus B... 
(II) NV(0): I2C device "DDC:ddc2" registered at address 0xA0. 
(II) NV(0): I2C device "DDC:ddc2" removed. 
(II) NV(0):   ... none found 
(--) NV(0): CRTC 0 is currently programmed for DFP 
(II) NV(0): Using DFP on CRTC 0 
(--) NV(0): Panel size is 1920 x 1200 
(--) NV(0): VideoRAM: 131072 kBytes 
(==) NV(0): Using gamma correction (1.0, 1.0, 1.0) 
(II) NV(0): Monitor0: Using hsync range of 30.00-96.00 kHz 
(II) NV(0): Monitor0: Using vrefresh range of 48.00-120.00 Hz 
(II) NV(0): Clock range:  12.00 to 400.00 MHz 
(II) NV(0): Not using default mode "320x175" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "320x200" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "360x200" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "320x240" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "320x240" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "320x240" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "320x240" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "400x300" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "400x300" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "400x300" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "400x300" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "400x300" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "1024x768" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "512x384" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "512x384" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "512x384" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "512x384" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "512x384" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "576x432" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x480" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x480" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x512" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x512" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x512" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "800x600" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "800x600" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "800x600" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "800x600" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "1600x1200" (hsync out of range) 
(II) NV(0): Not using default mode "800x600" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Mode "1792x1344" is larger than BIOS programmed panel size of 1920 
x 1200.  Removing. 
(II) NV(0): Not using default mode "1792x1344" (unknown reason) 
(II) NV(0): Not using default mode "896x672" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Mode "1792x1344" is larger than BIOS programmed panel size of 1920 
x 1200.  Removing. 
(II) NV(0): Not using default mode "1792x1344" (unknown reason) 
(II) NV(0): Not using default mode "896x672" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Mode "1856x1392" is larger than BIOS programmed panel size of 1920 
x 1200.  Removing. 
(II) NV(0): Not using default mode "1856x1392" (unknown reason) 
(II) NV(0): Not using default mode "928x696" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Mode "1856x1392" is larger than BIOS programmed panel size of 1920 
x 1200.  Removing. 
(II) NV(0): Not using default mode "1856x1392" (unknown reason) 
(II) NV(0): Not using default mode "928x696" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Mode "1920x1440" is larger than BIOS programmed panel size of 1920 
x 1200.  Removing. 
(II) NV(0): Not using default mode "1920x1440" (unknown reason) 
(II) NV(0): Not using default mode "960x720" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Mode "1920x1440" is larger than BIOS programmed panel size of 1920 
x 1200.  Removing. 
(II) NV(0): Not using default mode "1920x1440" (unknown reason) 
(II) NV(0): Not using default mode "960x720" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "416x312" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "576x384" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "700x525" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "700x525" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "800x512" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Mode "1920x1440" is larger than BIOS programmed panel size of 1920 
x 1200.  Removing. 
(II) NV(0): Not using default mode "1920x1440" (unknown reason) 
(II) NV(0): Not using default mode "960x720" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Mode "2048x1536" is larger than BIOS programmed panel size of 1920 
x 1200.  Removing. 
(II) NV(0): Not using default mode "2048x1536" (unknown reason) 
(II) NV(0): Not using default mode "1024x768" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Mode "2048x1536" is larger than BIOS programmed panel size of 1920 
x 1200.  Removing. 
(II) NV(0): Not using default mode "2048x1536" (unknown reason) 
(II) NV(0): Not using default mode "1024x768" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Mode "2048x1536" is larger than BIOS programmed panel size of 1920 
x 1200.  Removing. 
(II) NV(0): Not using default mode "2048x1536" (unknown reason) 
(II) NV(0): Not using default mode "1024x768" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "424x240" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "424x240" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "424x240" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "424x240" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "576x432" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "576x432" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "576x432" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "576x432" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "700x525" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "700x525" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x400" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x400" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x400" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x400" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "840x525" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "840x525" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "840x525" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "840x525" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x360" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x360" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x360" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x360" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x384" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x384" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x384" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "640x384" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "960x600" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "960x600" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "960x600" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "1920x1200" (hsync out of range) 
(II) NV(0): Not using default mode "960x600" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Mode "2560x1600" is larger than BIOS programmed panel size of 1920 
x 1200.  Removing. 
(II) NV(0): Not using default mode "2560x1600" (unknown reason) 
(II) NV(0): Not using default mode "1280x800" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "2560x1600" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "1280x800" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "2560x1600" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "1280x800" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "2560x1600" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "1280x800" (bad mode 
clock/interlace/doublescan) 
(II) NV(0): Not using default mode "1920x1200" (width too large for virtual 
size) 
(II) NV(0): Not using default mode "1920x1200" (width too large for virtual 
size) 
(II) NV(0): Not using default mode "1920x1200" (width too large for virtual 
size) 
(II) NV(0): Not using default mode "1600x1200" (width too large for virtual 
size) 
(II) NV(0): Not using default mode "1600x1200" (width too large for virtual 
size) 
(II) NV(0): Not using default mode "1600x1200" (width too large for virtual 
size) 
(II) NV(0): Not using default mode "1600x1200" (width too large for virtual 
size) 
(II) NV(0): Not using default mode "1680x1050" (width too large for virtual 
size) 
(II) NV(0): Not using default mode "1680x1050" (width too large for virtual 
size) 
(II) NV(0): Not using default mode "1680x1050" (width too large for virtual 
size) 
(II) NV(0): Not using default mode "1680x1050" (width too large for virtual 
size) 
(II) NV(0): Not using default mode "1400x1050" (width too large for virtual 
size) 
(II) NV(0): Not using default mode "1400x1050" (width too large for virtual 
size) 
(II) NV(0): Not using default mode "1400x1050" (width too large for virtual 
size) 
(II) NV(0): Not using default mode "1400x1050" (width too large for virtual 
size) 
(--) NV(0): Virtual size is 1280x1024 (pitch 1280) 
(**) NV(0): *Default mode "1280x1024": 157.5 MHz, 91.1 kHz, 85.0 Hz 
(II) NV(0): Modeline "1280x1024"  157.50  1280 1344 1504 1728  1024 1025 1028 
1072 +hsync +vsync 
(**) NV(0): *Default mode "1152x864": 119.7 MHz, 77.1 kHz, 85.0 Hz 
(II) NV(0): Modeline "1152x864"  119.65  1152 1224 1352 1552  864 865 868 907 
-hsync +vsync 
(**) NV(0): *Default mode "1152x768": 65.0 MHz, 44.2 kHz, 54.8 Hz 
(II) NV(0): Modeline "1152x768"   65.00  1152 1178 1314 1472  768 771 777 806 
+hsync +vsync 
(**) NV(0): *Default mode "1024x768": 94.5 MHz, 68.7 kHz, 85.0 Hz 
(II) NV(0): Modeline "1024x768"   94.50  1024 1072 1168 1376  768 769 772 808 
+hsync +vsync 
(**) NV(0): *Default mode "800x600": 56.3 MHz, 53.7 kHz, 85.1 Hz 
(II) NV(0): Modeline "800x600"   56.30  800 832 896 1048  600 601 604 631 
+hsync +vsync 
(**) NV(0): *Default mode "640x480": 36.0 MHz, 43.3 kHz, 85.0 Hz 
(II) NV(0): Modeline "640x480"   36.00  640 696 752 832  480 481 484 509 -hsync 
-vsync 
(**) NV(0):  Default mode "1280x1024": 135.0 MHz, 80.0 kHz, 75.0 Hz 
(II) NV(0): Modeline "1280x1024"  135.00  1280 1296 1440 1688  1024 1025 1028 
1066 +hsync +vsync 
(**) NV(0):  Default mode "1280x1024": 108.0 MHz, 64.0 kHz, 60.0 Hz 
(II) NV(0): Modeline "1280x1024"  108.00  1280 1328 1440 1688  1024 1025 1028 
1066 +hsync +vsync 
(**) NV(0):  Default mode "1280x960": 148.5 MHz, 85.9 kHz, 85.0 Hz 
(II) NV(0): Modeline "1280x960"  148.50  1280 1344 1504 1728  960 961 964 1011 
+hsync +vsync 
(**) NV(0):  Default mode "1280x960": 108.0 MHz, 60.0 kHz, 60.0 Hz 
(II) NV(0): Modeline "1280x960"  108.00  1280 1376 1488 1800  960 961 964 1000 
+hsync +vsync 
(**) NV(0):  Default mode "1280x800": 123.4 MHz, 71.4 kHz, 85.0 Hz 
(II) NV(0): Modeline "1280x800"  123.38  1280 1368 1504 1728  800 801 804 840 
-hsync +vsync 
(**) NV(0):  Default mode "1280x800": 107.2 MHz, 62.6 kHz, 75.0 Hz 
(II) NV(0): Modeline "1280x800"  107.21  1280 1360 1496 1712  800 801 804 835 
-hsync +vsync 
(**) NV(0):  Default mode "1280x800": 98.9 MHz, 58.3 kHz, 70.0 Hz 
(II) NV(0): Modeline "1280x800"   98.89  1280 1352 1488 1696  800 801 804 833 
-hsync +vsync 
(**) NV(0):  Default mode "1280x800": 83.5 MHz, 49.7 kHz, 60.0 Hz 
(II) NV(0): Modeline "1280x800"   83.46  1280 1344 1480 1680  800 801 804 828 
-hsync +vsync 
(**) NV(0):  Default mode "1152x864": 108.0 MHz, 67.5 kHz, 75.0 Hz 
(II) NV(0): Modeline "1152x864"  108.00  1152 1216 1344 1600  864 865 868 900 
+hsync +vsync 
(**) NV(0):  Default mode "1152x864": 105.0 MHz, 67.6 kHz, 75.0 Hz 
(II) NV(0): Modeline "1152x864"  104.99  1152 1224 1352 1552  864 865 868 902 
-hsync +vsync 
(**) NV(0):  Default mode "1152x864": 96.8 MHz, 63.0 kHz, 70.0 Hz 
(II) NV(0): Modeline "1152x864"   96.77  1152 1224 1344 1536  864 865 868 900 
-hsync +vsync 
(**) NV(0):  Default mode "1152x864": 81.6 MHz, 53.7 kHz, 60.0 Hz 
(II) NV(0): Modeline "1152x864"   81.62  1152 1216 1336 1520  864 865 868 895 
-hsync +vsync 
(**) NV(0):  Default mode "1280x768": 118.5 MHz, 68.6 kHz, 85.0 Hz 
(II) NV(0): Modeline "1280x768"  118.53  1280 1368 1504 1728  768 769 772 807 
-hsync +vsync 
(**) NV(0):  Default mode "1280x768": 103.0 MHz, 60.2 kHz, 75.0 Hz 
(II) NV(0): Modeline "1280x768"  102.98  1280 1360 1496 1712  768 769 772 802 
-hsync +vsync 
(**) NV(0):  Default mode "1280x768": 95.0 MHz, 56.0 kHz, 70.0 Hz 
(II) NV(0): Modeline "1280x768"   94.98  1280 1352 1488 1696  768 769 772 800 
-hsync +vsync 
(**) NV(0):  Default mode "1280x768": 80.1 MHz, 47.7 kHz, 60.0 Hz 
(II) NV(0): Modeline "1280x768"   80.14  1280 1344 1480 1680  768 769 772 795 
-hsync +vsync 
(**) NV(0):  Default mode "1280x720": 110.0 MHz, 64.3 kHz, 85.0 Hz 
(II) NV(0): Modeline "1280x720"  110.01  1280 1360 1496 1712  720 721 724 756 
-hsync +vsync 
(**) NV(0):  Default mode "1280x720": 95.7 MHz, 56.4 kHz, 75.0 Hz 
(II) NV(0): Modeline "1280x720"   95.65  1280 1352 1488 1696  720 721 724 752 
-hsync +vsync 
(**) NV(0):  Default mode "1280x720": 89.0 MHz, 52.5 kHz, 70.0 Hz 
(II) NV(0): Modeline "1280x720"   89.04  1280 1352 1488 1696  720 721 724 750 
-hsync +vsync 
(**) NV(0):  Default mode "1280x720": 74.5 MHz, 44.8 kHz, 60.0 Hz 
(II) NV(0): Modeline "1280x720"   74.48  1280 1336 1472 1664  720 721 724 746 
-hsync +vsync 
(**) NV(0):  Default mode "1024x768": 78.8 MHz, 60.1 kHz, 75.1 Hz 
(II) NV(0): Modeline "1024x768"   78.80  1024 1040 1136 1312  768 769 772 800 
+hsync +vsync 
(**) NV(0):  Default mode "1024x768": 75.0 MHz, 56.5 kHz, 70.1 Hz 
(II) NV(0): Modeline "1024x768"   75.00  1024 1048 1184 1328  768 771 777 806 
-hsync -vsync 
(**) NV(0):  Default mode "1024x768": 65.0 MHz, 48.4 kHz, 60.0 Hz 
(II) NV(0): Modeline "1024x768"   65.00  1024 1048 1184 1344  768 771 777 806 
-hsync -vsync 
(**) NV(0):  Default mode "832x624": 57.3 MHz, 49.7 kHz, 74.6 Hz 
(II) NV(0): Modeline "832x624"   57.28  832 864 928 1152  624 625 628 667 
-hsync -vsync 
(**) NV(0):  Default mode "800x600": 49.5 MHz, 46.9 kHz, 75.0 Hz 
(II) NV(0): Modeline "800x600"   49.50  800 816 896 1056  600 601 604 625 
+hsync +vsync 
(**) NV(0):  Default mode "800x600": 50.0 MHz, 48.1 kHz, 72.2 Hz 
(II) NV(0): Modeline "800x600"   50.00  800 856 976 1040  600 637 643 666 
+hsync +vsync 
(**) NV(0):  Default mode "800x600": 40.0 MHz, 37.9 kHz, 60.3 Hz 
(II) NV(0): Modeline "800x600"   40.00  800 840 968 1056  600 601 605 628 
+hsync +vsync 
(**) NV(0):  Default mode "800x600": 36.0 MHz, 35.2 kHz, 56.2 Hz 
(II) NV(0): Modeline "800x600"   36.00  800 824 896 1024  600 601 603 625 
+hsync +vsync 
(**) NV(0):  Default mode "848x480": 47.4 MHz, 42.9 kHz, 85.0 Hz 
(II) NV(0): Modeline "848x480"   47.39  848 888 976 1104  480 481 484 505 
-hsync +vsync 
(**) NV(0):  Default mode "848x480": 41.0 MHz, 37.6 kHz, 75.0 Hz 
(II) NV(0): Modeline "848x480"   40.96  848 880 968 1088  480 481 484 502 
-hsync +vsync 
(**) NV(0):  Default mode "848x480": 37.5 MHz, 35.0 kHz, 70.0 Hz 
(II) NV(0): Modeline "848x480"   37.52  848 872 960 1072  480 481 484 500 
-hsync +vsync 
(**) NV(0):  Default mode "848x480": 31.5 MHz, 29.8 kHz, 60.0 Hz 
(II) NV(0): Modeline "848x480"   31.49  848 864 952 1056  480 481 484 497 
-hsync +vsync 
(**) NV(0):  Default mode "640x480": 31.5 MHz, 37.5 kHz, 75.0 Hz 
(II) NV(0): Modeline "640x480"   31.50  640 656 720 840  480 481 484 500 -hsync 
-vsync 
(**) NV(0):  Default mode "640x480": 31.5 MHz, 37.9 kHz, 72.8 Hz 
(II) NV(0): Modeline "640x480"   31.50  640 664 704 832  480 489 491 520 -hsync 
-vsync 
(**) NV(0):  Default mode "640x480": 25.2 MHz, 31.5 kHz, 60.0 Hz 
(II) NV(0): Modeline "640x480"   25.20  640 656 752 800  480 490 492 525 -hsync 
-vsync 
(**) NV(0):  Default mode "720x400": 35.5 MHz, 37.9 kHz, 85.0 Hz 
(II) NV(0): Modeline "720x400"   35.50  720 756 828 936  400 401 404 446 -hsync 
+vsync 
(**) NV(0):  Default mode "640x400": 31.5 MHz, 37.9 kHz, 85.1 Hz 
(II) NV(0): Modeline "640x400"   31.50  640 672 736 832  400 401 404 445 -hsync 
+vsync 
(**) NV(0):  Default mode "640x350": 31.5 MHz, 37.9 kHz, 85.1 Hz 
(II) NV(0): Modeline "640x350"   31.50  640 672 736 832  350 382 385 445 +hsync 
-vsync 
(==) NV(0): DPI set to (75, 75) 
Comment 21 Vincent Fortier 2005-08-01 09:41:35 UTC
Created attachment 5455 [details]
Here is the get-edid | parse-edid command output (undocked)

Note that I
Comment 22 Vincent Fortier 2005-08-01 09:43:07 UTC
Created attachment 5456 [details]
Here is the get-edid | parse-edid command output (docked)

I really don
Comment 23 Vincent Fortier 2005-08-01 12:35:37 UTC
I will be away until friday (vacation :).. so I might be able to try someting 
new tonight else it will have to wait until the next week-end. 
 
- vin 
Comment 24 Antonino Daplas 2005-08-01 15:40:02 UTC
Created attachment 5465 [details]
Add 1920x1200 to mode database

Adds 1920x1200@60 to default mode database.  To use, boot with
video=nvidiafb:1920x1200@60
Comment 25 Antonino Daplas 2005-08-01 15:44:23 UTC
Ok, both X and read-edid failed to do DDC transfers.  It is safe to assume that
your monitor does not have an EDID block, which is unusual because your panel
supports a video mode that is not a standard (16/10 aspect).

Anyway, try this patch.  I added 1920x1200 to the mode database using the GTF.
I'll close this bug if you can boot to a working 1920x1200.
Comment 26 Vincent Fortier 2005-08-01 16:46:58 UTC
Do I apply the patch on a fresh 2.6.12 or onto a 2.6.13-rc4 with the four other 
patches? 
 
thnx. 
Comment 27 Antonino Daplas 2005-08-01 17:05:16 UTC
No need for a fresh tree.  But you can apply it to a fresh tree without problems.
I'm still submitting the 1st 4 patches, as it will be useful for those with
displays which can do DDC transfers.
Comment 28 Antonino Daplas 2005-08-01 17:32:02 UTC
BTW, since 2.6.10, there's another way to access display characteristics.  If
you enabled CONFIG_ACPI and CONFIG_ACPI_VIDEO, there should be an edid (?) entry
in /proc/acpi/video (I only have an empty /proc/acpi/video). It's possible to
get the edid from there.  It's also possible that your laptop is already
dropping BIOS/DDC support and is using the acpi instead. If you do, try to cat
and post your edid block, and maybe I'll find a way to access this within the
framebuffer framework.
Comment 29 Vincent Fortier 2005-08-05 05:47:59 UTC
Was away for a few days.. but I had the time to test the latest patch (add   
1920x1200 to mode database) and 2 things occured:  1- By default it did not   
boot into 1920x1200... it booted like usual meaning did the bug.  2- Adding   
video=nvidiafb:1920x1200@60 worked... it booted just fine.   
   
And here is the info about /proc/acpi/video .. hope I got the good info:   
[root@gustav LCD]# cat brightness   
<not supported>   
[root@gustav LCD]# cat EDID   
<not supported>   
[root@gustav LCD]# cat info   
device_id:    0x0110   
type:         UNKNOWN   
known by bios: no   
[root@gustav LCD]# cat state   
state:     0x0d   
query:     0x00   
[root@gustav LCD]# pwd   
/proc/acpi/video/VID/LCD   
   
So, the bug is still there.. I
Comment 30 Antonino Daplas 2005-08-07 02:12:16 UTC
This is now acceptable behavior.  If without the EDID block, nvidiafb will try
to boot at 640x480.  Unfortunately, we weren't able to get the EDID from your
display, (whether from DDC/I2C, Video BIOS, or ACPI).  So, to boot to an
acceptable display 1920x1200, you just have to add this mode in your boot options.

There is no other way.  I'll close this bug, and thanks for all the help.
Comment 31 Vincent Fortier 2005-08-07 05:07:04 UTC
Created attachment 5530 [details]
IT is still wrong.. here is the boot without any options.

Here is, with all the patches, the same result.
Comment 32 Vincent Fortier 2005-08-07 05:09:09 UTC
Created attachment 5531 [details]
Here is the result by adding video=nvidiafb:1920x1200@60
Comment 33 Antonino Daplas 2005-08-07 06:02:37 UTC
Actually, I'm contented with nvidiafb's behavior.  It is difficult to find a
startup mode that will work for all displays out there without knowing a single
thing about the characteristics of the display.  Sometimes the default mode
works, sometimes not.  That is why the EDID is so important, and that is why fb
drivers support specifying the startup modes in the kernel command line.

Anyway, try this patch again.  It basically checks if a flatpanel monitor is
attached, and if there is, base the initial mode from the flatpanel width and
height. Patch can be applied on top of all the other patches or on a clean tree.
Comment 34 Antonino Daplas 2005-08-07 06:07:07 UTC
Created attachment 5532 [details]
Base initial mode from flatpanel dimensions
Comment 35 Vincent Fortier 2005-08-07 08:02:31 UTC
Created attachment 5534 [details]
It works!
Comment 36 Vincent Fortier 2005-08-07 08:04:25 UTC
dmesg:  
Linux version 2.6.13-rc4-007  
Kernel command line: ro root=/dev/vg00/lvol_root rhgb quiet 
nvidiafb: nVidia device/chipset 10DE031B 
nvidiafb: CRTC0 not found 
nvidiafb: CRTC1 not found 
nvidiafb: CRTC 0 is currently programmed for DFP 
nvidiafb: Using DFP on CRTC 0 
Panel size is 1920 x 1200 
nvidiafb: MTRR set to ON 
Console: switching to colour frame buffer device 240x75 
nvidiafb: PCI nVidia NV31 framebuffer (64MB @ 0xD0000000) 
 
/sys/class/graphics/fb0/modes: 
U:1920x1200-60 
 
Working with or without the video option... This fix solve the problem. 
 
thnx! 
Comment 37 Vincent Fortier 2005-08-07 13:54:15 UTC
will it be included into 2.6.13 .. ? 
 
- vin 
Comment 38 Vincent Fortier 2005-08-10 17:35:21 UTC
patch included in 2.6.13-rc6-git1 and tested. 
 
works like a charm.