Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=61a33168bebb6ce5343a5f34ab421971dbfae9fa
Commit:     61a33168bebb6ce5343a5f34ab421971dbfae9fa
Parent:     f571eff0a24ed97a919f2b61bb4afdeab4b43002
Author:     Yoichi Yuasa <[EMAIL PROTECTED]>
AuthorDate: Tue Aug 7 00:09:17 2007 +0900
Committer:  Ralf Baechle <[EMAIL PROTECTED]>
CommitDate: Thu Oct 11 23:45:58 2007 +0100

    [MIPS] vr41xx: add cpu_wait
    
    Add cpu_wait for NEC VR41xx
    
    Signed-off-by: Yoichi Yuasa <[EMAIL PROTECTED]>
    Signed-off-by: Ralf Baechle <[EMAIL PROTECTED]>
---
 arch/mips/vr41xx/common/pmu.c |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/arch/mips/vr41xx/common/pmu.c b/arch/mips/vr41xx/common/pmu.c
index 5e46979..e0ffbe9 100644
--- a/arch/mips/vr41xx/common/pmu.c
+++ b/arch/mips/vr41xx/common/pmu.c
@@ -1,7 +1,7 @@
 /*
  *  pmu.c, Power Management Unit routines for NEC VR4100 series.
  *
- *  Copyright (C) 2003-2005  Yoichi Yuasa <[EMAIL PROTECTED]>
+ *  Copyright (C) 2003-2007  Yoichi Yuasa <[EMAIL PROTECTED]>
  *
  *  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;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to