1/* 2 * Suspend support specific for mips. 3 * 4 * Licensed under the GPLv2 5 * 6 * Copyright (C) 2009 Lemote Inc. 7 * Author: Hu Hongbing <huhb@lemote.com> 8 * Wu Zhangjin <wuzhangjin@gmail.com> 9 */ 10#include <asm/sections.h> 11#include <asm/fpu.h> 12#include <asm/dsp.h> 13 14static u32 saved_status; 15struct pt_regs saved_regs; 16 17void save_processor_state(void) 18{ 19 saved_status = read_c0_status(); 20 21 if (is_fpu_owner()) 22 save_fp(current); 23 if (cpu_has_dsp) 24 save_dsp(current); 25} 26 27void restore_processor_state(void) 28{ 29 write_c0_status(saved_status); 30 31 if (is_fpu_owner()) 32 restore_fp(current); 33 if (cpu_has_dsp) 34 restore_dsp(current); 35} 36 37int pfn_is_nosave(unsigned long pfn) 38{ 39 unsigned long nosave_begin_pfn = PFN_DOWN(__pa(&__nosave_begin)); 40 unsigned long nosave_end_pfn = PFN_UP(__pa(&__nosave_end)); 41 42 return (pfn >= nosave_begin_pfn) && (pfn < nosave_end_pfn); 43} 44