mirror of
https://github.com/team-infusion-developers/android_kernel_samsung_msm8976.git
synced 2024-09-21 20:04:01 +00:00
MIPS: BCM63xx: Convert timer locks to raw spinlocks.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
c45ef44f47
commit
d8d607d59e
1 changed files with 17 additions and 17 deletions
|
@ -17,8 +17,8 @@
|
||||||
#include <bcm63xx_timer.h>
|
#include <bcm63xx_timer.h>
|
||||||
#include <bcm63xx_regs.h>
|
#include <bcm63xx_regs.h>
|
||||||
|
|
||||||
static DEFINE_SPINLOCK(timer_reg_lock);
|
static DEFINE_RAW_SPINLOCK(timer_reg_lock);
|
||||||
static DEFINE_SPINLOCK(timer_data_lock);
|
static DEFINE_RAW_SPINLOCK(timer_data_lock);
|
||||||
static struct clk *periph_clk;
|
static struct clk *periph_clk;
|
||||||
|
|
||||||
static struct timer_data {
|
static struct timer_data {
|
||||||
|
@ -31,23 +31,23 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id)
|
||||||
u32 stat;
|
u32 stat;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
spin_lock(&timer_reg_lock);
|
raw_spin_lock(&timer_reg_lock);
|
||||||
stat = bcm_timer_readl(TIMER_IRQSTAT_REG);
|
stat = bcm_timer_readl(TIMER_IRQSTAT_REG);
|
||||||
bcm_timer_writel(stat, 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++) {
|
for (i = 0; i < BCM63XX_TIMER_COUNT; i++) {
|
||||||
if (!(stat & TIMER_IRQSTAT_TIMER_CAUSE(i)))
|
if (!(stat & TIMER_IRQSTAT_TIMER_CAUSE(i)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
spin_lock(&timer_data_lock);
|
raw_spin_lock(&timer_data_lock);
|
||||||
if (!timer_data[i].cb) {
|
if (!timer_data[i].cb) {
|
||||||
spin_unlock(&timer_data_lock);
|
raw_spin_unlock(&timer_data_lock);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
timer_data[i].cb(timer_data[i].data);
|
timer_data[i].cb(timer_data[i].data);
|
||||||
spin_unlock(&timer_data_lock);
|
raw_spin_unlock(&timer_data_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
|
@ -61,7 +61,7 @@ int bcm63xx_timer_enable(int id)
|
||||||
if (id >= BCM63XX_TIMER_COUNT)
|
if (id >= BCM63XX_TIMER_COUNT)
|
||||||
return -EINVAL;
|
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 = bcm_timer_readl(TIMER_CTLx_REG(id));
|
||||||
reg |= TIMER_CTL_ENABLE_MASK;
|
reg |= TIMER_CTL_ENABLE_MASK;
|
||||||
|
@ -71,7 +71,7 @@ int bcm63xx_timer_enable(int id)
|
||||||
reg |= TIMER_IRQSTAT_TIMER_IR_EN(id);
|
reg |= TIMER_IRQSTAT_TIMER_IR_EN(id);
|
||||||
bcm_timer_writel(reg, TIMER_IRQSTAT_REG);
|
bcm_timer_writel(reg, TIMER_IRQSTAT_REG);
|
||||||
|
|
||||||
spin_unlock_irqrestore(&timer_reg_lock, flags);
|
raw_spin_unlock_irqrestore(&timer_reg_lock, flags);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ int bcm63xx_timer_disable(int id)
|
||||||
if (id >= BCM63XX_TIMER_COUNT)
|
if (id >= BCM63XX_TIMER_COUNT)
|
||||||
return -EINVAL;
|
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 = bcm_timer_readl(TIMER_CTLx_REG(id));
|
||||||
reg &= ~TIMER_CTL_ENABLE_MASK;
|
reg &= ~TIMER_CTL_ENABLE_MASK;
|
||||||
|
@ -95,7 +95,7 @@ int bcm63xx_timer_disable(int id)
|
||||||
reg &= ~TIMER_IRQSTAT_TIMER_IR_EN(id);
|
reg &= ~TIMER_IRQSTAT_TIMER_IR_EN(id);
|
||||||
bcm_timer_writel(reg, TIMER_IRQSTAT_REG);
|
bcm_timer_writel(reg, TIMER_IRQSTAT_REG);
|
||||||
|
|
||||||
spin_unlock_irqrestore(&timer_reg_lock, flags);
|
raw_spin_unlock_irqrestore(&timer_reg_lock, flags);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ int bcm63xx_timer_register(int id, void (*callback)(void *data), void *data)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
spin_lock_irqsave(&timer_data_lock, flags);
|
raw_spin_lock_irqsave(&timer_data_lock, flags);
|
||||||
if (timer_data[id].cb) {
|
if (timer_data[id].cb) {
|
||||||
ret = -EBUSY;
|
ret = -EBUSY;
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -120,7 +120,7 @@ int bcm63xx_timer_register(int id, void (*callback)(void *data), void *data)
|
||||||
timer_data[id].data = data;
|
timer_data[id].data = data;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
spin_unlock_irqrestore(&timer_data_lock, flags);
|
raw_spin_unlock_irqrestore(&timer_data_lock, flags);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,9 +133,9 @@ void bcm63xx_timer_unregister(int id)
|
||||||
if (id >= BCM63XX_TIMER_COUNT)
|
if (id >= BCM63XX_TIMER_COUNT)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
spin_lock_irqsave(&timer_data_lock, flags);
|
raw_spin_lock_irqsave(&timer_data_lock, flags);
|
||||||
timer_data[id].cb = NULL;
|
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);
|
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)
|
if (countdown & ~TIMER_CTL_COUNTDOWN_MASK)
|
||||||
return -EINVAL;
|
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 = bcm_timer_readl(TIMER_CTLx_REG(id));
|
||||||
|
|
||||||
if (monotonic)
|
if (monotonic)
|
||||||
|
@ -171,7 +171,7 @@ int bcm63xx_timer_set(int id, int monotonic, unsigned int countdown_us)
|
||||||
reg |= countdown;
|
reg |= countdown;
|
||||||
bcm_timer_writel(reg, TIMER_CTLx_REG(id));
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue