[PATCH] drm/fb-helper: delay hotplug handling when partially bound

Daniel Vetter daniel at ffwll.ch
Wed Jul 18 08:52:52 PDT 2012


On Fri, Jun 15, 2012 at 10:32:20AM +0100, Chris Wilson wrote:
> On Fri, 15 Jun 2012 11:01:22 +0200, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> > Ok, this requires quite a dance to actually hit:
> > 1) We plug in a 2nd screen, enable it in both X and (by vt-switching)
> > in the fbcon.
> > 2) We disable that screen again in with xrandr.
> > 3) We vt-switch again, so that fbcon displays on the 2nd screen, but X
> > on the first screen. This obviously needs a driver that doesn't switch
> > off unused functions when regaining the VT.
> > 3) When X controls the vt, we unplug that screen.
> > 
> > Now drm_fb_helper_hotplug_event we noticed that that some crtcs are
> > bound, but because we still have the fbcon on the 2nd screeen we also
> > have bound set. Which means the fbcon wrongly assumes it's in control
> > of everything an happily disables the output on the 2nd screen, but
> > enables its fb on the first screen.
> > 
> > Work around this issue by counting how many crtcs are bound and how
> > many are bound to fbcon and assuming that when fbcon isn't bound to
> > all of them, it better not touch the output configuration.
> > 
> > Conceptually this is the same as only restoring the fbcon output
> > configuration on the driver's ->lastclose, when we're sure that no one
> > else is using kms. So this should be consistent with existing kms
> > drivers.
> > 
> > Chris has created a separate patch for the intel ddx, but I think we
> > should fix this issue here regardless - the fbcon messing with the
> > output config while it's not fully in control simply isn't a too
> > polite behaviour.
> > 
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50772
> > Tested-by: Maxim A. Nikulin <M.A.Nikulin at gmail.com>
> > Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>

Hi Dave,

This one here fixes a bug where fbcon clobbers outputs even though a real
drm client is still displaying things. Please include for 3.6.

Cheers, Daniel
-- 
Daniel Vetter
Mail: daniel at ffwll.ch
Mobile: +41 (0)79 365 57 48


More information about the dri-devel mailing list