git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
arch
/
arm
/
mach-s3c2410
/
time.c
diff --git
a/arch/arm/mach-s3c2410/time.c
b/arch/arm/mach-s3c2410/time.c
index
179f0e0
..
9d7b799
100644
(file)
--- a/
arch/arm/mach-s3c2410/time.c
+++ b/
arch/arm/mach-s3c2410/time.c
@@
-24,6
+24,7
@@
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/err.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/err.h>
+#include <linux/clk.h>
#include <asm/system.h>
#include <asm/leds.h>
#include <asm/system.h>
#include <asm/leds.h>
@@
-35,9
+36,9
@@
#include <asm/arch/regs-timer.h>
#include <asm/arch/regs-irq.h>
#include <asm/mach/time.h>
#include <asm/arch/regs-timer.h>
#include <asm/arch/regs-irq.h>
#include <asm/mach/time.h>
-#include <asm/hardware/clock.h>
#include "clock.h"
#include "clock.h"
+#include "cpu.h"
static unsigned long timer_startval;
static unsigned long timer_usec_ticks;
static unsigned long timer_startval;
static unsigned long timer_usec_ticks;
@@
-137,10
+138,16
@@
s3c2410_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
static struct irqaction s3c2410_timer_irq = {
.name = "S3C2410 Timer Tick",
static struct irqaction s3c2410_timer_irq = {
.name = "S3C2410 Timer Tick",
- .flags = SA_INTERRUPT,
- .handler = s3c2410_timer_interrupt
+ .flags = SA_INTERRUPT
| SA_TIMER
,
+ .handler = s3c2410_timer_interrupt
,
};
};
+#define use_tclk1_12() ( \
+ machine_is_bast() || \
+ machine_is_vr1000() || \
+ machine_is_anubis() || \
+ machine_is_osiris() )
+
/*
* Set up timer interrupt, and return the current time in seconds.
*
/*
* Set up timer interrupt, and return the current time in seconds.
*
@@
-164,7
+171,7
@@
static void s3c2410_timer_setup (void)
/* configure the system for whichever machine is in use */
/* configure the system for whichever machine is in use */
- if (
machine_is_bast() || machine_is_vr1000
()) {
+ if (
use_tclk1_12
()) {
/* timer is at 12MHz, scaler is 1 */
timer_usec_ticks = timer_mask_usec_ticks(1, 12000000);
tcnt = 12000000 / HZ;
/* timer is at 12MHz, scaler is 1 */
timer_usec_ticks = timer_mask_usec_ticks(1, 12000000);
tcnt = 12000000 / HZ;
@@
-190,7
+197,6
@@
static void s3c2410_timer_setup (void)
if (IS_ERR(clk))
panic("failed to get clock for system timer");
if (IS_ERR(clk))
panic("failed to get clock for system timer");
- clk_use(clk);
clk_enable(clk);
pclk = clk_get_rate(clk);
clk_enable(clk);
pclk = clk_get_rate(clk);