From: Antonino A. D. <ad...@ho...> - 2004-11-23 22:44:30
|
On Wednesday 24 November 2004 04:53, Andrew Walrond wrote: > On Tuesday 23 Nov 2004 19:59, Geert Uytterhoeven wrote: > > No, this will use the BIOS to switch to a 1280x1024 mode before starting > > the kernel. Remember that Tony told you the panel size is set up by the > > BIOS. If that's really the case, it should help. When the input is digital, it seems that there are other registers that are programmed besides that of the CRTC registers. During the setup, some of the registers are actually read by the code, and these are the panel width and height. The rest of the registers we don't know about (no documentation). So the safe approach is to accept what the BIOS programmed for us, use scaling for res < panel size, and reject all res > panel size. If we know how to program the rest of the registers, then this should be no problem. Therefore, using vesafb to pre-program the registers for higher resolutions means that the BIOS can setup the undocumented registers for us so we can have a limit greater than 1024x768. If the input is analog, then all that is required are the CRTC registers. The panel size is actually not read in analog input. And since we know what to do with CRTC registers, even if the preferred mode is 1024x768 but the EDID tells us that it can support timings other than that, we can still use that mode. In short, the main difference is the type of input and lack of documentation. > > Hi Geert, > > I got that. I guess I'm asking whether the problem is self imposed by our > driver by rejecting modes > panel size. Ie could we just ignore the panel > size and allow any EDID supported modes? As I've said, you can try to ignore the registers pre-programmed by the BIOS, but I don't know the side effects of this. > Or, is it the video card that in any case would not allow us to set modes > > panel size? No, it's the undocumented registers that prevents us from using modes > panel size. > > Chad explains it well in his email. Yes, what Chad said is true if the input is analog. It's a different story if the input is digital. Anyway, attached is a patch that prevents an oops if the boot mode is illegal. It will still limit your resolution to panel size if input is digital. Tony BTW: How does X behave if the input is digital. Does it accept modes greater than panel size? If it does, then the documentation is actually there. I'll look at the X code again. And I'll probably do some googling on this. If you happen to encounter any kind of programming info about this, let me know also. Thanks for testing. |