Skip to content

Commit

Permalink
ARM: restart: bcmring: use new restart hook
Browse files Browse the repository at this point in the history
Hook the Shark restart code into the new restart hook rather than
using arch_reset().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Russell King committed Jan 5, 2012
1 parent 1b2073e commit d1fce9c
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 23 deletions.
25 changes: 24 additions & 1 deletion arch/arm/mach-bcmring/arch.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,29 @@ HW_DECLARE_SPINLOCK(gpio)
#endif

/* sysctl */
int bcmring_arch_warm_reboot; /* do a warm reboot on hard reset */
static int bcmring_arch_warm_reboot; /* do a warm reboot on hard reset */

static void bcmring_restart(char mode, const char *cmd)
{
printk("arch_reset:%c %x\n", mode, bcmring_arch_warm_reboot);

if (mode == 'h') {
/* Reboot configured in proc entry */
if (bcmring_arch_warm_reboot) {
printk("warm reset\n");
/* Issue Warm reset (do not reset ethernet switch, keep alive) */
chipcHw_reset(chipcHw_REG_SOFT_RESET_CHIP_WARM);
} else {
/* Force reset of everything */
printk("force reset\n");
chipcHw_reset(chipcHw_REG_SOFT_RESET_CHIP_SOFT);
}
} else {
/* Force reset of everything */
printk("force reset\n");
chipcHw_reset(chipcHw_REG_SOFT_RESET_CHIP_SOFT);
}
}

static struct ctl_table_header *bcmring_sysctl_header;

Expand Down Expand Up @@ -173,4 +195,5 @@ MACHINE_START(BCMRING, "BCMRING")
.init_irq = bcmring_init_irq,
.timer = &bcmring_timer,
.init_machine = bcmring_init_machine
.restart = bcmring_restart,
MACHINE_END
22 changes: 0 additions & 22 deletions arch/arm/mach-bcmring/include/mach/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,35 +20,13 @@
#ifndef __ASM_ARCH_SYSTEM_H
#define __ASM_ARCH_SYSTEM_H

#include <mach/csp/chipcHw_inline.h>

extern int bcmring_arch_warm_reboot;

static inline void arch_idle(void)
{
cpu_do_idle();
}

static inline void arch_reset(char mode, const char *cmd)
{
printk("arch_reset:%c %x\n", mode, bcmring_arch_warm_reboot);

if (mode == 'h') {
/* Reboot configured in proc entry */
if (bcmring_arch_warm_reboot) {
printk("warm reset\n");
/* Issue Warm reset (do not reset ethernet switch, keep alive) */
chipcHw_reset(chipcHw_REG_SOFT_RESET_CHIP_WARM);
} else {
/* Force reset of everything */
printk("force reset\n");
chipcHw_reset(chipcHw_REG_SOFT_RESET_CHIP_SOFT);
}
} else {
/* Force reset of everything */
printk("force reset\n");
chipcHw_reset(chipcHw_REG_SOFT_RESET_CHIP_SOFT);
}
}

#endif

0 comments on commit d1fce9c

Please sign in to comment.