• Eric Miao's avatar
    [ARM] 4488/1: pxa: move pxa25x/pxa27x specific code out of pm.c · 711be5cc
    Eric Miao authored
    1. introduce a structure pxa_cpu_pm_fns for pxa25x/pxa27x specific
       operations as follows:
    
    	struct pxa_cpu_pm_fns {
    		int	save_size;
    		void	(*save)(unsigned long *);
    		void	(*restore)(unsigned long *);
    		int	(*valid)(suspend_state_t state);
    		void	(*enter)(suspend_state_t state);
    	}
    
    2. processor specific registers saving and restoring are performed
       by calling the corresponding (*save) and (*restore)
    
    3. pxa_cpu_pm_fns->save_size should be initialized to the required
       size for processor specific registers saving, the allocated
       memory address will be passed to (*save) and (*restore)
    
       memory allocation happens early in pxa_pm_init(), and save_size
       should be assigned prior to this (which is usually true, since
       pxa_pm_init() happens in device_initcall()
    
    4. there're some redundancies for those SLEEP_SAVE_XXX and related
       macros, will be fixed later, one way possible is for the system
       devices to handle the specific registers saving and restoring
    Signed-off-by: default avatareric miao <eric.y.miao@gmail.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    711be5cc
pm.c 2.37 KB