From: Andres Salomon <hidden> Date: 2008-03-09 01:47:01
This is purely for suspend/resume time optimization.
From 874aa20022a2501a30704163ed31a7baba7de9e5 Mon Sep 17 00:00:00 2001
From: Andres Salomon <redacted>
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 <redacted>
---
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(-)
--
1.5.3.7
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
From: Andrew Morton <akpm@linux-foundation.org> Date: 2008-03-10 21:25:56
On Sat, 8 Mar 2008 20:49:27 -0500
Andres Salomon [off-list ref] wrote:
quoted hunk
This is purely for suspend/resume time optimization.
quoted
From 874aa20022a2501a30704163ed31a7baba7de9e5 Mon Sep 17 00:00:00 2001
From: Andres Salomon <redacted>
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 <redacted>
---
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(-)
@@ -58,6 +58,27 @@ config VT_CONSOLEIfunsure,sayY.+configFBDEV_SUPPORTS_NOSWITCH+bool+defaultn++configDISABLE_SUSPEND_VT_SWITCH+bool"Disable the console switch prior to suspend (EXPERIMENTAL)"+depends onVT_CONSOLE&&PM&&EXPERIMENTAL&&FBDEV_SUPPORTS_NOSWITCH+defaultn+---help---+ThisoptiondisablestheautomaticswitchtoVTconsolethathappens+priortoLinuxgoingintoasuspend/sleep.Your+videocard/framebuffermustbeabletoproperlyrestorethe+display(evenifXisdoingsomethingcrazy!)inthisscenario.+Thisisusefulforsavingpreciousmillisecondsduringsuspendand+resume;however,ifyourframebufferlackssupport,itcouldleave+yourdisplayinaweirdstate.Ifyou'reevenseeingthisoption,+itmeansatleastoneofyourselectedframebufferdriverssupports+restoringthedisplay.++Ifunsure,sayN.
It would be far preferable to do this via a kernel boot parameter rather
than via a kernel rebuild.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
From: Andres Salomon <hidden> Date: 2008-03-10 21:40:44
On Mon, 10 Mar 2008 14:19:39 -0700
Andrew Morton [off-list ref] wrote:
On Sat, 8 Mar 2008 20:49:27 -0500
Andres Salomon [off-list ref] wrote:
quoted
This is purely for suspend/resume time optimization.
quoted
From 874aa20022a2501a30704163ed31a7baba7de9e5 Mon Sep 17 00:00:00 2001
From: Andres Salomon <redacted>
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 <redacted>
---
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(-)
@@ -58,6 +58,27 @@ config VT_CONSOLEIfunsure,sayY.+configFBDEV_SUPPORTS_NOSWITCH+bool+defaultn++configDISABLE_SUSPEND_VT_SWITCH+bool"Disable the console switch prior to suspend (EXPERIMENTAL)"+depends onVT_CONSOLE&&PM&&EXPERIMENTAL&&FBDEV_SUPPORTS_NOSWITCH+defaultn+---help---+ThisoptiondisablestheautomaticswitchtoVTconsolethathappens+priortoLinuxgoingintoasuspend/sleep.Your+videocard/framebuffermustbeabletoproperlyrestorethe+display(evenifXisdoingsomethingcrazy!)inthisscenario.+Thisisusefulforsavingpreciousmillisecondsduringsuspendand+resume;however,ifyourframebufferlackssupport,itcouldleave+yourdisplayinaweirdstate.Ifyou'reevenseeingthisoption,+itmeansatleastoneofyourselectedframebufferdriverssupports+restoringthedisplay.++Ifunsure,sayN.
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..
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
From: Andrew Morton <akpm@linux-foundation.org> Date: 2008-03-10 21:52:38
On Mon, 10 Mar 2008 17:44:24 -0400
Andres Salomon [off-list ref] wrote:
On Mon, 10 Mar 2008 14:19:39 -0700
Andrew Morton [off-list ref] wrote:
quoted
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..
I don't think you need any ifdefs or config options at all, do you? Just
add a new module parameter to this driver and some little interface into
the PM core which allows the driver to set no_vt_switch?
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
From: Andres Salomon <hidden> Date: 2008-03-10 22:11:18
On Mon, 10 Mar 2008 14:51:18 -0700
Andrew Morton [off-list ref] wrote:
On Mon, 10 Mar 2008 17:44:24 -0400
Andres Salomon [off-list ref] wrote:
quoted
On Mon, 10 Mar 2008 14:19:39 -0700
Andrew Morton [off-list ref] wrote:
quoted
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..
I don't think you need any ifdefs or config options at all, do you? Just
add a new module parameter to this driver and some little interface into
the PM core which allows the driver to set no_vt_switch?
That's a possibility, but doesn't adding hooks into PM core for two
drivers (lxfb and gxfb) seems like overkill? I also don't really see
anyone needing to switch back and forth between VT_SWITCH and
NO_VT_SWITCH other than to work around possible bugs in the register
save/restore code..
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
From: Jordan Crouse <hidden> Date: 2008-03-10 22:26:11
On 10/03/08 18:14 -0400, Andres Salomon wrote:
On Mon, 10 Mar 2008 14:51:18 -0700
Andrew Morton [off-list ref] wrote:
quoted
On Mon, 10 Mar 2008 17:44:24 -0400
Andres Salomon [off-list ref] wrote:
quoted
On Mon, 10 Mar 2008 14:19:39 -0700
Andrew Morton [off-list ref] wrote:
quoted
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..
I don't think you need any ifdefs or config options at all, do you? Just
add a new module parameter to this driver and some little interface into
the PM core which allows the driver to set no_vt_switch?
That's a possibility, but doesn't adding hooks into PM core for two
drivers (lxfb and gxfb) seems like overkill? I also don't really see
anyone needing to switch back and forth between VT_SWITCH and
NO_VT_SWITCH other than to work around possible bugs in the register
save/restore code..
I like Andrew's idea. I wager This won't be Geode specific for long.
Either other drivers will get the hint and add real save/restore code
or the GPU subystem code being worked on by the X folks will come along
and make the VT switch obsolete for everybody. Either way, I see hooks
in the PM core as generic love that everybody can benefit from.
Jordan
--
Jordan Crouse
Systems Software Development Engineer
Advanced Micro Devices, Inc.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
From: Rafael J. Wysocki <hidden> Date: 2008-03-10 22:29:18
On Monday, 10 of March 2008, Andres Salomon wrote:
On Mon, 10 Mar 2008 14:51:18 -0700
Andrew Morton [off-list ref] wrote:
quoted
On Mon, 10 Mar 2008 17:44:24 -0400
Andres Salomon [off-list ref] wrote:
quoted
On Mon, 10 Mar 2008 14:19:39 -0700
Andrew Morton [off-list ref] wrote:
quoted
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..
I don't think you need any ifdefs or config options at all, do you? Just
add a new module parameter to this driver and some little interface into
the PM core which allows the driver to set no_vt_switch?
That's a possibility, but doesn't adding hooks into PM core for two
drivers (lxfb and gxfb) seems like overkill? I also don't really see
anyone needing to switch back and forth between VT_SWITCH and
NO_VT_SWITCH other than to work around possible bugs in the register
save/restore code..
FWIW, I prefer the original .config option idea.
Thanks,
Rafael
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
From: Andrew Morton <akpm@linux-foundation.org> Date: 2008-03-10 22:30:26
On Mon, 10 Mar 2008 18:14:46 -0400 Andres Salomon [off-list ref] wrote:
On Mon, 10 Mar 2008 14:51:18 -0700
Andrew Morton [off-list ref] wrote:
quoted
On Mon, 10 Mar 2008 17:44:24 -0400
Andres Salomon [off-list ref] wrote:
quoted
On Mon, 10 Mar 2008 14:19:39 -0700
Andrew Morton [off-list ref] wrote:
quoted
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..
I don't think you need any ifdefs or config options at all, do you? Just
add a new module parameter to this driver and some little interface into
the PM core which allows the driver to set no_vt_switch?
That's a possibility, but doesn't adding hooks into PM core for two
drivers (lxfb and gxfb) seems like overkill?
It's just a few bytes of code?
I also don't really see
anyone needing to switch back and forth between VT_SWITCH and
NO_VT_SWITCH other than to work around possible bugs in the register
save/restore code..
Making driver behaviour depend upon compile-time settings is really to be
avoided. A distributor has to choose one setting or the other, and a) that
means that some people will get the wrong setting and b) there's a decent
chance that the distributor will get it wrong.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
From: Pavel Machek <hidden> Date: 2008-03-10 23:04:45
On Mon 2008-03-10 14:19:39, Andrew Morton wrote:
On Sat, 8 Mar 2008 20:49:27 -0500
Andres Salomon [off-list ref] wrote:
quoted
This is purely for suspend/resume time optimization.
quoted
From 874aa20022a2501a30704163ed31a7baba7de9e5 Mon Sep 17 00:00:00 2001
From: Andres Salomon <redacted>
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).
...
It would be far preferable to do this via a kernel boot parameter rather
than via a kernel rebuild.
From: Pavel Machek <hidden> Date: 2008-03-10 23:05:45
Hi!
quoted
quoted
quoted
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..
I don't think you need any ifdefs or config options at all, do you? Just
add a new module parameter to this driver and some little interface into
the PM core which allows the driver to set no_vt_switch?
That's a possibility, but doesn't adding hooks into PM core for two
drivers (lxfb and gxfb) seems like overkill? I also don't really see
anyone needing to switch back and forth between VT_SWITCH and
NO_VT_SWITCH other than to work around possible bugs in the register
save/restore code..
I like Andrew's idea. I wager This won't be Geode specific for long.
Either other drivers will get the hint and add real save/restore code
or the GPU subystem code being worked on by the X folks will come along
and make the VT switch obsolete for everybody. Either way, I see hooks
in the PM core as generic love that everybody can benefit from.
From: Andrew Morton <akpm@linux-foundation.org> Date: 2008-03-10 23:38:41
On Mon, 10 Mar 2008 23:28:18 +0100 "Rafael J. Wysocki" [off-list ref] wrote:
quoted
quoted
quoted
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..
I don't think you need any ifdefs or config options at all, do you? Just
add a new module parameter to this driver and some little interface into
the PM core which allows the driver to set no_vt_switch?
That's a possibility, but doesn't adding hooks into PM core for two
drivers (lxfb and gxfb) seems like overkill? I also don't really see
anyone needing to switch back and forth between VT_SWITCH and
NO_VT_SWITCH other than to work around possible bugs in the register
save/restore code..