]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
MIPS: BCM63xx: Convert timer locks to raw spinlocks.
authorRalf Baechle <ralf@linux-mips.org>
Sat, 27 Feb 2010 11:53:35 +0000 (12:53 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Sat, 27 Feb 2010 11:53:35 +0000 (12:53 +0100)
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/bcm63xx/timer.c

index ba522bdcde4b85ca53ce4fd12a96b7ebe509ae97..5f11359815688d5350a56cce5704971e4e533b1a 100644 (file)
@@ -17,8 +17,8 @@
 #include <bcm63xx_timer.h>
 #include <bcm63xx_regs.h>
 
-static DEFINE_SPINLOCK(timer_reg_lock);
-static DEFINE_SPINLOCK(timer_data_lock);
+static DEFINE_RAW_SPINLOCK(timer_reg_lock);
+static DEFINE_RAW_SPINLOCK(timer_data_lock);
 static struct clk *periph_clk;
 
 static struct timer_data {
@@ -31,23 +31,23 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id)
        u32 stat;
        int i;
 
-       spin_lock(&timer_reg_lock);
+       raw_spin_lock(&timer_reg_lock);
        stat = bcm_timer_readl(TIMER_IRQSTAT_REG);
        bcm_timer_writel(stat, TIMER_IRQSTAT_REG);
-       spin_unlock(&timer_reg_lock);
+       raw_spin_unlock(&timer_reg_lock);
 
        for (i = 0; i < BCM63XX_TIMER_COUNT; i++) {
                if (!(stat & TIMER_IRQSTAT_TIMER_CAUSE(i)))
                        continue;
 
-               spin_lock(&timer_data_lock);
+               raw_spin_lock(&timer_data_lock);
                if (!timer_data[i].cb) {
-                       spin_unlock(&timer_data_lock);
+                       raw_spin_unlock(&timer_data_lock);
                        continue;
                }
 
                timer_data[i].cb(timer_data[i].data);
-               spin_unlock(&timer_data_lock);
+               raw_spin_unlock(&timer_data_lock);
        }
 
        return IRQ_HANDLED;
@@ -61,7 +61,7 @@ int bcm63xx_timer_enable(int id)
        if (id >= BCM63XX_TIMER_COUNT)
                return -EINVAL;
 
-       spin_lock_irqsave(&timer_reg_lock, flags);
+       raw_spin_lock_irqsave(&timer_reg_lock, flags);
 
        reg = bcm_timer_readl(TIMER_CTLx_REG(id));
        reg |= TIMER_CTL_ENABLE_MASK;
@@ -71,7 +71,7 @@ int bcm63xx_timer_enable(int id)
        reg |= TIMER_IRQSTAT_TIMER_IR_EN(id);
        bcm_timer_writel(reg, TIMER_IRQSTAT_REG);
 
-       spin_unlock_irqrestore(&timer_reg_lock, flags);
+       raw_spin_unlock_irqrestore(&timer_reg_lock, flags);
        return 0;
 }
 
@@ -85,7 +85,7 @@ int bcm63xx_timer_disable(int id)
        if (id >= BCM63XX_TIMER_COUNT)
                return -EINVAL;
 
-       spin_lock_irqsave(&timer_reg_lock, flags);
+       raw_spin_lock_irqsave(&timer_reg_lock, flags);
 
        reg = bcm_timer_readl(TIMER_CTLx_REG(id));
        reg &= ~TIMER_CTL_ENABLE_MASK;
@@ -95,7 +95,7 @@ int bcm63xx_timer_disable(int id)
        reg &= ~TIMER_IRQSTAT_TIMER_IR_EN(id);
        bcm_timer_writel(reg, TIMER_IRQSTAT_REG);
 
-       spin_unlock_irqrestore(&timer_reg_lock, flags);
+       raw_spin_unlock_irqrestore(&timer_reg_lock, flags);
        return 0;
 }
 
@@ -110,7 +110,7 @@ int bcm63xx_timer_register(int id, void (*callback)(void *data), void *data)
                return -EINVAL;
 
        ret = 0;
-       spin_lock_irqsave(&timer_data_lock, flags);
+       raw_spin_lock_irqsave(&timer_data_lock, flags);
        if (timer_data[id].cb) {
                ret = -EBUSY;
                goto out;
@@ -120,7 +120,7 @@ int bcm63xx_timer_register(int id, void (*callback)(void *data), void *data)
        timer_data[id].data = data;
 
 out:
-       spin_unlock_irqrestore(&timer_data_lock, flags);
+       raw_spin_unlock_irqrestore(&timer_data_lock, flags);
        return ret;
 }
 
@@ -133,9 +133,9 @@ void bcm63xx_timer_unregister(int id)
        if (id >= BCM63XX_TIMER_COUNT)
                return;
 
-       spin_lock_irqsave(&timer_data_lock, flags);
+       raw_spin_lock_irqsave(&timer_data_lock, flags);
        timer_data[id].cb = NULL;
-       spin_unlock_irqrestore(&timer_data_lock, flags);
+       raw_spin_unlock_irqrestore(&timer_data_lock, flags);
 }
 
 EXPORT_SYMBOL(bcm63xx_timer_unregister);
@@ -159,7 +159,7 @@ int bcm63xx_timer_set(int id, int monotonic, unsigned int countdown_us)
        if (countdown & ~TIMER_CTL_COUNTDOWN_MASK)
                return -EINVAL;
 
-       spin_lock_irqsave(&timer_reg_lock, flags);
+       raw_spin_lock_irqsave(&timer_reg_lock, flags);
        reg = bcm_timer_readl(TIMER_CTLx_REG(id));
 
        if (monotonic)
@@ -171,7 +171,7 @@ int bcm63xx_timer_set(int id, int monotonic, unsigned int countdown_us)
        reg |= countdown;
        bcm_timer_writel(reg, TIMER_CTLx_REG(id));
 
-       spin_unlock_irqrestore(&timer_reg_lock, flags);
+       raw_spin_unlock_irqrestore(&timer_reg_lock, flags);
        return 0;
 }