diff options
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r-- | arch/arm/kernel/Makefile | 5 | ||||
-rw-r--r-- | arch/arm/kernel/apm.c | 19 | ||||
-rw-r--r-- | arch/arm/kernel/dma-isa.c | 22 | ||||
-rw-r--r-- | arch/arm/kernel/dma.c | 73 | ||||
-rw-r--r-- | arch/arm/kernel/entry-armv.S | 2 | ||||
-rw-r--r-- | arch/arm/kernel/head.S | 2 | ||||
-rw-r--r-- | arch/arm/kernel/irq.c | 2 | ||||
-rw-r--r-- | arch/arm/kernel/process.c | 3 | ||||
-rw-r--r-- | arch/arm/kernel/setup.c | 2 | ||||
-rw-r--r-- | arch/arm/kernel/time.c | 3 | ||||
-rw-r--r-- | arch/arm/kernel/traps.c | 1 | ||||
-rw-r--r-- | arch/arm/kernel/vmlinux.lds.S | 12 |
12 files changed, 50 insertions, 96 deletions
diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile index c11169b5ed9a..de94b0f3ee2a 100644 --- a/arch/arm/kernel/Makefile +++ b/arch/arm/kernel/Makefile | |||
@@ -2,15 +2,16 @@ | |||
2 | # Makefile for the linux kernel. | 2 | # Makefile for the linux kernel. |
3 | # | 3 | # |
4 | 4 | ||
5 | AFLAGS_head.o := -DKERNEL_RAM_ADDR=$(TEXTADDR) | 5 | AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET) |
6 | 6 | ||
7 | # Object file lists. | 7 | # Object file lists. |
8 | 8 | ||
9 | obj-y := compat.o dma.o entry-armv.o entry-common.o irq.o \ | 9 | obj-y := compat.o entry-armv.o entry-common.o irq.o \ |
10 | process.o ptrace.o semaphore.o setup.o signal.o sys_arm.o \ | 10 | process.o ptrace.o semaphore.o setup.o signal.o sys_arm.o \ |
11 | time.o traps.o | 11 | time.o traps.o |
12 | 12 | ||
13 | obj-$(CONFIG_APM) += apm.o | 13 | obj-$(CONFIG_APM) += apm.o |
14 | obj-$(CONFIG_ISA_DMA_API) += dma.o | ||
14 | obj-$(CONFIG_ARCH_ACORN) += ecard.o | 15 | obj-$(CONFIG_ARCH_ACORN) += ecard.o |
15 | obj-$(CONFIG_FOOTBRIDGE) += isa.o | 16 | obj-$(CONFIG_FOOTBRIDGE) += isa.o |
16 | obj-$(CONFIG_FIQ) += fiq.o | 17 | obj-$(CONFIG_FIQ) += fiq.o |
diff --git a/arch/arm/kernel/apm.c b/arch/arm/kernel/apm.c index a2843be05557..b9df1b782bb1 100644 --- a/arch/arm/kernel/apm.c +++ b/arch/arm/kernel/apm.c | |||
@@ -20,7 +20,6 @@ | |||
20 | #include <linux/apm_bios.h> | 20 | #include <linux/apm_bios.h> |
21 | #include <linux/sched.h> | 21 | #include <linux/sched.h> |
22 | #include <linux/pm.h> | 22 | #include <linux/pm.h> |
23 | #include <linux/pm_legacy.h> | ||
24 | #include <linux/device.h> | 23 | #include <linux/device.h> |
25 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
26 | #include <linux/list.h> | 25 | #include <linux/list.h> |
@@ -81,6 +80,7 @@ struct apm_user { | |||
81 | */ | 80 | */ |
82 | static int suspends_pending; | 81 | static int suspends_pending; |
83 | static int apm_disabled; | 82 | static int apm_disabled; |
83 | static int arm_apm_active; | ||
84 | 84 | ||
85 | static DECLARE_WAIT_QUEUE_HEAD(apm_waitqueue); | 85 | static DECLARE_WAIT_QUEUE_HEAD(apm_waitqueue); |
86 | static DECLARE_WAIT_QUEUE_HEAD(apm_suspend_waitqueue); | 86 | static DECLARE_WAIT_QUEUE_HEAD(apm_suspend_waitqueue); |
@@ -477,9 +477,9 @@ static int kapmd(void *arg) | |||
477 | apm_event_t event; | 477 | apm_event_t event; |
478 | 478 | ||
479 | wait_event_interruptible(kapmd_wait, | 479 | wait_event_interruptible(kapmd_wait, |
480 | !queue_empty(&kapmd_queue) || !pm_active); | 480 | !queue_empty(&kapmd_queue) || !arm_apm_active); |
481 | 481 | ||
482 | if (!pm_active) | 482 | if (!arm_apm_active) |
483 | break; | 483 | break; |
484 | 484 | ||
485 | spin_lock_irq(&kapmd_queue_lock); | 485 | spin_lock_irq(&kapmd_queue_lock); |
@@ -522,16 +522,11 @@ static int __init apm_init(void) | |||
522 | return -ENODEV; | 522 | return -ENODEV; |
523 | } | 523 | } |
524 | 524 | ||
525 | if (PM_IS_ACTIVE()) { | 525 | arm_apm_active = 1; |
526 | printk(KERN_NOTICE "apm: overridden by ACPI.\n"); | ||
527 | return -EINVAL; | ||
528 | } | ||
529 | |||
530 | pm_active = 1; | ||
531 | 526 | ||
532 | ret = kernel_thread(kapmd, NULL, CLONE_KERNEL); | 527 | ret = kernel_thread(kapmd, NULL, CLONE_KERNEL); |
533 | if (ret < 0) { | 528 | if (ret < 0) { |
534 | pm_active = 0; | 529 | arm_apm_active = 0; |
535 | return ret; | 530 | return ret; |
536 | } | 531 | } |
537 | 532 | ||
@@ -543,7 +538,7 @@ static int __init apm_init(void) | |||
543 | if (ret != 0) { | 538 | if (ret != 0) { |
544 | remove_proc_entry("apm", NULL); | 539 | remove_proc_entry("apm", NULL); |
545 | 540 | ||
546 | pm_active = 0; | 541 | arm_apm_active = 0; |
547 | wake_up(&kapmd_wait); | 542 | wake_up(&kapmd_wait); |
548 | wait_for_completion(&kapmd_exit); | 543 | wait_for_completion(&kapmd_exit); |
549 | } | 544 | } |
@@ -556,7 +551,7 @@ static void __exit apm_exit(void) | |||
556 | misc_deregister(&apm_device); | 551 | misc_deregister(&apm_device); |
557 | remove_proc_entry("apm", NULL); | 552 | remove_proc_entry("apm", NULL); |
558 | 553 | ||
559 | pm_active = 0; | 554 | arm_apm_active = 0; |
560 | wake_up(&kapmd_wait); | 555 | wake_up(&kapmd_wait); |
561 | wait_for_completion(&kapmd_exit); | 556 | wait_for_completion(&kapmd_exit); |
562 | } | 557 | } |
diff --git a/arch/arm/kernel/dma-isa.c b/arch/arm/kernel/dma-isa.c index e9a36304ec3e..03532769a97f 100644 --- a/arch/arm/kernel/dma-isa.c +++ b/arch/arm/kernel/dma-isa.c | |||
@@ -18,7 +18,7 @@ | |||
18 | */ | 18 | */ |
19 | #include <linux/ioport.h> | 19 | #include <linux/ioport.h> |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/pci.h> | 21 | #include <linux/dma-mapping.h> |
22 | 22 | ||
23 | #include <asm/dma.h> | 23 | #include <asm/dma.h> |
24 | #include <asm/io.h> | 24 | #include <asm/io.h> |
@@ -65,37 +65,41 @@ static void isa_enable_dma(dmach_t channel, dma_t *dma) | |||
65 | { | 65 | { |
66 | if (dma->invalid) { | 66 | if (dma->invalid) { |
67 | unsigned long address, length; | 67 | unsigned long address, length; |
68 | unsigned int mode, direction; | 68 | unsigned int mode; |
69 | enum dma_data_direction direction; | ||
69 | 70 | ||
70 | mode = channel & 3; | 71 | mode = channel & 3; |
71 | switch (dma->dma_mode & DMA_MODE_MASK) { | 72 | switch (dma->dma_mode & DMA_MODE_MASK) { |
72 | case DMA_MODE_READ: | 73 | case DMA_MODE_READ: |
73 | mode |= ISA_DMA_MODE_READ; | 74 | mode |= ISA_DMA_MODE_READ; |
74 | direction = PCI_DMA_FROMDEVICE; | 75 | direction = DMA_FROM_DEVICE; |
75 | break; | 76 | break; |
76 | 77 | ||
77 | case DMA_MODE_WRITE: | 78 | case DMA_MODE_WRITE: |
78 | mode |= ISA_DMA_MODE_WRITE; | 79 | mode |= ISA_DMA_MODE_WRITE; |
79 | direction = PCI_DMA_TODEVICE; | 80 | direction = DMA_TO_DEVICE; |
80 | break; | 81 | break; |
81 | 82 | ||
82 | case DMA_MODE_CASCADE: | 83 | case DMA_MODE_CASCADE: |
83 | mode |= ISA_DMA_MODE_CASCADE; | 84 | mode |= ISA_DMA_MODE_CASCADE; |
84 | direction = PCI_DMA_BIDIRECTIONAL; | 85 | direction = DMA_BIDIRECTIONAL; |
85 | break; | 86 | break; |
86 | 87 | ||
87 | default: | 88 | default: |
88 | direction = PCI_DMA_NONE; | 89 | direction = DMA_NONE; |
89 | break; | 90 | break; |
90 | } | 91 | } |
91 | 92 | ||
92 | if (!dma->using_sg) { | 93 | if (!dma->sg) { |
93 | /* | 94 | /* |
94 | * Cope with ISA-style drivers which expect cache | 95 | * Cope with ISA-style drivers which expect cache |
95 | * coherence. | 96 | * coherence. |
96 | */ | 97 | */ |
97 | dma->buf.dma_address = pci_map_single(NULL, | 98 | dma->sg = &dma->buf; |
98 | dma->buf.__address, dma->buf.length, | 99 | dma->sgcount = 1; |
100 | dma->buf.length = dma->count; | ||
101 | dma->buf.dma_address = dma_map_single(NULL, | ||
102 | dma->addr, dma->count, | ||
99 | direction); | 103 | direction); |
100 | } | 104 | } |
101 | 105 | ||
diff --git a/arch/arm/kernel/dma.c b/arch/arm/kernel/dma.c index 2b7883884234..5a0f4bc5da95 100644 --- a/arch/arm/kernel/dma.c +++ b/arch/arm/kernel/dma.c | |||
@@ -12,8 +12,6 @@ | |||
12 | * DMA facilities. | 12 | * DMA facilities. |
13 | */ | 13 | */ |
14 | #include <linux/module.h> | 14 | #include <linux/module.h> |
15 | #include <linux/slab.h> | ||
16 | #include <linux/mman.h> | ||
17 | #include <linux/init.h> | 15 | #include <linux/init.h> |
18 | #include <linux/spinlock.h> | 16 | #include <linux/spinlock.h> |
19 | #include <linux/errno.h> | 17 | #include <linux/errno.h> |
@@ -23,8 +21,7 @@ | |||
23 | #include <asm/mach/dma.h> | 21 | #include <asm/mach/dma.h> |
24 | 22 | ||
25 | DEFINE_SPINLOCK(dma_spin_lock); | 23 | DEFINE_SPINLOCK(dma_spin_lock); |
26 | 24 | EXPORT_SYMBOL(dma_spin_lock); | |
27 | #if MAX_DMA_CHANNELS > 0 | ||
28 | 25 | ||
29 | static dma_t dma_chan[MAX_DMA_CHANNELS]; | 26 | static dma_t dma_chan[MAX_DMA_CHANNELS]; |
30 | 27 | ||
@@ -81,6 +78,7 @@ bad_dma: | |||
81 | busy: | 78 | busy: |
82 | return -EBUSY; | 79 | return -EBUSY; |
83 | } | 80 | } |
81 | EXPORT_SYMBOL(request_dma); | ||
84 | 82 | ||
85 | /* | 83 | /* |
86 | * Free DMA channel | 84 | * Free DMA channel |
@@ -112,6 +110,7 @@ void free_dma(dmach_t channel) | |||
112 | bad_dma: | 110 | bad_dma: |
113 | printk(KERN_ERR "dma: trying to free DMA%d\n", channel); | 111 | printk(KERN_ERR "dma: trying to free DMA%d\n", channel); |
114 | } | 112 | } |
113 | EXPORT_SYMBOL(free_dma); | ||
115 | 114 | ||
116 | /* Set DMA Scatter-Gather list | 115 | /* Set DMA Scatter-Gather list |
117 | */ | 116 | */ |
@@ -125,15 +124,15 @@ void set_dma_sg (dmach_t channel, struct scatterlist *sg, int nr_sg) | |||
125 | 124 | ||
126 | dma->sg = sg; | 125 | dma->sg = sg; |
127 | dma->sgcount = nr_sg; | 126 | dma->sgcount = nr_sg; |
128 | dma->using_sg = 1; | ||
129 | dma->invalid = 1; | 127 | dma->invalid = 1; |
130 | } | 128 | } |
129 | EXPORT_SYMBOL(set_dma_sg); | ||
131 | 130 | ||
132 | /* Set DMA address | 131 | /* Set DMA address |
133 | * | 132 | * |
134 | * Copy address to the structure, and set the invalid bit | 133 | * Copy address to the structure, and set the invalid bit |
135 | */ | 134 | */ |
136 | void set_dma_addr (dmach_t channel, unsigned long physaddr) | 135 | void __set_dma_addr (dmach_t channel, void *addr) |
137 | { | 136 | { |
138 | dma_t *dma = dma_chan + channel; | 137 | dma_t *dma = dma_chan + channel; |
139 | 138 | ||
@@ -141,12 +140,11 @@ void set_dma_addr (dmach_t channel, unsigned long physaddr) | |||
141 | printk(KERN_ERR "dma%d: altering DMA address while " | 140 | printk(KERN_ERR "dma%d: altering DMA address while " |
142 | "DMA active\n", channel); | 141 | "DMA active\n", channel); |
143 | 142 | ||
144 | dma->sg = &dma->buf; | 143 | dma->sg = NULL; |
145 | dma->sgcount = 1; | 144 | dma->addr = addr; |
146 | dma->buf.__address = bus_to_virt(physaddr); | ||
147 | dma->using_sg = 0; | ||
148 | dma->invalid = 1; | 145 | dma->invalid = 1; |
149 | } | 146 | } |
147 | EXPORT_SYMBOL(__set_dma_addr); | ||
150 | 148 | ||
151 | /* Set DMA byte count | 149 | /* Set DMA byte count |
152 | * | 150 | * |
@@ -160,12 +158,11 @@ void set_dma_count (dmach_t channel, unsigned long count) | |||
160 | printk(KERN_ERR "dma%d: altering DMA count while " | 158 | printk(KERN_ERR "dma%d: altering DMA count while " |
161 | "DMA active\n", channel); | 159 | "DMA active\n", channel); |
162 | 160 | ||
163 | dma->sg = &dma->buf; | 161 | dma->sg = NULL; |
164 | dma->sgcount = 1; | 162 | dma->count = count; |
165 | dma->buf.length = count; | ||
166 | dma->using_sg = 0; | ||
167 | dma->invalid = 1; | 163 | dma->invalid = 1; |
168 | } | 164 | } |
165 | EXPORT_SYMBOL(set_dma_count); | ||
169 | 166 | ||
170 | /* Set DMA direction mode | 167 | /* Set DMA direction mode |
171 | */ | 168 | */ |
@@ -180,6 +177,7 @@ void set_dma_mode (dmach_t channel, dmamode_t mode) | |||
180 | dma->dma_mode = mode; | 177 | dma->dma_mode = mode; |
181 | dma->invalid = 1; | 178 | dma->invalid = 1; |
182 | } | 179 | } |
180 | EXPORT_SYMBOL(set_dma_mode); | ||
183 | 181 | ||
184 | /* Enable DMA channel | 182 | /* Enable DMA channel |
185 | */ | 183 | */ |
@@ -200,6 +198,7 @@ free_dma: | |||
200 | printk(KERN_ERR "dma%d: trying to enable free DMA\n", channel); | 198 | printk(KERN_ERR "dma%d: trying to enable free DMA\n", channel); |
201 | BUG(); | 199 | BUG(); |
202 | } | 200 | } |
201 | EXPORT_SYMBOL(enable_dma); | ||
203 | 202 | ||
204 | /* Disable DMA channel | 203 | /* Disable DMA channel |
205 | */ | 204 | */ |
@@ -220,6 +219,7 @@ free_dma: | |||
220 | printk(KERN_ERR "dma%d: trying to disable free DMA\n", channel); | 219 | printk(KERN_ERR "dma%d: trying to disable free DMA\n", channel); |
221 | BUG(); | 220 | BUG(); |
222 | } | 221 | } |
222 | EXPORT_SYMBOL(disable_dma); | ||
223 | 223 | ||
224 | /* | 224 | /* |
225 | * Is the specified DMA channel active? | 225 | * Is the specified DMA channel active? |
@@ -233,6 +233,7 @@ void set_dma_page(dmach_t channel, char pagenr) | |||
233 | { | 233 | { |
234 | printk(KERN_ERR "dma%d: trying to set_dma_page\n", channel); | 234 | printk(KERN_ERR "dma%d: trying to set_dma_page\n", channel); |
235 | } | 235 | } |
236 | EXPORT_SYMBOL(set_dma_page); | ||
236 | 237 | ||
237 | void set_dma_speed(dmach_t channel, int cycle_ns) | 238 | void set_dma_speed(dmach_t channel, int cycle_ns) |
238 | { | 239 | { |
@@ -243,6 +244,7 @@ void set_dma_speed(dmach_t channel, int cycle_ns) | |||
243 | ret = dma->d_ops->setspeed(channel, dma, cycle_ns); | 244 | ret = dma->d_ops->setspeed(channel, dma, cycle_ns); |
244 | dma->speed = ret; | 245 | dma->speed = ret; |
245 | } | 246 | } |
247 | EXPORT_SYMBOL(set_dma_speed); | ||
246 | 248 | ||
247 | int get_dma_residue(dmach_t channel) | 249 | int get_dma_residue(dmach_t channel) |
248 | { | 250 | { |
@@ -254,49 +256,12 @@ int get_dma_residue(dmach_t channel) | |||
254 | 256 | ||
255 | return ret; | 257 | return ret; |
256 | } | 258 | } |
259 | EXPORT_SYMBOL(get_dma_residue); | ||
257 | 260 | ||
258 | void __init init_dma(void) | 261 | static int __init init_dma(void) |
259 | { | 262 | { |
260 | arch_dma_init(dma_chan); | 263 | arch_dma_init(dma_chan); |
261 | } | ||
262 | |||
263 | #else | ||
264 | |||
265 | int request_dma(dmach_t channel, const char *device_id) | ||
266 | { | ||
267 | return -EINVAL; | ||
268 | } | ||
269 | |||
270 | int get_dma_residue(dmach_t channel) | ||
271 | { | ||
272 | return 0; | 264 | return 0; |
273 | } | 265 | } |
274 | 266 | ||
275 | #define GLOBAL_ALIAS(_a,_b) asm (".set " #_a "," #_b "; .globl " #_a) | 267 | core_initcall(init_dma); |
276 | GLOBAL_ALIAS(disable_dma, get_dma_residue); | ||
277 | GLOBAL_ALIAS(enable_dma, get_dma_residue); | ||
278 | GLOBAL_ALIAS(free_dma, get_dma_residue); | ||
279 | GLOBAL_ALIAS(get_dma_list, get_dma_residue); | ||
280 | GLOBAL_ALIAS(set_dma_mode, get_dma_residue); | ||
281 | GLOBAL_ALIAS(set_dma_page, get_dma_residue); | ||
282 | GLOBAL_ALIAS(set_dma_count, get_dma_residue); | ||
283 | GLOBAL_ALIAS(set_dma_addr, get_dma_residue); | ||
284 | GLOBAL_ALIAS(set_dma_sg, get_dma_residue); | ||
285 | GLOBAL_ALIAS(set_dma_speed, get_dma_residue); | ||
286 | GLOBAL_ALIAS(init_dma, get_dma_residue); | ||
287 | |||
288 | #endif | ||
289 | |||
290 | EXPORT_SYMBOL(request_dma); | ||
291 | EXPORT_SYMBOL(free_dma); | ||
292 | EXPORT_SYMBOL(enable_dma); | ||
293 | EXPORT_SYMBOL(disable_dma); | ||
294 | EXPORT_SYMBOL(set_dma_addr); | ||
295 | EXPORT_SYMBOL(set_dma_count); | ||
296 | EXPORT_SYMBOL(set_dma_mode); | ||
297 | EXPORT_SYMBOL(set_dma_page); | ||
298 | EXPORT_SYMBOL(get_dma_residue); | ||
299 | EXPORT_SYMBOL(set_dma_sg); | ||
300 | EXPORT_SYMBOL(set_dma_speed); | ||
301 | |||
302 | EXPORT_SYMBOL(dma_spin_lock); | ||
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index 2a8d27e18fa7..a52baedf6262 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -18,8 +18,6 @@ | |||
18 | #include <asm/memory.h> | 18 | #include <asm/memory.h> |
19 | #include <asm/glue.h> | 19 | #include <asm/glue.h> |
20 | #include <asm/vfpmacros.h> | 20 | #include <asm/vfpmacros.h> |
21 | #include <asm/hardware.h> /* should be moved into entry-macro.S */ | ||
22 | #include <asm/arch/irqs.h> /* should be moved into entry-macro.S */ | ||
23 | #include <asm/arch/entry-macro.S> | 21 | #include <asm/arch/entry-macro.S> |
24 | 22 | ||
25 | #include "entry-header.S" | 23 | #include "entry-header.S" |
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index d7d69fd7039f..1e985f2cd70f 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S | |||
@@ -33,6 +33,8 @@ | |||
33 | #define MACHINFO_PGOFFIO 12 | 33 | #define MACHINFO_PGOFFIO 12 |
34 | #define MACHINFO_NAME 16 | 34 | #define MACHINFO_NAME 16 |
35 | 35 | ||
36 | #define KERNEL_RAM_ADDR (PAGE_OFFSET + TEXT_OFFSET) | ||
37 | |||
36 | /* | 38 | /* |
37 | * swapper_pg_dir is the virtual address of the initial page table. | 39 | * swapper_pg_dir is the virtual address of the initial page table. |
38 | * We place the page tables 16K below KERNEL_RAM_ADDR. Therefore, we must | 40 | * We place the page tables 16K below KERNEL_RAM_ADDR. Therefore, we must |
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c index d7099dbbb879..869c466e6258 100644 --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c | |||
@@ -1027,7 +1027,6 @@ void __init init_irq_proc(void) | |||
1027 | void __init init_IRQ(void) | 1027 | void __init init_IRQ(void) |
1028 | { | 1028 | { |
1029 | struct irqdesc *desc; | 1029 | struct irqdesc *desc; |
1030 | extern void init_dma(void); | ||
1031 | int irq; | 1030 | int irq; |
1032 | 1031 | ||
1033 | #ifdef CONFIG_SMP | 1032 | #ifdef CONFIG_SMP |
@@ -1041,7 +1040,6 @@ void __init init_IRQ(void) | |||
1041 | } | 1040 | } |
1042 | 1041 | ||
1043 | init_arch_irq(); | 1042 | init_arch_irq(); |
1044 | init_dma(); | ||
1045 | } | 1043 | } |
1046 | 1044 | ||
1047 | static int __init noirqdebug_setup(char *str) | 1045 | static int __init noirqdebug_setup(char *str) |
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 30494aab829a..54a21bdcba5c 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
@@ -28,10 +28,9 @@ | |||
28 | #include <linux/init.h> | 28 | #include <linux/init.h> |
29 | #include <linux/cpu.h> | 29 | #include <linux/cpu.h> |
30 | 30 | ||
31 | #include <asm/system.h> | ||
32 | #include <asm/io.h> | ||
33 | #include <asm/leds.h> | 31 | #include <asm/leds.h> |
34 | #include <asm/processor.h> | 32 | #include <asm/processor.h> |
33 | #include <asm/system.h> | ||
35 | #include <asm/uaccess.h> | 34 | #include <asm/uaccess.h> |
36 | #include <asm/mach/time.h> | 35 | #include <asm/mach/time.h> |
37 | 36 | ||
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 85774165e9fd..2cab741ad0f8 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -26,8 +26,6 @@ | |||
26 | 26 | ||
27 | #include <asm/cpu.h> | 27 | #include <asm/cpu.h> |
28 | #include <asm/elf.h> | 28 | #include <asm/elf.h> |
29 | #include <asm/hardware.h> | ||
30 | #include <asm/io.h> | ||
31 | #include <asm/procinfo.h> | 29 | #include <asm/procinfo.h> |
32 | #include <asm/setup.h> | 30 | #include <asm/setup.h> |
33 | #include <asm/mach-types.h> | 31 | #include <asm/mach-types.h> |
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c index fc4729106a32..d7d932c02866 100644 --- a/arch/arm/kernel/time.c +++ b/arch/arm/kernel/time.c | |||
@@ -29,9 +29,6 @@ | |||
29 | #include <linux/sysdev.h> | 29 | #include <linux/sysdev.h> |
30 | #include <linux/timer.h> | 30 | #include <linux/timer.h> |
31 | 31 | ||
32 | #include <asm/hardware.h> | ||
33 | #include <asm/io.h> | ||
34 | #include <asm/irq.h> | ||
35 | #include <asm/leds.h> | 32 | #include <asm/leds.h> |
36 | #include <asm/thread_info.h> | 33 | #include <asm/thread_info.h> |
37 | #include <asm/mach/time.h> | 34 | #include <asm/mach/time.h> |
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index 45e9ea6cd2a5..c9fe6f5f7ee3 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
@@ -23,7 +23,6 @@ | |||
23 | 23 | ||
24 | #include <asm/atomic.h> | 24 | #include <asm/atomic.h> |
25 | #include <asm/cacheflush.h> | 25 | #include <asm/cacheflush.h> |
26 | #include <asm/io.h> | ||
27 | #include <asm/system.h> | 26 | #include <asm/system.h> |
28 | #include <asm/uaccess.h> | 27 | #include <asm/uaccess.h> |
29 | #include <asm/unistd.h> | 28 | #include <asm/unistd.h> |
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index 9a47770114d4..2b254e88595c 100644 --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S | |||
@@ -17,15 +17,13 @@ jiffies = jiffies_64; | |||
17 | jiffies = jiffies_64 + 4; | 17 | jiffies = jiffies_64 + 4; |
18 | #endif | 18 | #endif |
19 | 19 | ||
20 | SECTIONS | ||
21 | { | ||
20 | #ifdef CONFIG_XIP_KERNEL | 22 | #ifdef CONFIG_XIP_KERNEL |
21 | #define TEXTADDR XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR) | 23 | . = XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR); |
22 | #else | 24 | #else |
23 | #define TEXTADDR KERNEL_RAM_ADDR | 25 | . = PAGE_OFFSET + TEXT_OFFSET; |
24 | #endif | 26 | #endif |
25 | |||
26 | SECTIONS | ||
27 | { | ||
28 | . = TEXTADDR; | ||
29 | .init : { /* Init code and data */ | 27 | .init : { /* Init code and data */ |
30 | _stext = .; | 28 | _stext = .; |
31 | _sinittext = .; | 29 | _sinittext = .; |
@@ -104,7 +102,7 @@ SECTIONS | |||
104 | 102 | ||
105 | #ifdef CONFIG_XIP_KERNEL | 103 | #ifdef CONFIG_XIP_KERNEL |
106 | __data_loc = ALIGN(4); /* location in binary */ | 104 | __data_loc = ALIGN(4); /* location in binary */ |
107 | . = KERNEL_RAM_ADDR; | 105 | . = PAGE_OFFSET + TEXT_OFFSET; |
108 | #else | 106 | #else |
109 | . = ALIGN(THREAD_SIZE); | 107 | . = ALIGN(THREAD_SIZE); |
110 | __data_loc = .; | 108 | __data_loc = .; |