Commit 7561dfbf authored by Max Filippov's avatar Max Filippov
Browse files

xtensa: drop platform_halt and platform_power_off



Instead of using xtensa-specific platform_halt and platform_power_off
callbacks use do_kernel_power_off in the machine_halt and
machine_power_off and reimplement existing platform_halt and
platform_power_off users with register_sys_off_handler.

Drop platform_halt and platform_power_off declarations and default
implementations.

Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
parent 11976fe2
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -27,16 +27,6 @@ extern void platform_init(bp_tag_t*);
 */
extern void platform_setup (char **);

/*
 * platform_halt is called to stop the system and halt.
 */
extern void platform_halt (void);

/*
 * platform_power_off is called to stop the system and power it off.
 */
extern void platform_power_off (void);

/*
 * platform_idle is called from the idle function.
 */
+0 −2
Original line number Diff line number Diff line
@@ -28,8 +28,6 @@

_F(void, init, (bp_tag_t *first), { });
_F(void, setup, (char** cmd), { });
_F(void, halt, (void), { while(1); });
_F(void, power_off, (void), { while(1); });
_F(void, idle, (void), { __asm__ __volatile__ ("waiti 0" ::: "memory"); });

#ifdef CONFIG_XTENSA_CALIBRATE_CCOUNT
+10 −4
Original line number Diff line number Diff line
@@ -533,14 +533,20 @@ void machine_restart(char * cmd)

void machine_halt(void)
{
	platform_halt();
	while (1);
	local_irq_disable();
	smp_send_stop();
	do_kernel_power_off();
	while (1)
		cpu_relax();
}

void machine_power_off(void)
{
	platform_power_off();
	while (1);
	local_irq_disable();
	smp_send_stop();
	do_kernel_power_off();
	while (1)
		cpu_relax();
}
#ifdef CONFIG_PROC_FS

+5 −7
Original line number Diff line number Diff line
@@ -25,16 +25,11 @@
#include <platform/simcall.h>


void platform_halt(void)
{
	pr_info(" ** Called platform_halt() **\n");
	simc_exit(0);
}

void platform_power_off(void)
static int iss_power_off(struct sys_off_data *unused)
{
	pr_info(" ** Called platform_power_off() **\n");
	simc_exit(0);
	return NOTIFY_DONE;
}

static int iss_restart(struct notifier_block *this,
@@ -90,4 +85,7 @@ void __init platform_setup(char **p_cmdline)

	atomic_notifier_chain_register(&panic_notifier_list, &iss_panic_block);
	register_restart_handler(&iss_restart_block);
	register_sys_off_handler(SYS_OFF_MODE_POWER_OFF,
				 SYS_OFF_PRIO_PLATFORM,
				 iss_power_off, NULL);
}
+5 −8
Original line number Diff line number Diff line
@@ -42,18 +42,12 @@ static void led_print (int f, char *s)
		    break;
}

void platform_halt(void)
{
	led_print (0, "  HALT  ");
	local_irq_disable();
	while (1);
}

void platform_power_off(void)
static int xt2000_power_off(struct sys_off_data *unused)
{
	led_print (0, "POWEROFF");
	local_irq_disable();
	while (1);
	return NOTIFY_DONE;
}

static int xt2000_restart(struct notifier_block *this,
@@ -147,6 +141,9 @@ static int __init xt2000_setup_devinit(void)
	platform_device_register(&xt2000_sonic_device);
	mod_timer(&heartbeat_timer, jiffies + HZ / 2);
	register_restart_handler(&xt2000_restart_block);
	register_sys_off_handler(SYS_OFF_MODE_POWER_OFF,
				 SYS_OFF_PRIO_DEFAULT,
				 xt2000_power_off, NULL);
	return 0;
}

Loading