Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 201894

Summary: uvesafb doesn't detect all videomodes
Product: Gentoo Linux Reporter: egon2003 <erik.badman>
Component: [OLD] Core systemAssignee: Michal Januszewski (RETIRED) <spock>
Severity: normal    
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Package list:
Runtime testing required: ---
Attachments: vbetest output
uvesafb vbe_modes output
dmesg | grep vesa
testvbe output
uvesafb compiled as module

Description egon2003 2007-12-10 20:35:14 UTC
I have a Nvidia 7050PV onboard videocard connected to a 46" LCD TV via HDMI which has a 1920x1080 reolution.
When i run vbetest it reports 1400x1050 as highest selectable resolution.

attatching output of vbetest and cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes.

Reproducible: Always
Comment 1 egon2003 2007-12-10 20:36:13 UTC
Created attachment 138207 [details]
vbetest output
Comment 2 egon2003 2007-12-10 20:36:59 UTC
Created attachment 138208 [details]
uvesafb vbe_modes output
Comment 3 egon2003 2007-12-10 20:39:08 UTC
Created attachment 138210 [details]
dmesg | grep vesa
Comment 4 Michal Januszewski (RETIRED) gentoo-dev 2007-12-10 21:21:49 UTC
Please emerge v86d with the 'debug' USE flag and attach the output of `testvbe`.
Comment 5 egon2003 2007-12-11 19:39:36 UTC
Created attachment 138274 [details]
testvbe output
Comment 6 Michal Januszewski (RETIRED) gentoo-dev 2007-12-11 20:29:39 UTC
Since uvesafb and testvbe use exactly the same mechanism to get a list of supported modes and since the list from uvesafb lacks modes listes by testvbe, I guess the mode list returned by the Video BIOS is actually dependent on the time at which it is requested.

Could you please try building uvesafb as a module and loading it manually _after_ boot (i.e. at the same time you'd normally run testvbe)?
Comment 7 egon2003 2007-12-12 17:15:23 UTC
Created attachment 138333 [details]
uvesafb compiled as module
Comment 8 egon2003 2007-12-12 17:16:14 UTC
It seems to work as you say, now there are more modes listed now. 
Comment 9 Michal Januszewski (RETIRED) gentoo-dev 2007-12-12 18:01:44 UTC
Are you also using the binary nvidia drivers?

If you are, try not loading the nvidia kernel module before uvesafb.  My guess is that the mode list reported by uvesafb or testvbe will be the same as the original one which caused you to file this bug.
Comment 10 egon2003 2007-12-12 18:40:09 UTC
You are correct. I have now removed the nvidia binary module, rebooted and modprobed the uvesafb module. It now reports the same modes uvesafb does when compiled into the kernel. Also testvbe reports the same as uvesafb compiled into the kernel.
Comment 11 Michal Januszewski (RETIRED) gentoo-dev 2007-12-14 21:00:27 UTC
Unfortunately, there is nothing I can do there.  Apparently the binary nvidia module somehow modifies the BIOS or the state of the video card so that more video modes are reported.  If you need to use one of these modes, you can try loading the nvidia module before uvesafb (I realize this is very inconvenient).
Comment 12 egon2003 2007-12-14 21:15:23 UTC
Well its nvidia that sucks then :)

Now I at least know what the problem is, thanks.
Comment 13 Oliver Sloss 2008-11-24 11:33:30 UTC
This bug may have to be reponed, since the workaround with loading the binary drivers dont work anymore!

First i had uvesafb compiled into kernel, but i could not use my TFT native resolution (1440x900).

Then i followed the suggestions on this page to workaround this problem, but it did not helped:

nvidia module is loaded before uvesafb:
NVRM: loading NVIDIA UNIX x86 Kernel Module  177.82  Tue Nov  4 13:35:57 PST 2008
uvesafb: NVIDIA Corporation, G86 Board - p403h22 , Chip Rev   , OEM: NVIDIA, VBE v3.0

cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes
640x400-8, 0x0100
640x480-8, 0x0101
800x600-8, 0x0103
1024x768-8, 0x0105
1280x1024-8, 0x0107
320x200-16, 0x010e
320x200-32, 0x010f
640x480-16, 0x0111
640x480-32, 0x0112
800x600-16, 0x0114
800x600-32, 0x0115
1024x768-16, 0x0117
1024x768-32, 0x0118
1280x1024-16, 0x011a
1280x1024-32, 0x011b
320x200-8, 0x0130
320x400-8, 0x0131
320x400-16, 0x0132
320x400-32, 0x0133
320x240-8, 0x0134
320x240-16, 0x0135
320x240-32, 0x0136
640x400-16, 0x013d
640x400-32, 0x013e
1600x1200-8, 0x0145
1600x1200-16, 0x0146
1600x1200-32, 0x014a

An other thing to note: After loading uvesafb (doesnt matter kernel or module) with resolution 1440x900 it even sets to a higher resolution, which in my case isnt that bad since my monitor can still display things, but which will not work for all:

fbset -i

mode "1600x1200-60"
    # D: 161.057 MHz, H: 74.529 kHz, V: 60.007 Hz
    geometry 1600 1200 1600 9175 8
    timings 6209 281 108 38 1 172 3
    vsync high
    rgba 8/0,8/0,8/0,0/0

Frame buffer device information:
    Name        : VESA VGA
    Address     : 0xd1000000
    Size        : 14680064
    Type        : PACKED PIXELS
    Visual      : PSEUDOCOLOR
    XPanStep    : 0
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 1600
    Accelerator : No
Comment 14 Oliver Sloss 2008-11-24 18:24:41 UTC
sorry for the previous comment, it only affects widescreen resolutions which are not supported by uvedafb.