diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-12 17:17:12 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-12 17:17:12 -0400 |
commit | 4aabab2181f20560948c2045ce1faaa9ac1507a8 (patch) | |
tree | 6556e126687c9cbb4b4a35a8ad8c327df30ac256 /arch/arm/mach-sa1100 | |
parent | bb50cbbd4beacd5ceda76c32fcb116c67fe8c66c (diff) | |
parent | ca9ced7f6798868f9d2c81a59b49f8c2136685d8 (diff) |
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (50 commits)
[ARM] sa1100: remove boot time RTC initialisation
[ARM] sa1100: stop doing our own rtc management over suspend
[ARM] 4474/1: Do not check the PSR_F_BIT in valid_user_regs
[ARM] 4473/2: Take the HWCAP definitions out of the elf.h file
[ARM] pxa: move platform devices to separate header file
[ARM] pxa: move device registration into CPU-specific file
[ARM] pxa: remove boot time RTC initialisation
[ARM] pxa: stop doing our own rtc management over suspend
[ARM] 4451/1: pxa: make dma.c generic and remove cpu specific dma code
[ARM] 4450/1: pxa: add pxa25x_init_irq() and pxa27x_init_irq()
[ARM] 4440/1: PXA: enable the checking of ICIP2 for IRQs
[ARM] 4438/1: PXA: remove #ifdef .. #endif from pxa_gpio_demux_handler()
[ARM] 4437/1: PXA: move the GPIO IRQ initialization code to pxa_init_irq_gpio()
[ARM] 4436/1: PXA: move low IRQ initialization code to pxa_init_irq_low()
[ARM] 4435/1: PXA: remove PXA_INTERNAL_IRQS
[ARM] 4434/1: PXA: remove PXA_IRQ_SKIP
[ARM] pxa: Fix PXA27x suspend type validation, remove pxa_pm_prepare()
[ARM] pxa: move pm_ops structure into CPU specific files
[ARM] pxa: introduce cpu_is_pxaXXX macros
[ARM] pxa: remove MMC register defines from pxa-regs.h
...
Diffstat (limited to 'arch/arm/mach-sa1100')
-rw-r--r-- | arch/arm/mach-sa1100/pm.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/time.c | 24 |
2 files changed, 0 insertions, 33 deletions
diff --git a/arch/arm/mach-sa1100/pm.c b/arch/arm/mach-sa1100/pm.c index d674cf343156..01a37d3c0727 100644 --- a/arch/arm/mach-sa1100/pm.c +++ b/arch/arm/mach-sa1100/pm.c | |||
@@ -57,12 +57,7 @@ enum { SLEEP_SAVE_SP = 0, | |||
57 | static int sa11x0_pm_enter(suspend_state_t state) | 57 | static int sa11x0_pm_enter(suspend_state_t state) |
58 | { | 58 | { |
59 | unsigned long gpio, sleep_save[SLEEP_SAVE_SIZE]; | 59 | unsigned long gpio, sleep_save[SLEEP_SAVE_SIZE]; |
60 | struct timespec delta, rtc; | ||
61 | 60 | ||
62 | /* preserve current time */ | ||
63 | rtc.tv_sec = RCNR; | ||
64 | rtc.tv_nsec = 0; | ||
65 | save_time_delta(&delta, &rtc); | ||
66 | gpio = GPLR; | 61 | gpio = GPLR; |
67 | 62 | ||
68 | /* save vital registers */ | 63 | /* save vital registers */ |
@@ -119,10 +114,6 @@ static int sa11x0_pm_enter(suspend_state_t state) | |||
119 | */ | 114 | */ |
120 | PSSR = PSSR_PH; | 115 | PSSR = PSSR_PH; |
121 | 116 | ||
122 | /* restore current time */ | ||
123 | rtc.tv_sec = RCNR; | ||
124 | restore_time_delta(&delta, &rtc); | ||
125 | |||
126 | return 0; | 117 | return 0; |
127 | } | 118 | } |
128 | 119 | ||
diff --git a/arch/arm/mach-sa1100/time.c b/arch/arm/mach-sa1100/time.c index 29cb0c1604ab..fdf7b016e7ad 100644 --- a/arch/arm/mach-sa1100/time.c +++ b/arch/arm/mach-sa1100/time.c | |||
@@ -21,25 +21,6 @@ | |||
21 | #define RTC_DEF_DIVIDER (32768 - 1) | 21 | #define RTC_DEF_DIVIDER (32768 - 1) |
22 | #define RTC_DEF_TRIM 0 | 22 | #define RTC_DEF_TRIM 0 |
23 | 23 | ||
24 | static unsigned long __init sa1100_get_rtc_time(void) | ||
25 | { | ||
26 | /* | ||
27 | * According to the manual we should be able to let RTTR be zero | ||
28 | * and then a default divisor for a 32.768KHz clock is used. | ||
29 | * Apparently this doesn't work, at least for my SA1110 rev 5. | ||
30 | * If the clock divider is uninitialized then reset it to the | ||
31 | * default value to get the 1Hz clock. | ||
32 | */ | ||
33 | if (RTTR == 0) { | ||
34 | RTTR = RTC_DEF_DIVIDER + (RTC_DEF_TRIM << 16); | ||
35 | printk(KERN_WARNING "Warning: uninitialized Real Time Clock\n"); | ||
36 | /* The current RTC value probably doesn't make sense either */ | ||
37 | RCNR = 0; | ||
38 | return 0; | ||
39 | } | ||
40 | return RCNR; | ||
41 | } | ||
42 | |||
43 | static int sa1100_set_rtc(void) | 24 | static int sa1100_set_rtc(void) |
44 | { | 25 | { |
45 | unsigned long current_time = xtime.tv_sec; | 26 | unsigned long current_time = xtime.tv_sec; |
@@ -117,15 +98,10 @@ static struct irqaction sa1100_timer_irq = { | |||
117 | 98 | ||
118 | static void __init sa1100_timer_init(void) | 99 | static void __init sa1100_timer_init(void) |
119 | { | 100 | { |
120 | struct timespec tv; | ||
121 | unsigned long flags; | 101 | unsigned long flags; |
122 | 102 | ||
123 | set_rtc = sa1100_set_rtc; | 103 | set_rtc = sa1100_set_rtc; |
124 | 104 | ||
125 | tv.tv_nsec = 0; | ||
126 | tv.tv_sec = sa1100_get_rtc_time(); | ||
127 | do_settimeofday(&tv); | ||
128 | |||
129 | OIER = 0; /* disable any timer interrupts */ | 105 | OIER = 0; /* disable any timer interrupts */ |
130 | OSSR = 0xf; /* clear status on all timers */ | 106 | OSSR = 0xf; /* clear status on all timers */ |
131 | setup_irq(IRQ_OST0, &sa1100_timer_irq); | 107 | setup_irq(IRQ_OST0, &sa1100_timer_irq); |