Skip to content

Commit

Permalink
ARM: smp_twd: remove old local timer interface
Browse files Browse the repository at this point in the history
Now that all users of the previous local timer interface
have been converted to the runtime registration API, make
this interface the only one supported for this driver.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
  • Loading branch information
Marc Zyngier committed Mar 13, 2012
1 parent 58458e0 commit 9248510
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 43 deletions.
8 changes: 0 additions & 8 deletions arch/arm/include/asm/localtimer.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
#define __ASM_ARM_LOCALTIMER_H

#include <linux/errno.h>
#include <linux/interrupt.h>

struct clock_event_device;

Expand All @@ -26,13 +25,6 @@ struct local_timer_ops {
void percpu_timer_setup(void);

#ifdef CONFIG_LOCAL_TIMERS

#ifdef CONFIG_HAVE_ARM_TWD

#include "smp_twd.h"

#endif

/*
* Stop the local timer
*/
Expand Down
6 changes: 0 additions & 6 deletions arch/arm/include/asm/smp_twd.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,6 @@

#include <linux/ioport.h>

struct clock_event_device;

extern void __iomem *twd_base;

int twd_timer_setup(struct clock_event_device *);

struct twd_local_timer {
struct resource res[2];
};
Expand Down
34 changes: 5 additions & 29 deletions arch/arm/kernel/smp_twd.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
#include <linux/smp.h>
#include <linux/jiffies.h>
#include <linux/clockchips.h>
#include <linux/irq.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/of_irq.h>
#include <linux/of_address.h>
Expand All @@ -28,7 +28,7 @@
#include <asm/hardware/gic.h>

/* set up by the platform code */
void __iomem *twd_base;
static void __iomem *twd_base;

static struct clk *twd_clk;
static unsigned long twd_timer_rate;
Expand Down Expand Up @@ -80,7 +80,7 @@ static int twd_set_next_event(unsigned long evt,
* If a local timer interrupt has occurred, acknowledge and return 1.
* Otherwise, return 0.
*/
int twd_timer_ack(void)
static int twd_timer_ack(void)
{
if (__raw_readl(twd_base + TWD_TIMER_INTSTAT)) {
__raw_writel(1, twd_base + TWD_TIMER_INTSTAT);
Expand All @@ -96,11 +96,6 @@ static void twd_timer_stop(struct clock_event_device *clk)
disable_percpu_irq(clk->irq);
}

/* Temporary hack to be removed when all TWD users are converted to
the new registration interface */
void local_timer_stop(struct clock_event_device *clk)
__attribute__ ((alias ("twd_timer_stop")));

#ifdef CONFIG_CPU_FREQ

/*
Expand Down Expand Up @@ -230,28 +225,10 @@ static struct clk *twd_get_clock(void)
/*
* Setup the local clock events for a CPU.
*/
int __cpuinit twd_timer_setup(struct clock_event_device *clk)
static int __cpuinit twd_timer_setup(struct clock_event_device *clk)
{
struct clock_event_device **this_cpu_clk;

if (!twd_evt) {
int err;

twd_evt = alloc_percpu(struct clock_event_device *);
if (!twd_evt) {
pr_err("twd: can't allocate memory\n");
return -ENOMEM;
}

err = request_percpu_irq(clk->irq, twd_handler,
"twd", twd_evt);
if (err) {
pr_err("twd: can't register interrupt %d (%d)\n",
clk->irq, err);
return err;
}
}

if (!twd_clk)
twd_clk = twd_get_clock();

Expand All @@ -268,8 +245,7 @@ int __cpuinit twd_timer_setup(struct clock_event_device *clk)
clk->rating = 350;
clk->set_mode = twd_set_mode;
clk->set_next_event = twd_set_next_event;
if (!clk->irq)
clk->irq = twd_ppi;
clk->irq = twd_ppi;

this_cpu_clk = __this_cpu_ptr(twd_evt);
*this_cpu_clk = clk;
Expand Down

0 comments on commit 9248510

Please sign in to comment.