diff options
Diffstat (limited to 'arch/mips/bcm63xx/timer.c')
| -rw-r--r-- | arch/mips/bcm63xx/timer.c | 34 | 
1 files changed, 17 insertions, 17 deletions
diff --git a/arch/mips/bcm63xx/timer.c b/arch/mips/bcm63xx/timer.c index ba522bdcde4..5f113598156 100644 --- a/arch/mips/bcm63xx/timer.c +++ b/arch/mips/bcm63xx/timer.c @@ -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;  }  |