| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * drivers/power/process.c - Functions for saving/restoring console. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Originally from swsusp. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/vt_kern.h>
 | 
					
						
							|  |  |  | #include <linux/kbd_kern.h>
 | 
					
						
							| 
									
										
										
										
											2009-12-14 18:00:43 -08:00
										 |  |  | #include <linux/vt.h>
 | 
					
						
							| 
									
										
										
										
											2008-04-28 02:15:03 -07:00
										 |  |  | #include <linux/module.h>
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #include "power.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-02-07 12:58:50 -08:00
										 |  |  | #if defined(CONFIG_VT) && defined(CONFIG_VT_CONSOLE)
 | 
					
						
							|  |  |  | #define SUSPEND_CONSOLE	(MAX_NR_CONSOLES-1)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | static int orig_fgconsole, orig_kmsg; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int pm_prepare_console(void) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-09-19 13:13:25 -07:00
										 |  |  | 	orig_fgconsole = vt_move_to_console(SUSPEND_CONSOLE, 1); | 
					
						
							|  |  |  | 	if (orig_fgconsole < 0) | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 		return 1; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-14 18:00:43 -08:00
										 |  |  | 	orig_kmsg = vt_kmsg_redirect(SUSPEND_CONSOLE); | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 	return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void pm_restore_console(void) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-09-19 13:13:25 -07:00
										 |  |  | 	if (orig_fgconsole >= 0) { | 
					
						
							|  |  |  | 		vt_move_to_console(orig_fgconsole, 0); | 
					
						
							| 
									
										
										
										
											2009-12-14 18:00:43 -08:00
										 |  |  | 		vt_kmsg_redirect(orig_kmsg); | 
					
						
							| 
									
										
										
										
											2009-02-14 02:06:17 +01:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2006-02-01 03:05:21 -08:00
										 |  |  | #endif
 |