From: yanh <yanh@lemote.com>
To: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Cc: wuzhangjin@gmail.com, linux-mips@linux-mips.org,
ralf@linux-mips.org, philippe@cowpig.ca, r0bertz@gentoo.org,
zhangfx@lemote.com, apatard@mandriva.com,
loongson-dev@googlegroups.com, gnewsense-dev@nongnu.org,
hofrat@hofr.at, liujl@lemote.com, erwan@thiscow.com
Subject: Re: [loongson-PATCH-v1 22/27] Hibernation Support in mips system
Date: Sat, 23 May 2009 16:06:43 +0800 [thread overview]
Message-ID: <1243066003.8509.60.camel@localhost.localdomain> (raw)
In-Reply-To: <20090522.220123.59650403.anemo@mba.ocn.ne.jp>
在 2009-05-22五的 22:01 +0900,Atsushi Nemoto写道:
> On Thu, 21 May 2009 06:11:11 +0800, wuzhangjin@gmail.com 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]".
This implementation is referencing the x86 platform.
Not all the 32 reigsters are needed to save.
Maybe the whole registers needed to save can still be reduced.
>
> > +void save_processor_state(void)
> > +{
> > + saved_status = read_c0_status();
> > +}
>
> No need to save/restore floating point registers?
the floating point registers are not used by kernel, for user part, they
are already saved while entering into kernel mode.
>
> > +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
>
next prev parent reply other threads:[~2009-05-23 8:07 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-20 21:48 [loongson-PATCH-v1 00/27] linux patches of loongson-based machines wuzhangjin
2009-05-20 21:49 ` [loongson-PATCH-v1 01/27] fix-warning: incompatible argument type of pci_fixup_irqs wuzhangjin
2009-05-20 22:11 ` David Daney
2009-05-20 23:20 ` Wu Zhangjin
2009-05-21 8:13 ` Ralf Baechle
2009-05-20 21:49 ` [loongson-PATCH-v1 02/27] fix-warning: incompatible argument type of virt_to_phys wuzhangjin
2009-05-21 8:06 ` Ralf Baechle
2009-05-20 21:50 ` [loongson-PATCH-v1 03/27] fix-error: incompatiable argument type of clear_user wuzhangjin
2009-05-21 7:51 ` Ralf Baechle
2009-05-20 21:50 ` [loongson-PATCH-v1 04/27] change the naming methods wuzhangjin
2009-05-20 21:50 ` [loongson-PATCH-v1 05/27] remove reference to bonito64.h wuzhangjin
2009-05-20 21:51 ` [loongson-PATCH-v1 06/27] divide the files to the smallest logic unit wuzhangjin
2009-05-20 21:51 ` [loongson-PATCH-v1 07/27] replace tons of magic numbers by understandable symbols wuzhangjin
2009-05-20 21:52 ` [loongson-PATCH-v1 08/27] clean up the early printk support for fuloong(2e) wuzhangjin
2009-05-20 21:52 ` [loongson-PATCH-v1 09/27] enable Real Time Clock Support " wuzhangjin
2009-05-20 21:54 ` [loongson-PATCH-v1 10/27] add loongson-specific cpu-feature-overrides.h wuzhangjin
2009-05-20 21:54 ` [loongson-PATCH-v1 11/27] split the loongson-specific part out wuzhangjin
2009-05-20 22:05 ` [loongson-PATCH-v1 12/27] add basic loongson-2f support wuzhangjin
2009-05-20 22:06 ` [loongson-PATCH-v1 13/27] add basic fuloong(2f) support wuzhangjin
2009-05-20 22:06 ` [loongson-PATCH-v1 14/27] enable serial port support of loongson-based machines wuzhangjin
2009-05-20 22:07 ` [loongson-PATCH-v1 15/27] add basic yeeloong(2f) laptop support wuzhangjin
2009-05-20 22:08 ` [loongson-PATCH-v1 16/27] Add Siliconmotion 712 framebuffer driver wuzhangjin
2009-05-29 13:29 ` Simon Braunschmidt
2009-05-29 19:51 ` Wu Zhangjin
2009-06-01 7:41 ` Wu Zhangjin
2009-06-01 7:41 ` Wu Zhangjin
2009-05-20 22:08 ` [loongson-PATCH-v1 17/27] define Loongson2F arch specific phys prot access wuzhangjin
2009-05-20 22:09 ` [loongson-PATCH-v1 18/27] Loongson2 specific OProfile driver wuzhangjin
2009-05-20 22:10 ` [loongson-PATCH-v1 19/27] flush posted write to irq wuzhangjin
2009-05-20 22:10 ` [loongson-PATCH-v1 20/27] CS5536 MFGPT as system clock source support wuzhangjin
2009-05-20 22:10 ` [loongson-PATCH-v1 21/27] Loongson2F cpufreq support wuzhangjin
2009-05-20 22:11 ` [loongson-PATCH-v1 22/27] Hibernation Support in mips system wuzhangjin
2009-05-21 12:43 ` Ralf Baechle
2009-05-24 13:13 ` Wu Zhangjin
2009-05-22 13:01 ` Atsushi Nemoto
2009-05-23 8:06 ` yanh [this message]
2009-05-23 12:30 ` Atsushi Nemoto
2009-05-26 1:43 ` yanh
2009-05-26 2:27 ` Hongbing Hu
2009-05-26 14:48 ` Atsushi Nemoto
2009-05-20 22:11 ` [loongson-PATCH-v1 23/27] Alsa memory maps fixup on mips systems wuzhangjin
2009-05-20 22:18 ` David Daney
2009-05-20 23:36 ` Wu Zhangjin
2009-05-20 22:12 ` [loongson-PATCH-v1 24/27] fixup for FUJITSU disk wuzhangjin
2009-05-22 18:32 ` Bartlomiej Zolnierkiewicz
2009-05-23 7:11 ` yanh
2009-05-23 11:47 ` Bartlomiej Zolnierkiewicz
2009-05-25 5:45 ` yanh
2009-05-25 7:35 ` 胡洪兵
2009-05-25 14:56 ` Bartlomiej Zolnierkiewicz
2009-05-25 19:05 ` Sergei Shtylyov
2009-05-25 19:10 ` Martin K. Petersen
2009-05-25 19:17 ` Sergei Shtylyov
2009-05-26 1:21 ` yanh
2009-05-26 7:56 ` Alan Cox
2009-05-26 14:39 ` yanh
2009-05-20 22:13 ` [loongson-PATCH-v1 25/27] Flush RAS and BTB for CPU predictively execution wuzhangjin
2009-05-20 22:13 ` [loongson-PATCH-v1 26/27] add default kernel config file for loongson-based machines wuzhangjin
2009-05-20 22:14 ` [loongson-PATCH-v1 27/27] add gcc 4.4 support for MIPS and loongson wuzhangjin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1243066003.8509.60.camel@localhost.localdomain \
--to=yanh@lemote.com \
--cc=anemo@mba.ocn.ne.jp \
--cc=apatard@mandriva.com \
--cc=erwan@thiscow.com \
--cc=gnewsense-dev@nongnu.org \
--cc=hofrat@hofr.at \
--cc=linux-mips@linux-mips.org \
--cc=liujl@lemote.com \
--cc=loongson-dev@googlegroups.com \
--cc=philippe@cowpig.ca \
--cc=r0bertz@gentoo.org \
--cc=ralf@linux-mips.org \
--cc=wuzhangjin@gmail.com \
--cc=zhangfx@lemote.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).