44 lines
		
	
	
	
		
			1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			44 lines
		
	
	
	
		
			1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * linux/arch/unicore/include/mach/pm.h
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Code specific to PKUnity SoC and UniCore ISA
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Copyright (C) 2001-2010 GUAN Xue-tao
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * This program is free software; you can redistribute it and/or modify
							 | 
						||
| 
								 | 
							
								 * it under the terms of the GNU General Public License version 2 as
							 | 
						||
| 
								 | 
							
								 * published by the Free Software Foundation.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								#ifndef __PUV3_PM_H__
							 | 
						||
| 
								 | 
							
								#define __PUV3_PM_H__
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <linux/suspend.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								struct puv3_cpu_pm_fns {
							 | 
						||
| 
								 | 
							
									int	save_count;
							 | 
						||
| 
								 | 
							
									void	(*save)(unsigned long *);
							 | 
						||
| 
								 | 
							
									void	(*restore)(unsigned long *);
							 | 
						||
| 
								 | 
							
									int	(*valid)(suspend_state_t state);
							 | 
						||
| 
								 | 
							
									void	(*enter)(suspend_state_t state);
							 | 
						||
| 
								 | 
							
									int	(*prepare)(void);
							 | 
						||
| 
								 | 
							
									void	(*finish)(void);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								extern struct puv3_cpu_pm_fns *puv3_cpu_pm_fns;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* sleep.S */
							 | 
						||
| 
								 | 
							
								extern void puv3_cpu_suspend(unsigned int);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								extern void puv3_cpu_resume(void);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								extern int puv3_pm_enter(suspend_state_t state);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Defined in hibernate_asm.S */
							 | 
						||
| 
								 | 
							
								extern int restore_image(pgd_t *resume_pg_dir, struct pbe *restore_pblist);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* References to section boundaries */
							 | 
						||
| 
								 | 
							
								extern const void __nosave_begin, __nosave_end;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								extern struct pbe *restore_pblist;
							 | 
						||
| 
								 | 
							
								#endif
							 |