git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
[pandora-kernel.git]
/
arch
/
arm
/
mach-exynos
/
mct.c
diff --git
a/arch/arm/mach-exynos/mct.c
b/arch/arm/mach-exynos/mct.c
index
97343df
..
85b5527
100644
(file)
--- a/
arch/arm/mach-exynos/mct.c
+++ b/
arch/arm/mach-exynos/mct.c
@@
-44,8
+44,6
@@
struct mct_clock_event_device {
char name[10];
};
char name[10];
};
-static DEFINE_PER_CPU(struct mct_clock_event_device, percpu_mct_tick);
-
static void exynos4_mct_write(unsigned int value, void *addr)
{
void __iomem *stat_addr;
static void exynos4_mct_write(unsigned int value, void *addr)
{
void __iomem *stat_addr;
@@
-264,6
+262,9
@@
static void exynos4_clockevent_init(void)
}
#ifdef CONFIG_LOCAL_TIMERS
}
#ifdef CONFIG_LOCAL_TIMERS
+
+static DEFINE_PER_CPU(struct mct_clock_event_device, percpu_mct_tick);
+
/* Clock event handling */
static void exynos4_mct_tick_stop(struct mct_clock_event_device *mevt)
{
/* Clock event handling */
static void exynos4_mct_tick_stop(struct mct_clock_event_device *mevt)
{
@@
-428,9
+429,13
@@
int __cpuinit local_timer_setup(struct clock_event_device *evt)
void local_timer_stop(struct clock_event_device *evt)
{
void local_timer_stop(struct clock_event_device *evt)
{
+ unsigned int cpu = smp_processor_id();
evt->set_mode(CLOCK_EVT_MODE_UNUSED, evt);
if (mct_int_type == MCT_INT_SPI)
evt->set_mode(CLOCK_EVT_MODE_UNUSED, evt);
if (mct_int_type == MCT_INT_SPI)
- disable_irq(evt->irq);
+ if (cpu == 0)
+ remove_irq(evt->irq, &mct_tick0_event_irq);
+ else
+ remove_irq(evt->irq, &mct_tick1_event_irq);
else
disable_percpu_irq(IRQ_MCT_LOCALTIMER);
}
else
disable_percpu_irq(IRQ_MCT_LOCALTIMER);
}
@@
-443,6
+448,7
@@
static void __init exynos4_timer_resources(void)
clk_rate = clk_get_rate(mct_clk);
clk_rate = clk_get_rate(mct_clk);
+#ifdef CONFIG_LOCAL_TIMERS
if (mct_int_type == MCT_INT_PPI) {
int err;
if (mct_int_type == MCT_INT_PPI) {
int err;
@@
-452,6
+458,7
@@
static void __init exynos4_timer_resources(void)
WARN(err, "MCT: can't request IRQ %d (%d)\n",
IRQ_MCT_LOCALTIMER, err);
}
WARN(err, "MCT: can't request IRQ %d (%d)\n",
IRQ_MCT_LOCALTIMER, err);
}
+#endif /* CONFIG_LOCAL_TIMERS */
}
static void __init exynos4_timer_init(void)
}
static void __init exynos4_timer_init(void)