diff options
author | Arnd Bergmann <arnd@arndb.de> | 2012-01-07 07:44:37 -0500 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-01-07 15:40:51 -0500 |
commit | b001befe58691ef3627458cd814e8cee7f845c5f (patch) | |
tree | 1083f1a1cd3feeceeac4b395534df0ff032fdbc8 /arch/arm/mach-tegra | |
parent | 31b2a868451d630bacfdeddc626371b3f9d9a01c (diff) | |
parent | 928a11ba36f999436915ea2b1eadf54301f93059 (diff) |
Merge branch 'samsung/dt' into next/dt
* samsung/dt: (3 commit)
Merge branch 'depends/rmk/for-linus' into samsung/dt
Merge branch 'depends/rmk/restart' into next/cleanup
Merge branch 'next/cleanup' into samsung/dt
Conflicts:
arch/arm/mach-tegra/board-dt.c
arch/arm/mach-tegra/include/mach/entry-macro.S
The latest version of the samsung/dt branch resolves
all sorts of conflicts with the latest upstream, no functional
changes that are not already there.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/mach-tegra')
-rw-r--r-- | arch/arm/mach-tegra/board-dt.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-harmony.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-paz00.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-seaboard.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-trimslice.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-tegra/common.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-tegra/include/mach/entry-macro.S | 15 | ||||
-rw-r--r-- | arch/arm/mach-tegra/include/mach/io.h | 6 | ||||
-rw-r--r-- | arch/arm/mach-tegra/include/mach/system.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-tegra/include/mach/vmalloc.h | 28 | ||||
-rw-r--r-- | arch/arm/mach-tegra/io.c | 21 | ||||
-rw-r--r-- | arch/arm/mach-tegra/timer.c | 24 |
12 files changed, 23 insertions, 96 deletions
diff --git a/arch/arm/mach-tegra/board-dt.c b/arch/arm/mach-tegra/board-dt.c index 0fe32301792f..46074a2f0b82 100644 --- a/arch/arm/mach-tegra/board-dt.c +++ b/arch/arm/mach-tegra/board-dt.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <linux/i2c.h> | 32 | #include <linux/i2c.h> |
33 | #include <linux/i2c-tegra.h> | 33 | #include <linux/i2c-tegra.h> |
34 | 34 | ||
35 | #include <asm/hardware/gic.h> | ||
35 | #include <asm/mach-types.h> | 36 | #include <asm/mach-types.h> |
36 | #include <asm/mach/arch.h> | 37 | #include <asm/mach/arch.h> |
37 | #include <asm/mach/time.h> | 38 | #include <asm/mach/time.h> |
@@ -151,7 +152,9 @@ DT_MACHINE_START(TEGRA_DT, "nVidia Tegra (Flattened Device Tree)") | |||
151 | .map_io = tegra_map_common_io, | 152 | .map_io = tegra_map_common_io, |
152 | .init_early = tegra_init_early, | 153 | .init_early = tegra_init_early, |
153 | .init_irq = tegra_dt_init_irq, | 154 | .init_irq = tegra_dt_init_irq, |
155 | .handle_irq = gic_handle_irq, | ||
154 | .timer = &tegra_timer, | 156 | .timer = &tegra_timer, |
155 | .init_machine = tegra_dt_init, | 157 | .init_machine = tegra_dt_init, |
158 | .restart = tegra_assert_system_reset, | ||
156 | .dt_compat = tegra_dt_board_compat, | 159 | .dt_compat = tegra_dt_board_compat, |
157 | MACHINE_END | 160 | MACHINE_END |
diff --git a/arch/arm/mach-tegra/board-harmony.c b/arch/arm/mach-tegra/board-harmony.c index f0bdc5e3fe52..70ee674131f9 100644 --- a/arch/arm/mach-tegra/board-harmony.c +++ b/arch/arm/mach-tegra/board-harmony.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <asm/mach-types.h> | 31 | #include <asm/mach-types.h> |
32 | #include <asm/mach/arch.h> | 32 | #include <asm/mach/arch.h> |
33 | #include <asm/mach/time.h> | 33 | #include <asm/mach/time.h> |
34 | #include <asm/hardware/gic.h> | ||
34 | #include <asm/setup.h> | 35 | #include <asm/setup.h> |
35 | 36 | ||
36 | #include <mach/tegra_wm8903_pdata.h> | 37 | #include <mach/tegra_wm8903_pdata.h> |
@@ -187,6 +188,8 @@ MACHINE_START(HARMONY, "harmony") | |||
187 | .map_io = tegra_map_common_io, | 188 | .map_io = tegra_map_common_io, |
188 | .init_early = tegra_init_early, | 189 | .init_early = tegra_init_early, |
189 | .init_irq = tegra_init_irq, | 190 | .init_irq = tegra_init_irq, |
191 | .handle_irq = gic_handle_irq, | ||
190 | .timer = &tegra_timer, | 192 | .timer = &tegra_timer, |
191 | .init_machine = tegra_harmony_init, | 193 | .init_machine = tegra_harmony_init, |
194 | .restart = tegra_assert_system_reset, | ||
192 | MACHINE_END | 195 | MACHINE_END |
diff --git a/arch/arm/mach-tegra/board-paz00.c b/arch/arm/mach-tegra/board-paz00.c index 55c55ba89f1e..33d6205ad307 100644 --- a/arch/arm/mach-tegra/board-paz00.c +++ b/arch/arm/mach-tegra/board-paz00.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <linux/gpio.h> | 29 | #include <linux/gpio.h> |
30 | #include <linux/rfkill-gpio.h> | 30 | #include <linux/rfkill-gpio.h> |
31 | 31 | ||
32 | #include <asm/hardware/gic.h> | ||
32 | #include <asm/mach-types.h> | 33 | #include <asm/mach-types.h> |
33 | #include <asm/mach/arch.h> | 34 | #include <asm/mach/arch.h> |
34 | #include <asm/mach/time.h> | 35 | #include <asm/mach/time.h> |
@@ -190,6 +191,8 @@ MACHINE_START(PAZ00, "Toshiba AC100 / Dynabook AZ") | |||
190 | .map_io = tegra_map_common_io, | 191 | .map_io = tegra_map_common_io, |
191 | .init_early = tegra_init_early, | 192 | .init_early = tegra_init_early, |
192 | .init_irq = tegra_init_irq, | 193 | .init_irq = tegra_init_irq, |
194 | .handle_irq = gic_handle_irq, | ||
193 | .timer = &tegra_timer, | 195 | .timer = &tegra_timer, |
194 | .init_machine = tegra_paz00_init, | 196 | .init_machine = tegra_paz00_init, |
197 | .restart = tegra_assert_system_reset, | ||
195 | MACHINE_END | 198 | MACHINE_END |
diff --git a/arch/arm/mach-tegra/board-seaboard.c b/arch/arm/mach-tegra/board-seaboard.c index bf13ea355efc..c1599eb8e0cb 100644 --- a/arch/arm/mach-tegra/board-seaboard.c +++ b/arch/arm/mach-tegra/board-seaboard.c | |||
@@ -34,6 +34,7 @@ | |||
34 | 34 | ||
35 | #include <asm/mach-types.h> | 35 | #include <asm/mach-types.h> |
36 | #include <asm/mach/arch.h> | 36 | #include <asm/mach/arch.h> |
37 | #include <asm/hardware/gic.h> | ||
37 | 38 | ||
38 | #include "board.h" | 39 | #include "board.h" |
39 | #include "board-seaboard.h" | 40 | #include "board-seaboard.h" |
@@ -284,8 +285,10 @@ MACHINE_START(SEABOARD, "seaboard") | |||
284 | .map_io = tegra_map_common_io, | 285 | .map_io = tegra_map_common_io, |
285 | .init_early = tegra_init_early, | 286 | .init_early = tegra_init_early, |
286 | .init_irq = tegra_init_irq, | 287 | .init_irq = tegra_init_irq, |
288 | .handle_irq = gic_handle_irq, | ||
287 | .timer = &tegra_timer, | 289 | .timer = &tegra_timer, |
288 | .init_machine = tegra_seaboard_init, | 290 | .init_machine = tegra_seaboard_init, |
291 | .restart = tegra_assert_system_reset, | ||
289 | MACHINE_END | 292 | MACHINE_END |
290 | 293 | ||
291 | MACHINE_START(KAEN, "kaen") | 294 | MACHINE_START(KAEN, "kaen") |
@@ -293,8 +296,10 @@ MACHINE_START(KAEN, "kaen") | |||
293 | .map_io = tegra_map_common_io, | 296 | .map_io = tegra_map_common_io, |
294 | .init_early = tegra_init_early, | 297 | .init_early = tegra_init_early, |
295 | .init_irq = tegra_init_irq, | 298 | .init_irq = tegra_init_irq, |
299 | .handle_irq = gic_handle_irq, | ||
296 | .timer = &tegra_timer, | 300 | .timer = &tegra_timer, |
297 | .init_machine = tegra_kaen_init, | 301 | .init_machine = tegra_kaen_init, |
302 | .restart = tegra_assert_system_reset, | ||
298 | MACHINE_END | 303 | MACHINE_END |
299 | 304 | ||
300 | MACHINE_START(WARIO, "wario") | 305 | MACHINE_START(WARIO, "wario") |
@@ -302,6 +307,8 @@ MACHINE_START(WARIO, "wario") | |||
302 | .map_io = tegra_map_common_io, | 307 | .map_io = tegra_map_common_io, |
303 | .init_early = tegra_init_early, | 308 | .init_early = tegra_init_early, |
304 | .init_irq = tegra_init_irq, | 309 | .init_irq = tegra_init_irq, |
310 | .handle_irq = gic_handle_irq, | ||
305 | .timer = &tegra_timer, | 311 | .timer = &tegra_timer, |
306 | .init_machine = tegra_wario_init, | 312 | .init_machine = tegra_wario_init, |
313 | .restart = tegra_assert_system_reset, | ||
307 | MACHINE_END | 314 | MACHINE_END |
diff --git a/arch/arm/mach-tegra/board-trimslice.c b/arch/arm/mach-tegra/board-trimslice.c index 1a6617b7806f..c242314a1db5 100644 --- a/arch/arm/mach-tegra/board-trimslice.c +++ b/arch/arm/mach-tegra/board-trimslice.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/i2c.h> | 26 | #include <linux/i2c.h> |
27 | #include <linux/gpio.h> | 27 | #include <linux/gpio.h> |
28 | 28 | ||
29 | #include <asm/hardware/gic.h> | ||
29 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
30 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
31 | #include <asm/setup.h> | 32 | #include <asm/setup.h> |
@@ -176,6 +177,8 @@ MACHINE_START(TRIMSLICE, "trimslice") | |||
176 | .map_io = tegra_map_common_io, | 177 | .map_io = tegra_map_common_io, |
177 | .init_early = tegra_init_early, | 178 | .init_early = tegra_init_early, |
178 | .init_irq = tegra_init_irq, | 179 | .init_irq = tegra_init_irq, |
180 | .handle_irq = gic_handle_irq, | ||
179 | .timer = &tegra_timer, | 181 | .timer = &tegra_timer, |
180 | .init_machine = tegra_trimslice_init, | 182 | .init_machine = tegra_trimslice_init, |
183 | .restart = tegra_assert_system_reset, | ||
181 | MACHINE_END | 184 | MACHINE_END |
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c index 690b888be506..20f396d740fa 100644 --- a/arch/arm/mach-tegra/common.c +++ b/arch/arm/mach-tegra/common.c | |||
@@ -31,8 +31,6 @@ | |||
31 | #include "clock.h" | 31 | #include "clock.h" |
32 | #include "fuse.h" | 32 | #include "fuse.h" |
33 | 33 | ||
34 | void (*arch_reset)(char mode, const char *cmd) = tegra_assert_system_reset; | ||
35 | |||
36 | void tegra_assert_system_reset(char mode, const char *cmd) | 34 | void tegra_assert_system_reset(char mode, const char *cmd) |
37 | { | 35 | { |
38 | void __iomem *reset = IO_ADDRESS(TEGRA_CLK_RESET_BASE + 0x04); | 36 | void __iomem *reset = IO_ADDRESS(TEGRA_CLK_RESET_BASE + 0x04); |
diff --git a/arch/arm/mach-tegra/include/mach/entry-macro.S b/arch/arm/mach-tegra/include/mach/entry-macro.S index 485a11eeaceb..e577cfe27e72 100644 --- a/arch/arm/mach-tegra/include/mach/entry-macro.S +++ b/arch/arm/mach-tegra/include/mach/entry-macro.S | |||
@@ -12,22 +12,9 @@ | |||
12 | * GNU General Public License for more details. | 12 | * GNU General Public License for more details. |
13 | * | 13 | * |
14 | */ | 14 | */ |
15 | #include <mach/iomap.h> | ||
16 | #include <mach/io.h> | ||
17 | |||
18 | #define HAVE_GET_IRQNR_PREAMBLE | ||
19 | #include <asm/hardware/entry-macro-gic.S> | ||
20 | |||
21 | /* Uses the GIC interrupt controller built into the cpu */ | ||
22 | #define ICTRL_BASE (IO_CPU_VIRT + 0x100) | ||
23 | 15 | ||
24 | .macro disable_fiq | 16 | .macro disable_fiq |
25 | .endm | 17 | .endm |
26 | 18 | ||
27 | .macro get_irqnr_preamble, base, tmp | 19 | .macro arch_ret_to_user, tmp1, tmp2 |
28 | movw \base, #(ICTRL_BASE & 0x0000ffff) | ||
29 | movt \base, #((ICTRL_BASE & 0xffff0000) >> 16) | ||
30 | .endm | ||
31 | |||
32 | .macro arch_ret_to_user, tmp1, tmp2 | ||
33 | .endm | 20 | .endm |
diff --git a/arch/arm/mach-tegra/include/mach/io.h b/arch/arm/mach-tegra/include/mach/io.h index 35a011fbc42d..f15defffb5d2 100644 --- a/arch/arm/mach-tegra/include/mach/io.h +++ b/arch/arm/mach-tegra/include/mach/io.h | |||
@@ -71,12 +71,6 @@ | |||
71 | 71 | ||
72 | #ifndef __ASSEMBLER__ | 72 | #ifndef __ASSEMBLER__ |
73 | 73 | ||
74 | #define __arch_ioremap tegra_ioremap | ||
75 | #define __arch_iounmap tegra_iounmap | ||
76 | |||
77 | void __iomem *tegra_ioremap(unsigned long phys, size_t size, unsigned int type); | ||
78 | void tegra_iounmap(volatile void __iomem *addr); | ||
79 | |||
80 | #define IO_ADDRESS(n) (IO_TO_VIRT(n)) | 74 | #define IO_ADDRESS(n) (IO_TO_VIRT(n)) |
81 | 75 | ||
82 | #ifdef CONFIG_TEGRA_PCI | 76 | #ifdef CONFIG_TEGRA_PCI |
diff --git a/arch/arm/mach-tegra/include/mach/system.h b/arch/arm/mach-tegra/include/mach/system.h index 027c4215d313..a312988bf6f8 100644 --- a/arch/arm/mach-tegra/include/mach/system.h +++ b/arch/arm/mach-tegra/include/mach/system.h | |||
@@ -21,10 +21,6 @@ | |||
21 | #ifndef __MACH_TEGRA_SYSTEM_H | 21 | #ifndef __MACH_TEGRA_SYSTEM_H |
22 | #define __MACH_TEGRA_SYSTEM_H | 22 | #define __MACH_TEGRA_SYSTEM_H |
23 | 23 | ||
24 | #include <mach/iomap.h> | ||
25 | |||
26 | extern void (*arch_reset)(char mode, const char *cmd); | ||
27 | |||
28 | static inline void arch_idle(void) | 24 | static inline void arch_idle(void) |
29 | { | 25 | { |
30 | } | 26 | } |
diff --git a/arch/arm/mach-tegra/include/mach/vmalloc.h b/arch/arm/mach-tegra/include/mach/vmalloc.h deleted file mode 100644 index fd6aa65b2dc6..000000000000 --- a/arch/arm/mach-tegra/include/mach/vmalloc.h +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-tegra/include/mach/vmalloc.h | ||
3 | * | ||
4 | * Copyright (C) 2010 Google, Inc. | ||
5 | * | ||
6 | * Author: | ||
7 | * Colin Cross <ccross@google.com> | ||
8 | * Erik Gilling <konkers@google.com> | ||
9 | * | ||
10 | * This software is licensed under the terms of the GNU General Public | ||
11 | * License version 2, as published by the Free Software Foundation, and | ||
12 | * may be copied, distributed, and modified under those terms. | ||
13 | * | ||
14 | * This program is distributed in the hope that it will be useful, | ||
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | * GNU General Public License for more details. | ||
18 | * | ||
19 | */ | ||
20 | |||
21 | #ifndef __MACH_TEGRA_VMALLOC_H | ||
22 | #define __MACH_TEGRA_VMALLOC_H | ||
23 | |||
24 | #include <asm/sizes.h> | ||
25 | |||
26 | #define VMALLOC_END 0xFE000000UL | ||
27 | |||
28 | #endif | ||
diff --git a/arch/arm/mach-tegra/io.c b/arch/arm/mach-tegra/io.c index 5489f8b5d6ad..d23ee2db2827 100644 --- a/arch/arm/mach-tegra/io.c +++ b/arch/arm/mach-tegra/io.c | |||
@@ -60,24 +60,3 @@ void __init tegra_map_common_io(void) | |||
60 | { | 60 | { |
61 | iotable_init(tegra_io_desc, ARRAY_SIZE(tegra_io_desc)); | 61 | iotable_init(tegra_io_desc, ARRAY_SIZE(tegra_io_desc)); |
62 | } | 62 | } |
63 | |||
64 | /* | ||
65 | * Intercept ioremap() requests for addresses in our fixed mapping regions. | ||
66 | */ | ||
67 | void __iomem *tegra_ioremap(unsigned long p, size_t size, unsigned int type) | ||
68 | { | ||
69 | void __iomem *v = IO_ADDRESS(p); | ||
70 | if (v == NULL) | ||
71 | v = __arm_ioremap(p, size, type); | ||
72 | return v; | ||
73 | } | ||
74 | EXPORT_SYMBOL(tegra_ioremap); | ||
75 | |||
76 | void tegra_iounmap(volatile void __iomem *addr) | ||
77 | { | ||
78 | unsigned long virt = (unsigned long)addr; | ||
79 | |||
80 | if (virt >= VMALLOC_START && virt < VMALLOC_END) | ||
81 | __iounmap(addr); | ||
82 | } | ||
83 | EXPORT_SYMBOL(tegra_iounmap); | ||
diff --git a/arch/arm/mach-tegra/timer.c b/arch/arm/mach-tegra/timer.c index e2272d263a83..732c724008b1 100644 --- a/arch/arm/mach-tegra/timer.c +++ b/arch/arm/mach-tegra/timer.c | |||
@@ -19,7 +19,6 @@ | |||
19 | 19 | ||
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/err.h> | 21 | #include <linux/err.h> |
22 | #include <linux/sched.h> | ||
23 | #include <linux/time.h> | 22 | #include <linux/time.h> |
24 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
25 | #include <linux/irq.h> | 24 | #include <linux/irq.h> |
@@ -106,25 +105,9 @@ static struct clock_event_device tegra_clockevent = { | |||
106 | .set_mode = tegra_timer_set_mode, | 105 | .set_mode = tegra_timer_set_mode, |
107 | }; | 106 | }; |
108 | 107 | ||
109 | static DEFINE_CLOCK_DATA(cd); | 108 | static u32 notrace tegra_read_sched_clock(void) |
110 | |||
111 | /* | ||
112 | * Constants generated by clocks_calc_mult_shift(m, s, 1MHz, NSEC_PER_SEC, 60). | ||
113 | * This gives a resolution of about 1us and a wrap period of about 1h11min. | ||
114 | */ | ||
115 | #define SC_MULT 4194304000u | ||
116 | #define SC_SHIFT 22 | ||
117 | |||
118 | unsigned long long notrace sched_clock(void) | ||
119 | { | ||
120 | u32 cyc = timer_readl(TIMERUS_CNTR_1US); | ||
121 | return cyc_to_fixed_sched_clock(&cd, cyc, (u32)~0, SC_MULT, SC_SHIFT); | ||
122 | } | ||
123 | |||
124 | static void notrace tegra_update_sched_clock(void) | ||
125 | { | 109 | { |
126 | u32 cyc = timer_readl(TIMERUS_CNTR_1US); | 110 | return timer_readl(TIMERUS_CNTR_1US); |
127 | update_sched_clock(&cd, cyc, (u32)~0); | ||
128 | } | 111 | } |
129 | 112 | ||
130 | /* | 113 | /* |
@@ -218,8 +201,7 @@ static void __init tegra_init_timer(void) | |||
218 | WARN(1, "Unknown clock rate"); | 201 | WARN(1, "Unknown clock rate"); |
219 | } | 202 | } |
220 | 203 | ||
221 | init_fixed_sched_clock(&cd, tegra_update_sched_clock, 32, | 204 | setup_sched_clock(tegra_read_sched_clock, 32, 1000000); |
222 | 1000000, SC_MULT, SC_SHIFT); | ||
223 | 205 | ||
224 | if (clocksource_mmio_init(timer_reg_base + TIMERUS_CNTR_1US, | 206 | if (clocksource_mmio_init(timer_reg_base + TIMERUS_CNTR_1US, |
225 | "timer_us", 1000000, 300, 32, clocksource_mmio_readl_up)) { | 207 | "timer_us", 1000000, 300, 32, clocksource_mmio_readl_up)) { |