lkml.org 
[lkml]   [2008]   [Mar]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 6/6] PM/FB/gxfb: add config option that allows disabling of VT switch during suspend
    On Mon, 10 Mar 2008 14:19:39 -0700
    Andrew Morton <akpm@linux-foundation.org> wrote:

    > On Sat, 8 Mar 2008 20:49:27 -0500
    > Andres Salomon <dilinger@queued.net> wrote:
    >
    > > This is purely for suspend/resume time optimization.
    > >
    > >
    > > >From 874aa20022a2501a30704163ed31a7baba7de9e5 Mon Sep 17 00:00:00 2001
    > > From: Andres Salomon <dilinger@debian.org>
    > > 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 <dilinger@debian.org>
    > > ---
    > > 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.
    > >
    > > +config FBDEV_SUPPORTS_NOSWITCH
    > > + bool
    > > + default n
    > > +
    > > +config DISABLE_SUSPEND_VT_SWITCH
    > > + bool "Disable the console switch prior to suspend (EXPERIMENTAL)"
    > > + depends on VT_CONSOLE && PM && EXPERIMENTAL && FBDEV_SUPPORTS_NOSWITCH
    > > + 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.
    >
    > It would be far preferable to do this via a kernel boot parameter rather
    > than via a kernel rebuild.
    >

    Well, it shouldn't be supported at _all_ unless the framebuffer driver
    supports it; you're asking for it to be converted to something like the
    following?



    #ifdef CONFIG_FBDEV_SUPPORTS_NOSWITCH
    static int no_vt_switch;
    #endif

    int pm_prepare_console(void)
    {
    #ifdef CONFIG_FBDEV_SUPPORTS_NOSWITCH
    if (no_vt_switch)
    return 0;
    #endif
    ...
    }

    #ifdef CONFIG_FBDEV_SUPPORTS_NOSWITCH
    module_param(no_vt_switch, int, 0);
    MODULE_PARM_DESC(no_vt_switch, "...");
    #endif


    If so, that means extra #ifdef's sprinkled throughout the code. Note
    that most framebuffer drivers won't be supporting this, and those that
    do will almost certainly always want vt switching turned off..




    \
     
     \ /
      Last update: 2008-03-10 22:43    [W:0.027 / U:29.464 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site