[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnewsense-dev] Re: [loongson-PATCH-v1 22/27] Hibernation Support in mip
From: |
Atsushi Nemoto |
Subject: |
[Gnewsense-dev] Re: [loongson-PATCH-v1 22/27] Hibernation Support in mips system |
Date: |
Fri, 22 May 2009 22:01:23 +0900 (JST) |
On Thu, 21 May 2009 06:11:11 +0800, address@hidden wrote:
> --- /dev/null
> +++ b/arch/mips/power/cpu.c
> @@ -0,0 +1,51 @@
> +/*
> + * Suspend support specific for mips.
> + *
> + */
> +#include <linux/mm.h>
> +#include <asm/mipsregs.h>
> +#include <asm/page.h>
> +#include <linux/suspend.h>
> +
> +/* References to section boundaries */
> +extern const void __nosave_begin, __nosave_end;
> +
> +static uint32_t saved_status;
> +unsigned long
> + saved_ra,
> + saved_sp,
> + saved_fp,
> + saved_gp,
> + saved_s0,
> + saved_s1,
> + saved_s2,
> + saved_s3,
> + saved_s4,
> + saved_s5,
> + saved_s6,
> + saved_s7,
> + saved_a0,
> + saved_a1,
> + saved_a2,
> + saved_a3,
> + saved_v0,
> + saved_v1;
Instead of enumerating them, I would prefer something like "struct
pt_regs saved_regs" or "unsigned long saved_regs[32]".
> +void save_processor_state(void)
> +{
> + saved_status = read_c0_status();
> +}
No need to save/restore floating point registers?
> +int pfn_is_nosave(unsigned long pfn)
> +{
> + unsigned long nosave_begin_pfn = __pa(&__nosave_begin) >> PAGE_SHIFT;
> + unsigned long nosave_end_pfn = \
> + PAGE_ALIGN(__pa(&__nosave_end)) >> PAGE_SHIFT;
Unneeded backslash concatenation.
PFN_UP(), PFN_DOWN() can be used.
> +LEAF(swsusp_arch_suspend)
> + PTR_LA t0, saved_ra
> + PTR_S ra, (t0)
> + PTR_LA t0, saved_sp
> + PTR_S sp, (t0)
The MIPS assembly language accepts symbol for PTR_S, i.e.:
PTR_S ra, saved_ra
Or, if you converted saved_xxx into struct or array, you can do
something like this:
PTR_LA t0, saved_regs
PTR_S ra, PT_R31(t0)
PTR_S sp, PT_R29(t0)
...
> + j swsusp_save
> + nop
This nop is required?
---
Atsushi Nemoto
- [Gnewsense-dev] [loongson-PATCH-v1 15/27] add basic yeeloong(2f) laptop support, (continued)
- [Gnewsense-dev] [loongson-PATCH-v1 15/27] add basic yeeloong(2f) laptop support, wuzhangjin, 2009/05/21
- [Gnewsense-dev] [loongson-PATCH-v1 17/27] define Loongson2F arch specific phys prot access, wuzhangjin, 2009/05/21
- [Gnewsense-dev] [loongson-PATCH-v1 16/27] Add Siliconmotion 712 framebuffer driver, wuzhangjin, 2009/05/21
- [Gnewsense-dev] [loongson-PATCH-v1 18/27] Loongson2 specific OProfile driver, wuzhangjin, 2009/05/21
- [Gnewsense-dev] [loongson-PATCH-v1 19/27] flush posted write to irq, wuzhangjin, 2009/05/21
- [Gnewsense-dev] [loongson-PATCH-v1 21/27] Loongson2F cpufreq support, wuzhangjin, 2009/05/21
- [Gnewsense-dev] [loongson-PATCH-v1 20/27] CS5536 MFGPT as system clock source support, wuzhangjin, 2009/05/21
- [Gnewsense-dev] [loongson-PATCH-v1 22/27] Hibernation Support in mips system, wuzhangjin, 2009/05/21
- [Gnewsense-dev] Re: [loongson-PATCH-v1 22/27] Hibernation Support in mips system, Ralf Baechle, 2009/05/21
- [Gnewsense-dev] Re: [loongson-PATCH-v1 22/27] Hibernation Support in mips system,
Atsushi Nemoto <=
- [Gnewsense-dev] Re: [loongson-PATCH-v1 22/27] Hibernation Support in mips system, yanh, 2009/05/23
- [Gnewsense-dev] Re: [loongson-PATCH-v1 22/27] Hibernation Support in mips system, Atsushi Nemoto, 2009/05/23
- [Gnewsense-dev] Re: [loongson-PATCH-v1 22/27] Hibernation Support in mips system, yanh, 2009/05/26
- [Gnewsense-dev] Re: [loongson-PATCH-v1 22/27] Hibernation Support in mips system, Hongbing Hu, 2009/05/26
- [Gnewsense-dev] Re: [loongson-PATCH-v1 22/27] Hibernation Support in mips system, Atsushi Nemoto, 2009/05/26
[Gnewsense-dev] [loongson-PATCH-v1 24/27] fixup for FUJITSU disk, wuzhangjin, 2009/05/21