tl;dr: If DRM/KMS has been flaky for you, please try again in HEAD!
I recently found a bit of spare time to look for bugs I'd left in DRM/KMS which have left a lot of systems kinda-sorta working but not acceptably. In so doing, I found several classes of bugs related to timeouts -- about two dozen different bugs altogether, in different timed waits, including detecting displays, waiting for rendering commands to complete, and waiting for vertical blanks. This affects all DRM drivers (at the moment, just Intel and Radeon). I've reviewed all these timed waits, and I don't see any more of these bugs. Obviously this code could use more eyeballs! (Grep for `DRM_.*WAIT.*_UNTIL' if you'd like to lend yours.) But if you've been having trouble with blank screens or flaky rendering or frequent hangs -- I can't promise anything, but please try again with a kernel from HEAD and let me know how it goes. P.S. Nouveau now compiles, although it doesn't link yet. Needs a bit more work to get it to a state that can be tested, but most of the tedious work is done. Let me know if you'd like to take a stab at it and I'd be happy to set you in the right direction. P.P.S. If you've sent me mail about graphics issues and I haven't replied, I'm sorry -- I have been too busy to deal with this properly in the past few months. If these changes don't fix your issue, please file a PR so it'll be less likely to be forgotten.
