linux-mips.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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
> 

  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).