* [PATCH][MIPS] vr41xx: add cpu_wait
@ 2007-08-06 15:09 Yoichi Yuasa
2007-08-06 17:45 ` Ralf Baechle
0 siblings, 1 reply; 3+ messages in thread
From: Yoichi Yuasa @ 2007-08-06 15:09 UTC (permalink / raw)
To: Ralf Baechle; +Cc: yoichi_yuasa, linux-mips
Add cpu_wait for NEC VR41xx
Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
diff -pruN -X mips/Documentation/dontdiff mips-orig/arch/mips/vr41xx/common/pmu.c mips/arch/mips/vr41xx/common/pmu.c
--- mips-orig/arch/mips/vr41xx/common/pmu.c 2007-08-06 10:26:26.176510250 +0900
+++ mips/arch/mips/vr41xx/common/pmu.c 2007-08-06 11:02:24.472787000 +0900
@@ -1,7 +1,7 @@
/*
* pmu.c, Power Management Unit routines for NEC VR4100 series.
*
- * Copyright (C) 2003-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
+ * Copyright (C) 2003-2007 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -22,11 +22,12 @@
#include <linux/ioport.h>
#include <linux/kernel.h>
#include <linux/pm.h>
-#include <linux/smp.h>
+#include <linux/sched.h>
#include <linux/types.h>
#include <asm/cpu.h>
#include <asm/io.h>
+#include <asm/processor.h>
#include <asm/reboot.h>
#include <asm/system.h>
@@ -44,6 +45,18 @@ static void __iomem *pmu_base;
#define pmu_read(offset) readw(pmu_base + (offset))
#define pmu_write(offset, value) writew((value), pmu_base + (offset))
+static void vr41xx_cpu_wait(void)
+{
+ local_irq_disable();
+ if (!need_resched())
+ /*
+ * "standby" sets IE bit of the CP0_STATUS to 1.
+ */
+ __asm__("standby;\n");
+ else
+ local_irq_enable();
+}
+
static inline void software_reset(void)
{
uint16_t pmucnt2;
@@ -113,6 +126,7 @@ static int __init vr41xx_pmu_init(void)
return -EBUSY;
}
+ cpu_wait = vr41xx_cpu_wait;
_machine_restart = vr41xx_restart;
_machine_halt = vr41xx_halt;
pm_power_off = vr41xx_power_off;
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH][MIPS] vr41xx: add cpu_wait
2007-08-06 15:09 [PATCH][MIPS] vr41xx: add cpu_wait Yoichi Yuasa
@ 2007-08-06 17:45 ` Ralf Baechle
2007-08-07 0:48 ` Yoichi Yuasa
0 siblings, 1 reply; 3+ messages in thread
From: Ralf Baechle @ 2007-08-06 17:45 UTC (permalink / raw)
To: Yoichi Yuasa; +Cc: linux-mips
On Tue, Aug 07, 2007 at 12:09:17AM +0900, Yoichi Yuasa wrote:
> Add cpu_wait for NEC VR41xx
Queued for 2.6.24.
Thanks,
Ralf
PS: I take it you've verified that using the standby instruction with
interrupts is safe on VR41xx? There are alot of architectural
restrictions in that area.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH][MIPS] vr41xx: add cpu_wait
2007-08-06 17:45 ` Ralf Baechle
@ 2007-08-07 0:48 ` Yoichi Yuasa
0 siblings, 0 replies; 3+ messages in thread
From: Yoichi Yuasa @ 2007-08-07 0:48 UTC (permalink / raw)
To: Ralf Baechle; +Cc: yoichi_yuasa, linux-mips
On Mon, 6 Aug 2007 18:45:25 +0100
Ralf Baechle <ralf@linux-mips.org> wrote:
> On Tue, Aug 07, 2007 at 12:09:17AM +0900, Yoichi Yuasa wrote:
>
> > Add cpu_wait for NEC VR41xx
>
> Queued for 2.6.24.
>
> Thanks,
>
> Ralf
>
> PS: I take it you've verified that using the standby instruction with
> interrupts is safe on VR41xx? There are alot of architectural
> restrictions in that area.
>
Yes, it has no problem.
Thanks,
Yoichi
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-08-07 0:49 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-06 15:09 [PATCH][MIPS] vr41xx: add cpu_wait Yoichi Yuasa
2007-08-06 17:45 ` Ralf Baechle
2007-08-07 0:48 ` Yoichi Yuasa
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox