[Intel-gfx] [PATCH] drm/i915: Only unbind vgacon, not other console drivers
David Herrmann
dh.herrmann at gmail.com
Tue Jul 8 15:17:26 CEST 2014
Hi
On Tue, Jul 8, 2014 at 10:08 AM, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> The console subsystem only provides a function to switch to a given
> console, but we want to actually only switach away from vgacon.
> Unconditionally switching to the dummy console resulted in switching
> away from fbcon in multi-gpu setups when other gpu drivers are loaded
> before i915.
>
> Then either the reinitialization of fbcon when i915 registers its
> fbdev emulation or the teardown of the fbcon driver killed the
> machine. So only switch to the dummy console when it's required.
>
> Kudos to Chris for the original idea, I've only refined it a bit to
> still unregister vgacon even when it's currently unused.
>
> This regression has been introduced in
>
> commit a4de05268e674e8ed31df6348269e22d6c6a1803
> Author: Daniel Vetter <daniel.vetter at ffwll.ch>
> Date: Thu Jun 5 16:20:46 2014 +0200
>
> drm/i915: Kick out vga console
>
> Reported-and-tested-by: Ed Tomlinson <edt at aei.ca>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: David Herrmann <dh.herrmann at gmail.com>
> Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
Reviewed-by: David Herrmann <dh.herrmann at gmail.com>
Thanks
David
> ---
> drivers/gpu/drm/i915/i915_dma.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index 6c656392d67d..d44344140627 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -1464,12 +1464,13 @@ static int i915_kick_out_vgacon(struct drm_i915_private *dev_priv)
> #else
> static int i915_kick_out_vgacon(struct drm_i915_private *dev_priv)
> {
> - int ret;
> + int ret = 0;
>
> DRM_INFO("Replacing VGA console driver\n");
>
> console_lock();
> - ret = do_take_over_console(&dummy_con, 0, MAX_NR_CONSOLES - 1, 1);
> + if (con_is_bound(&vga_con))
> + ret = do_take_over_console(&dummy_con, 0, MAX_NR_CONSOLES - 1, 1);
> if (ret == 0) {
> ret = do_unregister_con_driver(&vga_con);
>
> --
> 2.0.0
>
More information about the Intel-gfx
mailing list