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

Commit 46571909 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
  [MIPS] SB1: Check for -mno-sched-prolog if building corelis debug kernel.
  [MIPS] Sibyte: Fix race in sb1250_gettimeoffset().
  [MIPS] Sibyte: Fix interrupt timer off by one bug.
  [MIPS] Sibyte: Fix M_SCD_TIMER_INIT and M_SCD_TIMER_CNT wrong field width.
  [MIPS] Protect more of timer_interrupt() by xtime_lock.
  [MIPS] Work around bad code generation for <asm/io.h>.
  [MIPS] Simple patch to power off DBAU1200
  [MIPS] Fix DBAu1550 software power off.
  [MIPS] local_r4k_flush_cache_page fix
  [MIPS] SB1: Fix interrupt disable hazard.
  [MIPS] Get rid of the IP22-specific code in arclib.
  Update MAINTAINERS entry for MIPS.
parents 4a29cc2e 9007c9a2
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1752,7 +1752,8 @@ P: Ralf Baechle
M:	ralf@linux-mips.org
W:	http://www.linux-mips.org/
L:	linux-mips@linux-mips.org
S:	Maintained
T:	git www.linux-mips.org:/pub/scm/linux.git
S:	Supported

MISCELLANEOUS MCA-SUPPORT
P:	James Bottomley
+2 −1
Original line number Diff line number Diff line
@@ -108,7 +108,8 @@ MODFLAGS += -mlong-calls
cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' && echo -EB)
cflags-$(CONFIG_CPU_LITTLE_ENDIAN)	+= $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' || echo -EL)

cflags-$(CONFIG_SB1XXX_CORELIS)	+= -mno-sched-prolog -fno-omit-frame-pointer
cflags-$(CONFIG_SB1XXX_CORELIS)	+= $(call cc-option,-mno-sched-prolog) \
				   -fno-omit-frame-pointer

#
# Use: $(call set_gccflags,<cpu0>,<isa0>,<cpu1>,<isa1>,<isa2>)
+0 −19
Original line number Diff line number Diff line
@@ -9,7 +9,6 @@
 * Copyright (C) 1999 Ralf Baechle (ralf@gnu.org)
 * Copyright (C) 1999 Silicon Graphics, Inc.
 */
#include <linux/config.h>
#include <linux/init.h>
#include <linux/kernel.h>

@@ -20,17 +19,11 @@
#include <asm/bootinfo.h>
#include <asm/system.h>

extern void *sgiwd93_host;
extern void reset_wd33c93(void *instance);

VOID
ArcHalt(VOID)
{
	bc_disable();
	local_irq_disable();
#ifdef CONFIG_SCSI_SGIWD93
	reset_wd33c93(sgiwd93_host);
#endif
	ARC_CALL0(halt);
never:	goto never;
}
@@ -40,9 +33,6 @@ ArcPowerDown(VOID)
{
	bc_disable();
	local_irq_disable();
#ifdef CONFIG_SCSI_SGIWD93
	reset_wd33c93(sgiwd93_host);
#endif
	ARC_CALL0(pdown);
never:	goto never;
}
@@ -53,9 +43,6 @@ ArcRestart(VOID)
{
	bc_disable();
	local_irq_disable();
#ifdef CONFIG_SCSI_SGIWD93
	reset_wd33c93(sgiwd93_host);
#endif
	ARC_CALL0(restart);
never:	goto never;
}
@@ -65,9 +52,6 @@ ArcReboot(VOID)
{
	bc_disable();
	local_irq_disable();
#ifdef CONFIG_SCSI_SGIWD93
	reset_wd33c93(sgiwd93_host);
#endif
	ARC_CALL0(reboot);
never:	goto never;
}
@@ -77,9 +61,6 @@ ArcEnterInteractiveMode(VOID)
{
	bc_disable();
	local_irq_disable();
#ifdef CONFIG_SCSI_SGIWD93
	reset_wd33c93(sgiwd93_host);
#endif
	ARC_CALL0(imode);
never:	goto never;
}
+7 −3
Original line number Diff line number Diff line
@@ -164,17 +164,20 @@ void au1000_restart(char *command)

void au1000_halt(void)
{
#if defined(CONFIG_MIPS_PB1550)
#if defined(CONFIG_MIPS_PB1550) || defined(CONFIG_MIPS_DB1550)
	/* power off system */
	printk("\n** Powering off Pb1550\n");
	printk("\n** Powering off...\n");
	au_writew(au_readw(0xAF00001C) | (3<<14), 0xAF00001C);
	au_sync();
	while(1); /* should not get here */
#endif
#else
	printk(KERN_NOTICE "\n** You can safely turn off the power\n");
#ifdef CONFIG_MIPS_MIRAGE
	au_writel((1 << 26) | (1 << 10), GPIO2_OUTPUT);
#endif
#ifdef CONFIG_MIPS_DB1200
	au_writew(au_readw(0xB980001C) | (1<<14), 0xB980001C);
#endif
#ifdef CONFIG_PM
	au_sleep();

@@ -187,6 +190,7 @@ void au1000_halt(void)
	                "wait\n\t"
			".set\tmips0");
#endif
#endif /* defined(CONFIG_MIPS_PB1550) || defined(CONFIG_MIPS_DB1550) */
}

void au1000_power_off(void)
+4 −2
Original line number Diff line number Diff line
@@ -424,6 +424,8 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
	unsigned long j;
	unsigned int count;

	write_seqlock(&xtime_lock);

	count = mips_hpt_read();
	mips_timer_ack();

@@ -441,7 +443,6 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
	 * CMOS clock accordingly every ~11 minutes. rtc_set_time() has to be
	 * called as close as possible to 500 ms before the new second starts.
	 */
	write_seqlock(&xtime_lock);
	if (ntp_synced() &&
	    xtime.tv_sec > last_rtc_update + 660 &&
	    (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 &&
@@ -453,7 +454,6 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
			last_rtc_update = xtime.tv_sec - 600;
		}
	}
	write_sequnlock(&xtime_lock);

	/*
	 * If jiffies has overflown in this timer_interrupt, we must
@@ -496,6 +496,8 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
		}
	}

	write_sequnlock(&xtime_lock);

	/*
	 * In UP mode, we call local_timer_interrupt() to do profiling
	 * and process accouting.
Loading