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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 27 Mar 2013 13:49:47 +0100
Daniel Vetter <daniel at ffwll.ch> wrote:

> 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:

Yeah, there's an fb, but it may not be what we want.  So we don't
allocate it and thus crtc->fb is empty.

> - 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.

Right, I'm trying to play tricks here for sure.

> 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.

Yeah I was worried about that too.  Maybe we should use crtc->active
for that everywhere?

With the modeset rework and pipe config stuff, we should be able to
drop this in favor of something that looks at the pipe_config and
figures out the minimal mode set sequence required.

-- 
Jesse Barnes, Intel Open Source Technology Center


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux