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
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.. :)
Can you post the pertinent parts of dmesg? Can you try using fbset to change the resolution and color depth?
I
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.
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
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
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 */
Created attachment 5430 [details] patch: Get edid from video BIOS Apply this first.
Created attachment 5431 [details] Fallback to BIOS edid if DDC probing failed Then apply this one.
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
I hope I
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
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.
Tony, I'll assume you'll mail me any patches when it's all ready to go.
Created attachment 5439 [details] Kernel crash It crashed with or without the video option at boot time. - vin
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.
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).
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
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.
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)
Created attachment 5455 [details] Here is the get-edid | parse-edid command output (undocked) Note that I
Created attachment 5456 [details] Here is the get-edid | parse-edid command output (docked) I really don
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
Created attachment 5465 [details] Add 1920x1200 to mode database Adds 1920x1200@60 to default mode database. To use, boot with video=nvidiafb:1920x1200@60
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.
Do I apply the patch on a fresh 2.6.12 or onto a 2.6.13-rc4 with the four other patches? thnx.
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.
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.
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
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.
Created attachment 5530 [details] IT is still wrong.. here is the boot without any options. Here is, with all the patches, the same result.
Created attachment 5531 [details] Here is the result by adding video=nvidiafb:1920x1200@60
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.
Created attachment 5532 [details] Base initial mode from flatpanel dimensions
Created attachment 5534 [details] It works!
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!
will it be included into 2.6.13 .. ? - vin
patch included in 2.6.13-rc6-git1 and tested. works like a charm.