aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Baker <mbm@openwrt.org>2007-08-25 13:18:58 +0000
committerMike Baker <mbm@openwrt.org>2007-08-25 13:18:58 +0000
commit88cd2ada07e9a7b3d6b43de95e89b497cd654515 (patch)
treeffc1f97cdede4ed9a00137dc7fe9d165a70c01f5
parent4585158028b283d69ebdd87da39a4a939075d385 (diff)
downloadupstream-88cd2ada07e9a7b3d6b43de95e89b497cd654515.tar.gz
upstream-88cd2ada07e9a7b3d6b43de95e89b497cd654515.tar.bz2
upstream-88cd2ada07e9a7b3d6b43de95e89b497cd654515.zip
workaround for timer glitch on some boards
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@8483 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--target/linux/brcm-2.4/files/arch/mips/bcm947xx/time.c11
1 files changed, 11 insertions, 0 deletions
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 2cf91f202e..9c502be580 100644
--- a/target/linux/brcm-2.4/files/arch/mips/bcm947xx/time.c
+++ b/target/linux/brcm-2.4/files/arch/mips/bcm947xx/time.c
@@ -99,6 +99,17 @@ static struct irqaction bcm947xx_timer_irqaction = {
void __init
bcm947xx_timer_setup(struct irqaction *irq)
{
+ int x;
+
/* 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 */;
+ }
}