>>>>> "ml" == Michael Lorenz <macallan%netbsd.org@localhost> writes: ml> X apparently switches the console back to ml> WSDISPLAYIO_MODE_EMUL after some driver setup, at this point ml> radeonfb restores its video mode ml> I'm not sure how exactly to fix this yet, I still haven't been convinced away from my old idea, which is that the right way to deal with this whole mess is: * the console needs to be able to draw into all the framebuffer modes and pixel-packing formats used by X, SDL, direct-whatever. If you use a mode in X that the console doesn't understand, the console will just have to be messy when X returns. It's permitted to leave the console broken---lots of stuff is already broken---but if you decide to fix the particular problem-mode, then there should be only two permitted ways: make X stop using the problem mode, or make the console understand it. Adding more mode-change gymnastics is not a permitted way. * any program running on the machine anywhere, X or otherwise, which changes video modes, needs to make calls into wscons to inform it the new framebuffer shape right after it makes the change. The kernel framebuffer does not need to do all the mode programming by proxy, nor need to understand how to undo any arbitrary programming. it only needs to listen when it's told the screen shape has changed. In WSDISPLAYIO_MODE_EMUL you can repaint the screen and send SIGWINCH after this call, and in WSDISPLAYIO_MODE_GRAPHICS you can do nothing, just remember it happened. * the kernel should never program a video mode. It should only be informed what the current mode is, and in two different ways: + once, at boot + by any userland program that changes video modes. * the console is not working unless ddb and printk are working. On systems that run X, the console is **FOR** ddb. This is not just some extra gravy feature, it is the main feature. If you want a console just for testing different X config files, use ssh instead. If it is too much work to fix the console, then leave it broken. A console that works until the first time X is started, and never again, is still useful. But do not fix the console for everything except ddb/printk, then say ``I've fixed it''---you've done nothing but given people a way to edit X config files, sometimes, and probably waste a bunch of your own valuable time for something mostly-useless and architecturally stupid. I must be missing something fundamental because this approach seems like so much more function for so much less work.
Attachment:
pgpVhCylq4Wby.pgp
Description: PGP signature