* [PATCH] MIPS: Alchemy: fix up residual devboard poweroff/reboot code.
@ 2010-03-25 18:37 Manuel Lauss
2010-03-25 21:43 ` Sergei Shtylyov
0 siblings, 1 reply; 2+ messages in thread
From: Manuel Lauss @ 2010-03-25 18:37 UTC (permalink / raw)
To: Linux-MIPS; +Cc: Manuel Lauss
Clean out stray unused board_reset() calls in pb1x boards,
the pb1000 is different from the rest and gets private methods.
Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
---
arch/mips/alchemy/devboards/pb1000/board_setup.c | 16 +++++++++++++++-
arch/mips/alchemy/devboards/pb1100/board_setup.c | 5 -----
arch/mips/alchemy/devboards/pb1200/board_setup.c | 6 ------
arch/mips/alchemy/devboards/pb1500/board_setup.c | 5 -----
arch/mips/alchemy/devboards/pb1550/board_setup.c | 5 -----
5 files changed, 15 insertions(+), 22 deletions(-)
diff --git a/arch/mips/alchemy/devboards/pb1000/board_setup.c b/arch/mips/alchemy/devboards/pb1000/board_setup.c
index b5311d8..9fa532c 100644
--- a/arch/mips/alchemy/devboards/pb1000/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1000/board_setup.c
@@ -27,8 +27,10 @@
#include <linux/gpio.h>
#include <linux/init.h>
#include <linux/interrupt.h>
+#include <linux/pm.h>
#include <asm/mach-au1x00/au1000.h>
#include <asm/mach-pb1x00/pb1000.h>
+#include <asm/reboot.h>
#include <prom.h>
#include "../platform.h"
@@ -38,8 +40,16 @@ const char *get_system_type(void)
return "Alchemy Pb1000";
}
-void board_reset(void)
+static void board_reset(char *c)
{
+ asm volatile ("jr %0" : : "r" (0xbfc00000));
+}
+
+static void board_power_off(void)
+{
+ printk(KERN_ALERT "It's now safe to remove power\n");
+ while (1)
+ asm volatile (".set mips3 ; wait ; .set mips1");
}
void __init board_setup(void)
@@ -177,6 +187,10 @@ void __init board_setup(void)
au_writel(au_readl(SYS_POWERCTRL) | (0x3 << 5), SYS_POWERCTRL);
break;
}
+
+ pm_power_off = board_power_off;
+ _machine_halt = board_power_off;
+ _machine_restart = board_reset;
}
static int __init pb1000_init_irq(void)
diff --git a/arch/mips/alchemy/devboards/pb1100/board_setup.c b/arch/mips/alchemy/devboards/pb1100/board_setup.c
index c7b4caa..90dda5f 100644
--- a/arch/mips/alchemy/devboards/pb1100/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1100/board_setup.c
@@ -39,11 +39,6 @@ const char *get_system_type(void)
return "Alchemy Pb1100";
}
-void board_reset(void)
-{
- bcsr_write(BCSR_SYSTEM, 0);
-}
-
void __init board_setup(void)
{
volatile void __iomem *base = (volatile void __iomem *)0xac000000UL;
diff --git a/arch/mips/alchemy/devboards/pb1200/board_setup.c b/arch/mips/alchemy/devboards/pb1200/board_setup.c
index 3184063..8b4466f 100644
--- a/arch/mips/alchemy/devboards/pb1200/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1200/board_setup.c
@@ -48,12 +48,6 @@ const char *get_system_type(void)
return "Alchemy Pb1200";
}
-void board_reset(void)
-{
- bcsr_write(BCSR_RESETS, 0);
- bcsr_write(BCSR_SYSTEM, 0);
-}
-
void __init board_setup(void)
{
printk(KERN_INFO "AMD Alchemy Pb1200 Board\n");
diff --git a/arch/mips/alchemy/devboards/pb1500/board_setup.c b/arch/mips/alchemy/devboards/pb1500/board_setup.c
index fa9770a..9cd9dfa 100644
--- a/arch/mips/alchemy/devboards/pb1500/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1500/board_setup.c
@@ -45,11 +45,6 @@ const char *get_system_type(void)
return "Alchemy Pb1500";
}
-void board_reset(void)
-{
- bcsr_write(BCSR_SYSTEM, 0);
-}
-
void __init board_setup(void)
{
u32 pin_func;
diff --git a/arch/mips/alchemy/devboards/pb1550/board_setup.c b/arch/mips/alchemy/devboards/pb1550/board_setup.c
index 1e8fb3d..9d7d6ed 100644
--- a/arch/mips/alchemy/devboards/pb1550/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1550/board_setup.c
@@ -48,11 +48,6 @@ const char *get_system_type(void)
return "Alchemy Pb1550";
}
-void board_reset(void)
-{
- bcsr_write(BCSR_SYSTEM, 0);
-}
-
void __init board_setup(void)
{
u32 pin_func;
--
1.7.0.3
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] MIPS: Alchemy: fix up residual devboard poweroff/reboot code.
2010-03-25 18:37 [PATCH] MIPS: Alchemy: fix up residual devboard poweroff/reboot code Manuel Lauss
@ 2010-03-25 21:43 ` Sergei Shtylyov
0 siblings, 0 replies; 2+ messages in thread
From: Sergei Shtylyov @ 2010-03-25 21:43 UTC (permalink / raw)
To: Manuel Lauss; +Cc: Linux-MIPS, Manuel Lauss
Hello.
Manuel Lauss wrote:
> Clean out stray unused board_reset() calls in pb1x boards,
> the pb1000 is different from the rest and gets private methods.
>
> Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
>
[...]
> diff --git a/arch/mips/alchemy/devboards/pb1000/board_setup.c b/arch/mips/alchemy/devboards/pb1000/board_setup.c
> index b5311d8..9fa532c 100644
> --- a/arch/mips/alchemy/devboards/pb1000/board_setup.c
> +++ b/arch/mips/alchemy/devboards/pb1000/board_setup.c
>
[...]
> @@ -177,6 +187,10 @@ void __init board_setup(void)
> au_writel(au_readl(SYS_POWERCTRL) | (0x3 << 5), SYS_POWERCTRL);
> break;
> }
> +
> + pm_power_off = board_power_off;
> + _machine_halt = board_power_off;
> + _machine_restart = board_reset;
>
Why there are spaces after tabs?
WBR, Sergei
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-03-25 21:43 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-25 18:37 [PATCH] MIPS: Alchemy: fix up residual devboard poweroff/reboot code Manuel Lauss
2010-03-25 21:43 ` Sergei Shtylyov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox