1 /* 2 * swsusp.c - SuperH hibernation support 3 * 4 * Copyright (C) 2009 Magnus Damm 5 * 6 * This file is subject to the terms and conditions of the GNU General Public 7 * License. See the file "COPYING" in the main directory of this archive 8 * for more details. 9 */ 10 11 #include <linux/mm.h> 12 #include <linux/sched.h> 13 #include <linux/suspend.h> 14 #include <asm/suspend.h> 15 #include <asm/sections.h> 16 #include <asm/tlbflush.h> 17 #include <asm/page.h> 18 #include <asm/fpu.h> 19 20 struct swsusp_arch_regs swsusp_arch_regs_cpu0; 21 22 int pfn_is_nosave(unsigned long pfn) 23 { 24 unsigned long begin_pfn = __pa(&__nosave_begin) >> PAGE_SHIFT; 25 unsigned long end_pfn = PAGE_ALIGN(__pa(&__nosave_end)) >> PAGE_SHIFT; 26 27 return (pfn >= begin_pfn) && (pfn < end_pfn); 28 } 29 30 void save_processor_state(void) 31 { 32 init_fpu(current); 33 } 34 35 void restore_processor_state(void) 36 { 37 local_flush_tlb_all(); 38 } 39