Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d1fce9c1 authored by Russell King's avatar Russell King
Browse files

ARM: restart: bcmring: use new restart hook



Hook the Shark restart code into the new restart hook rather than
using arch_reset().

Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 1b2073e7
Loading
Loading
Loading
Loading
+24 −1
Original line number Diff line number Diff line
@@ -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;

@@ -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
+0 −22
Original line number Diff line number Diff line
@@ -20,10 +20,6 @@
#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();
@@ -31,24 +27,6 @@ static inline void arch_idle(void)

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