On Wed, Mar 27, 2013 at 3:09 AM, Jesse Barnes <jbarnes at virtuousgeek.org> wrote: > If for example the BIOS fb is too small for the dual pipe config we detect, > we may have valid timings and such, but no fb. The pfit case also hits this > path (though currently only fastboots if you hack your mode clock to match). But even when the BIOS fb is to small and the BIOS config uses the pfit, we /should/ have an fb around. Looking a bit closer I think the confusion stems from you reading out the adjusted mode, but treating it like the requested mode. I think it'd be much more solid if we store the read-out mode in the adjusted_mode (won't work otherwise with hw state cross-checking anyway), and then do two comparisons here: - Does the request mode (plus everything else) match? If so, just do an fb_set_base call. - Does the adjusted mode match (plus the entire output routing ofc)? That means there's either the vga plane or a pfit in-between which we don't like. If possible we can then play some tricks to avoid the full modeset. The reason that I'm a bit freaked about about your change here is that in a lot of places we treat crtc->fb == NULL as "no mode set". So I fear we're breaking a few too many assumptions here with that hack, and it simply needs more thought about what we should actually check. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch