[lkml]   [2008]   [Mar]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH 6/6] PM/FB/gxfb: add config option that allows disabling of VT switch during suspend
    This is purely for suspend/resume time optimization.

    From 874aa20022a2501a30704163ed31a7baba7de9e5 Mon Sep 17 00:00:00 2001
    From: Andres Salomon <>
    Date: Wed, 5 Mar 2008 16:40:25 -0500
    Subject: [PATCH] PM: add config option that allows disabling of VT switch during suspend

    Prior to suspend, we allocate and switch to a new VT; after suspend, we
    switch back to the original VT. This can be slow, and is completely
    unnecessary if the framebuffer we're using can restore video properly.

    This adds CONFIG_DISABLE_SUSPEND_VT_SWITCH which allows the user to
    select whether or not to do that switch. This has been tested with the
    gxfb driver (on a Geode GX dev board and OLPC prototype machines). In
    order for the user to even see this option, a framebuffer has to declare
    support for it (via CONFIG_FBDEV_SUPPORTS_NOSWITCH).

    Signed-off-by: Andres Salomon <>
    drivers/char/Kconfig | 21 +++++++++++++++++++++
    drivers/video/geode/Kconfig | 1 +
    include/linux/suspend.h | 2 +-
    kernel/power/console.c | 2 +-
    4 files changed, 24 insertions(+), 2 deletions(-)

    diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
    index 47c6be8..7fe0e85 100644
    --- a/drivers/char/Kconfig
    +++ b/drivers/char/Kconfig
    @@ -58,6 +58,27 @@ config VT_CONSOLE

    If unsure, say Y.

    + bool
    + default n
    + bool "Disable the console switch prior to suspend (EXPERIMENTAL)"
    + default n
    + ---help---
    + This option disables the automatic switch to VT console that happens
    + prior to Linux going into a suspend/sleep. Your
    + video card/framebuffer must be able to properly restore the
    + display (even if X is doing something crazy!) in this scenario.
    + This is useful for saving precious milliseconds during suspend and
    + resume; however, if your framebuffer lacks support, it could leave
    + your display in a weird state. If you're even seeing this option,
    + it means at least one of your selected framebuffer drivers supports
    + restoring the display.
    + If unsure, say N.
    config HW_CONSOLE
    depends on VT && !S390 && !UML
    diff --git a/drivers/video/geode/Kconfig b/drivers/video/geode/Kconfig
    index c5d8ba4..1497fe4 100644
    --- a/drivers/video/geode/Kconfig
    +++ b/drivers/video/geode/Kconfig
    @@ -29,6 +29,7 @@ config FB_GEODE_GX
    select FB_CFB_FILLRECT
    select FB_CFB_COPYAREA
    Framebuffer driver for the display controller integrated into the
    AMD Geode GX processors.
    diff --git a/include/linux/suspend.h b/include/linux/suspend.h
    index 1d7d4c5..46080f5 100644
    --- a/include/linux/suspend.h
    +++ b/include/linux/suspend.h
    @@ -11,7 +11,7 @@
    #include <linux/mm.h>
    #include <asm/errno.h>

    -#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_VT) && defined(CONFIG_VT_CONSOLE)
    +#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_VT) && defined(CONFIG_VT_CONSOLE) && !defined(CONFIG_DISABLE_SUSPEND_VT_SWITCH)
    extern int pm_prepare_console(void);
    extern void pm_restore_console(void);
    diff --git a/kernel/power/console.c b/kernel/power/console.c
    index 89bcf49..dca98f5 100644
    --- a/kernel/power/console.c
    +++ b/kernel/power/console.c
    @@ -9,7 +9,7 @@
    #include <linux/console.h>
    #include "power.h"

    -#if defined(CONFIG_VT) && defined(CONFIG_VT_CONSOLE)
    +#if defined(CONFIG_VT) && defined(CONFIG_VT_CONSOLE) && !defined(CONFIG_DISABLE_SUSPEND_VT_SWITCH)

    static int orig_fgconsole, orig_kmsg;

     \ /
      Last update: 2008-03-09 02:49    [W:0.039 / U:30.724 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site