2
0
This repository has been archived on 2025-07-20. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Motorola_Lake_kernel/arch/mips/sni/reset.c
Ralf Baechle 2638ea11e2 MIPS: Fix build error due to unused variables.
c861519fcf95b2d46cb4275903423b43ae150a40 ("MIPS: Fix delay loops which may
be removed by GCC.") which made it upstream was an outdated version of the
patch and is lacking some the removal of two variables that became unused
thus resulting in further warnings and build breakage.  The commit
from ae878615d7cee5d7346946cf1ae1b60e427013c2 was correct however.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2015-12-22 15:21:18 +01:00

48 lines
927 B
C

/*
* linux/arch/mips/sni/process.c
*
* Reset a SNI machine.
*/
#include <linux/delay.h>
#include <asm/io.h>
#include <asm/reboot.h>
#include <asm/sni.h>
/*
* This routine reboots the machine by asking the keyboard
* controller to pulse the reset-line low. We try that for a while,
* and if it doesn't work, we do some other stupid things.
*/
static inline void kb_wait(void)
{
int i;
for (i = 0; i < 0x10000; i++)
if ((inb_p(0x64) & 0x02) == 0)
break;
}
/* XXX This ends up at the ARC firmware prompt ... */
void sni_machine_restart(char *command)
{
int i;
/* This does a normal via the keyboard controller like a PC.
We can do that easier ... */
local_irq_disable();
for (;;) {
for (i = 0; i < 100; i++) {
kb_wait();
udelay(50);
outb_p(0xfe, 0x64); /* pulse reset low */
udelay(50);
}
}
}
void sni_machine_power_off(void)
{
*(volatile unsigned char *)PCIMT_CSWCSM = 0xfd;
}