[Intel-gfx] [PATCH 8/9] drm/i915: treat no fb -> fb as simple flip instead of full mode set

Daniel Vetter daniel at ffwll.ch
Wed Mar 27 13:49:47 CET 2013


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



More information about the Intel-gfx mailing list