mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
[PATCH] PM: make it possible to disable console suspending
Change suspend_console() so that it waits for all consoles to flush the remaining messages and make it possible to switch the console suspending off with the help of a Kconfig option. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: Pavel Machek <pavel@ucw.cz> Cc: Stefan Seyfried <seife@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
940864ddab
commit
c8eb8b4025
3 changed files with 19 additions and 0 deletions
|
@ -120,9 +120,14 @@ extern void console_stop(struct console *);
|
||||||
extern void console_start(struct console *);
|
extern void console_start(struct console *);
|
||||||
extern int is_console_locked(void);
|
extern int is_console_locked(void);
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_CONSOLE_SUSPEND
|
||||||
/* Suspend and resume console messages over PM events */
|
/* Suspend and resume console messages over PM events */
|
||||||
extern void suspend_console(void);
|
extern void suspend_console(void);
|
||||||
extern void resume_console(void);
|
extern void resume_console(void);
|
||||||
|
#else
|
||||||
|
static inline void suspend_console(void) {}
|
||||||
|
static inline void resume_console(void) {}
|
||||||
|
#endif /* CONFIG_DISABLE_CONSOLE_SUSPEND */
|
||||||
|
|
||||||
/* Some debug stub to catch some of the obvious races in the VT code */
|
/* Some debug stub to catch some of the obvious races in the VT code */
|
||||||
#if 1
|
#if 1
|
||||||
|
|
|
@ -36,6 +36,17 @@ config PM_DEBUG
|
||||||
code. This is helpful when debugging and reporting various PM bugs,
|
code. This is helpful when debugging and reporting various PM bugs,
|
||||||
like suspend support.
|
like suspend support.
|
||||||
|
|
||||||
|
config DISABLE_CONSOLE_SUSPEND
|
||||||
|
bool "Keep console(s) enabled during suspend/resume (DANGEROUS)"
|
||||||
|
depends on PM && PM_DEBUG
|
||||||
|
default n
|
||||||
|
---help---
|
||||||
|
This option turns off the console suspend mechanism that prevents
|
||||||
|
debug messages from reaching the console during the suspend/resume
|
||||||
|
operations. This may be helpful when debugging device drivers'
|
||||||
|
suspend/resume routines, but may itself lead to problems, for example
|
||||||
|
if netconsole is used.
|
||||||
|
|
||||||
config PM_TRACE
|
config PM_TRACE
|
||||||
bool "Suspend/resume event tracing"
|
bool "Suspend/resume event tracing"
|
||||||
depends on PM && PM_DEBUG && X86_32 && EXPERIMENTAL
|
depends on PM && PM_DEBUG && X86_32 && EXPERIMENTAL
|
||||||
|
|
|
@ -721,6 +721,7 @@ int __init add_preferred_console(char *name, int idx, char *options)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_CONSOLE_SUSPEND
|
||||||
/**
|
/**
|
||||||
* suspend_console - suspend the console subsystem
|
* suspend_console - suspend the console subsystem
|
||||||
*
|
*
|
||||||
|
@ -728,6 +729,7 @@ int __init add_preferred_console(char *name, int idx, char *options)
|
||||||
*/
|
*/
|
||||||
void suspend_console(void)
|
void suspend_console(void)
|
||||||
{
|
{
|
||||||
|
printk("Suspending console(s)\n");
|
||||||
acquire_console_sem();
|
acquire_console_sem();
|
||||||
console_suspended = 1;
|
console_suspended = 1;
|
||||||
}
|
}
|
||||||
|
@ -737,6 +739,7 @@ void resume_console(void)
|
||||||
console_suspended = 0;
|
console_suspended = 0;
|
||||||
release_console_sem();
|
release_console_sem();
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_DISABLE_CONSOLE_SUSPEND */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* acquire_console_sem - lock the console system for exclusive use.
|
* acquire_console_sem - lock the console system for exclusive use.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue