Skip to content

Commit

Permalink
[MIPS] time: Use non-interrupt locks in GT641xx clockevent driver
Browse files Browse the repository at this point in the history
set_next_event() and set_mode() are always called with interrupt disabled.
irqsave and irqrestore are not necessary for spinlock.
Pointed out by Atsushi Nemoto.

Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  • Loading branch information
Yoichi Yuasa authored and Ralf Baechle committed Oct 29, 2007
1 parent 2c771a4 commit c984c87
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions arch/mips/kernel/cevt-gt641xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,9 @@ int gt641xx_timer0_state(void)
static int gt641xx_timer0_set_next_event(unsigned long delta,
struct clock_event_device *evt)
{
unsigned long flags;
u32 ctrl;

spin_lock_irqsave(&gt641xx_timer_lock, flags);
spin_lock(&gt641xx_timer_lock);

ctrl = GT_READ(GT_TC_CONTROL_OFS);
ctrl &= ~(GT_TC_CONTROL_ENTC0_MSK | GT_TC_CONTROL_SELTC0_MSK);
Expand All @@ -61,18 +60,17 @@ static int gt641xx_timer0_set_next_event(unsigned long delta,
GT_WRITE(GT_TC0_OFS, delta);
GT_WRITE(GT_TC_CONTROL_OFS, ctrl);

spin_unlock_irqrestore(&gt641xx_timer_lock, flags);
spin_unlock(&gt641xx_timer_lock);

return 0;
}

static void gt641xx_timer0_set_mode(enum clock_event_mode mode,
struct clock_event_device *evt)
{
unsigned long flags;
u32 ctrl;

spin_lock_irqsave(&gt641xx_timer_lock, flags);
spin_lock(&gt641xx_timer_lock);

ctrl = GT_READ(GT_TC_CONTROL_OFS);
ctrl &= ~(GT_TC_CONTROL_ENTC0_MSK | GT_TC_CONTROL_SELTC0_MSK);
Expand All @@ -90,7 +88,7 @@ static void gt641xx_timer0_set_mode(enum clock_event_mode mode,

GT_WRITE(GT_TC_CONTROL_OFS, ctrl);

spin_unlock_irqrestore(&gt641xx_timer_lock, flags);
spin_unlock(&gt641xx_timer_lock);
}

static void gt641xx_timer0_event_handler(struct clock_event_device *dev)
Expand Down

0 comments on commit c984c87

Please sign in to comment.