projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[s3c24xx] Implement voltage listing for pc50633.
[openwrt.git]
/
target
/
linux
/
brcm-2.4
/
files
/
arch
/
mips
/
bcm947xx
/
time.c
diff --git
a/target/linux/brcm-2.4/files/arch/mips/bcm947xx/time.c
b/target/linux/brcm-2.4/files/arch/mips/bcm947xx/time.c
index
2cf91f2
..
95df5a6
100644
(file)
--- a/
target/linux/brcm-2.4/files/arch/mips/bcm947xx/time.c
+++ b/
target/linux/brcm-2.4/files/arch/mips/bcm947xx/time.c
@@
-7,7
+7,6
@@
* SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
*
* SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
*
- * $Id: time.c,v 1.1.1.10 2006/02/27 03:42:55 honor Exp $
*/
#include <linux/config.h>
#include <linux/init.h>
*/
#include <linux/config.h>
#include <linux/init.h>
@@
-23,11
+22,12
@@
#include <osl.h>
#include <bcmnvram.h>
#include <sbconfig.h>
#include <osl.h>
#include <bcmnvram.h>
#include <sbconfig.h>
-#include <sbextif.h>
#include <sbutils.h>
#include <sbutils.h>
+#include <sbchipc.h>
#include <hndmips.h>
#include <mipsinc.h>
#include <hndcpu.h>
#include <hndmips.h>
#include <mipsinc.h>
#include <hndcpu.h>
+#include <bcmdevs.h>
/* Global SB handle */
extern void *bcm947xx_sbh;
/* Global SB handle */
extern void *bcm947xx_sbh;
@@
-39,13
+39,11
@@
extern spinlock_t bcm947xx_sbh_lock;
extern int panic_timeout;
static int watchdog = 0;
extern int panic_timeout;
static int watchdog = 0;
-static u8 *mcr = NULL;
void __init
bcm947xx_time_init(void)
{
unsigned int hz;
void __init
bcm947xx_time_init(void)
{
unsigned int hz;
- extifregs_t *eir;
/*
* Use deterministic values for initial counter interrupt
/*
* Use deterministic values for initial counter interrupt
@@
-83,8
+81,13
@@
bcm947xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
timer_interrupt(irq, dev_id, regs);
/* Set the watchdog timer to reset after the specified number of ms */
timer_interrupt(irq, dev_id, regs);
/* Set the watchdog timer to reset after the specified number of ms */
- if (watchdog > 0)
- sb_watchdog(sbh, WATCHDOG_CLOCK / 1000 * watchdog);
+ if (watchdog > 0) {
+ if (sb_chip(sbh) == BCM5354_CHIP_ID)
+ sb_watchdog(sbh, WATCHDOG_CLOCK_5354 / 1000 * watchdog);
+ else
+ sb_watchdog(sbh, WATCHDOG_CLOCK / 1000 * watchdog);
+ }
+
}
static struct irqaction bcm947xx_timer_irqaction = {
}
static struct irqaction bcm947xx_timer_irqaction = {
@@
-99,6
+102,17
@@
static struct irqaction bcm947xx_timer_irqaction = {
void __init
bcm947xx_timer_setup(struct irqaction *irq)
{
void __init
bcm947xx_timer_setup(struct irqaction *irq)
{
+ int x;
+
/* Enable the timer interrupt */
setup_irq(7, &bcm947xx_timer_irqaction);
/* Enable the timer interrupt */
setup_irq(7, &bcm947xx_timer_irqaction);
+
+ sti();
+
+ for (x=0; x<5; x++) {
+ unsigned long ticks;
+ ticks = jiffies;
+ while (ticks == jiffies)
+ /* do nothing */;
+ }
}
}
This page took
0.027947 seconds
and
4
git commands to generate.