forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
833 B
42 lines
833 B
// SPDX-License-Identifier: GPL-2.0-only |
|
/* |
|
* Suspend support specific for mips. |
|
* |
|
* Copyright (C) 2009 Lemote Inc. |
|
* Author: Hu Hongbing <[email protected]> |
|
* Wu Zhangjin <[email protected]> |
|
*/ |
|
#include <asm/sections.h> |
|
#include <asm/fpu.h> |
|
#include <asm/dsp.h> |
|
|
|
static u32 saved_status; |
|
struct pt_regs saved_regs; |
|
|
|
void save_processor_state(void) |
|
{ |
|
saved_status = read_c0_status(); |
|
|
|
if (is_fpu_owner()) |
|
save_fp(current); |
|
|
|
save_dsp(current); |
|
} |
|
|
|
void restore_processor_state(void) |
|
{ |
|
write_c0_status(saved_status); |
|
|
|
if (is_fpu_owner()) |
|
restore_fp(current); |
|
|
|
restore_dsp(current); |
|
} |
|
|
|
int pfn_is_nosave(unsigned long pfn) |
|
{ |
|
unsigned long nosave_begin_pfn = PFN_DOWN(__pa(&__nosave_begin)); |
|
unsigned long nosave_end_pfn = PFN_UP(__pa(&__nosave_end)); |
|
|
|
return (pfn >= nosave_begin_pfn) && (pfn < nosave_end_pfn); |
|
}
|
|
|