diff options
-rw-r--r-- | Documentation/arm/Samsung-S3C24XX/Overview.txt | 30 | ||||
-rw-r--r-- | arch/arm/mach-iop13xx/io.c | 19 | ||||
-rw-r--r-- | arch/arm/mach-pxa/generic.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-pxa/time.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/dma.c | 4 | ||||
-rw-r--r-- | arch/arm/mm/copypage-v4mc.c | 6 | ||||
-rw-r--r-- | arch/arm/mm/copypage-v6.c | 4 | ||||
-rw-r--r-- | arch/arm/mm/copypage-xscale.c | 6 | ||||
-rw-r--r-- | arch/arm/vfp/vfpmodule.c | 15 | ||||
-rw-r--r-- | include/asm-arm/arch-ep93xx/irqs.h | 6 | ||||
-rw-r--r-- | include/asm-arm/arch-iop13xx/io.h | 3 | ||||
-rw-r--r-- | include/asm-arm/arch-pxa/pxa-regs.h | 3 | ||||
-rw-r--r-- | include/asm-arm/arch-s3c2410/dma.h | 2 | ||||
-rw-r--r-- | include/asm-arm/arch-s3c2410/entry-macro.S | 2 | ||||
-rw-r--r-- | include/asm-arm/arch-s3c2410/hardware.h | 4 | ||||
-rw-r--r-- | include/asm-arm/arch-s3c2410/irqs.h | 3 | ||||
-rw-r--r-- | include/asm-arm/cacheflush.h | 2 | ||||
-rw-r--r-- | include/asm-arm/flat.h | 4 | ||||
-rw-r--r-- | include/asm-arm/irq.h | 5 |
19 files changed, 113 insertions, 17 deletions
diff --git a/Documentation/arm/Samsung-S3C24XX/Overview.txt b/Documentation/arm/Samsung-S3C24XX/Overview.txt index dda7ecdde87b..28d014714ab8 100644 --- a/Documentation/arm/Samsung-S3C24XX/Overview.txt +++ b/Documentation/arm/Samsung-S3C24XX/Overview.txt | |||
@@ -76,6 +76,15 @@ Machines | |||
76 | A S3C2410 based PDA from Acer. There is a Wiki page at | 76 | A S3C2410 based PDA from Acer. There is a Wiki page at |
77 | http://handhelds.org/moin/moin.cgi/AcerN30Documentation . | 77 | http://handhelds.org/moin/moin.cgi/AcerN30Documentation . |
78 | 78 | ||
79 | AML M5900 | ||
80 | |||
81 | American Microsystems' M5900 | ||
82 | |||
83 | Nex Vision Nexcoder | ||
84 | Nex Vision Otom | ||
85 | |||
86 | Two machines by Nex Vision | ||
87 | |||
79 | 88 | ||
80 | Adding New Machines | 89 | Adding New Machines |
81 | ------------------- | 90 | ------------------- |
@@ -115,6 +124,10 @@ RTC | |||
115 | 124 | ||
116 | Support for the onboard RTC unit, including alarm function. | 125 | Support for the onboard RTC unit, including alarm function. |
117 | 126 | ||
127 | This has recently been upgraded to use the new RTC core, | ||
128 | and the module has been renamed to rtc-s3c to fit in with | ||
129 | the new rtc naming scheme. | ||
130 | |||
118 | 131 | ||
119 | Watchdog | 132 | Watchdog |
120 | -------- | 133 | -------- |
@@ -128,7 +141,7 @@ NAND | |||
128 | 141 | ||
129 | The current kernels now have support for the s3c2410 NAND | 142 | The current kernels now have support for the s3c2410 NAND |
130 | controller. If there are any problems the latest linux-mtd | 143 | controller. If there are any problems the latest linux-mtd |
131 | CVS can be found from http://www.linux-mtd.infradead.org/ | 144 | code can be found from http://www.linux-mtd.infradead.org/ |
132 | 145 | ||
133 | 146 | ||
134 | Serial | 147 | Serial |
@@ -168,6 +181,21 @@ Suspend to RAM | |||
168 | See Suspend.txt for more information. | 181 | See Suspend.txt for more information. |
169 | 182 | ||
170 | 183 | ||
184 | SPI | ||
185 | --- | ||
186 | |||
187 | SPI drivers are available for both the in-built hardware | ||
188 | (although there is no DMA support yet) and a generic | ||
189 | GPIO based solution. | ||
190 | |||
191 | |||
192 | LEDs | ||
193 | ---- | ||
194 | |||
195 | There is support for GPIO based LEDs via a platform driver | ||
196 | in the LED subsystem. | ||
197 | |||
198 | |||
171 | Platform Data | 199 | Platform Data |
172 | ------------- | 200 | ------------- |
173 | 201 | ||
diff --git a/arch/arm/mach-iop13xx/io.c b/arch/arm/mach-iop13xx/io.c index fbf9f88e46ea..e79a1b62600f 100644 --- a/arch/arm/mach-iop13xx/io.c +++ b/arch/arm/mach-iop13xx/io.c | |||
@@ -21,6 +21,25 @@ | |||
21 | #include <asm/hardware.h> | 21 | #include <asm/hardware.h> |
22 | #include <asm/io.h> | 22 | #include <asm/io.h> |
23 | 23 | ||
24 | void * __iomem __iop13xx_io(unsigned long io_addr) | ||
25 | { | ||
26 | void __iomem * io_virt; | ||
27 | |||
28 | switch (io_addr) { | ||
29 | case IOP13XX_PCIE_LOWER_IO_PA ... IOP13XX_PCIE_UPPER_IO_PA: | ||
30 | io_virt = (void *) IOP13XX_PCIE_IO_PHYS_TO_VIRT(io_addr); | ||
31 | break; | ||
32 | case IOP13XX_PCIX_LOWER_IO_PA ... IOP13XX_PCIX_UPPER_IO_PA: | ||
33 | io_virt = (void *) IOP13XX_PCIX_IO_PHYS_TO_VIRT(io_addr); | ||
34 | break; | ||
35 | default: | ||
36 | BUG(); | ||
37 | } | ||
38 | |||
39 | return io_virt; | ||
40 | } | ||
41 | EXPORT_SYMBOL(__iop13xx_io); | ||
42 | |||
24 | void * __iomem __iop13xx_ioremap(unsigned long cookie, size_t size, | 43 | void * __iomem __iop13xx_ioremap(unsigned long cookie, size_t size, |
25 | unsigned long flags) | 44 | unsigned long flags) |
26 | { | 45 | { |
diff --git a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c index 6ae605857ca9..9de1278d234f 100644 --- a/arch/arm/mach-pxa/generic.c +++ b/arch/arm/mach-pxa/generic.c | |||
@@ -76,7 +76,9 @@ unsigned long long sched_clock(void) | |||
76 | /* | 76 | /* |
77 | * 96-bit math to perform tick * NSEC_PER_SEC / CLOCK_TICK_RATE for | 77 | * 96-bit math to perform tick * NSEC_PER_SEC / CLOCK_TICK_RATE for |
78 | * any value of CLOCK_TICK_RATE. Max value is in the 80 thousand | 78 | * any value of CLOCK_TICK_RATE. Max value is in the 80 thousand |
79 | * years range which is nice, but with higher computation cost. | 79 | * years range and truncation to unsigned long long limits it to |
80 | * sched_clock's max range of ~584 years. This is nice but with | ||
81 | * higher computation cost. | ||
80 | */ | 82 | */ |
81 | { | 83 | { |
82 | union { | 84 | union { |
diff --git a/arch/arm/mach-pxa/time.c b/arch/arm/mach-pxa/time.c index 3775b8f38429..ee2beb400414 100644 --- a/arch/arm/mach-pxa/time.c +++ b/arch/arm/mach-pxa/time.c | |||
@@ -101,7 +101,7 @@ static struct irqaction pxa_timer_irq = { | |||
101 | .handler = pxa_timer_interrupt, | 101 | .handler = pxa_timer_interrupt, |
102 | }; | 102 | }; |
103 | 103 | ||
104 | cycle_t pxa_get_cycles(void) | 104 | static cycle_t pxa_get_cycles(void) |
105 | { | 105 | { |
106 | return OSCR; | 106 | return OSCR; |
107 | } | 107 | } |
@@ -134,13 +134,13 @@ static void __init pxa_timer_init(void) | |||
134 | OSMR0 = OSCR + LATCH; /* set initial match */ | 134 | OSMR0 = OSCR + LATCH; /* set initial match */ |
135 | local_irq_restore(flags); | 135 | local_irq_restore(flags); |
136 | 136 | ||
137 | /* on PXA OSCR runs continiously and is not written to, so we can use it | 137 | /* |
138 | * as clock source directly. | 138 | * OSCR runs continuously on PXA and is not written to, |
139 | * so we can use it as clock source directly. | ||
139 | */ | 140 | */ |
140 | clocksource_pxa.mult = | 141 | clocksource_pxa.mult = |
141 | clocksource_hz2mult(CLOCK_TICK_RATE, clocksource_pxa.shift); | 142 | clocksource_hz2mult(CLOCK_TICK_RATE, clocksource_pxa.shift); |
142 | clocksource_register(&clocksource_pxa); | 143 | clocksource_register(&clocksource_pxa); |
143 | |||
144 | } | 144 | } |
145 | 145 | ||
146 | #ifdef CONFIG_NO_IDLE_HZ | 146 | #ifdef CONFIG_NO_IDLE_HZ |
diff --git a/arch/arm/mach-s3c2410/dma.c b/arch/arm/mach-s3c2410/dma.c index 717322a0916b..fa860e716b4f 100644 --- a/arch/arm/mach-s3c2410/dma.c +++ b/arch/arm/mach-s3c2410/dma.c | |||
@@ -1053,11 +1053,11 @@ int s3c2410_dma_config(dmach_t channel, | |||
1053 | if (chan == NULL) | 1053 | if (chan == NULL) |
1054 | return -EINVAL; | 1054 | return -EINVAL; |
1055 | 1055 | ||
1056 | printk("Initial dcon is %08x\n", dcon); | 1056 | pr_debug("%s: Initial dcon is %08x\n", __FUNCTION__, dcon); |
1057 | 1057 | ||
1058 | dcon |= chan->dcon & dma_sel.dcon_mask; | 1058 | dcon |= chan->dcon & dma_sel.dcon_mask; |
1059 | 1059 | ||
1060 | printk("New dcon is %08x\n", dcon); | 1060 | pr_debug("%s: New dcon is %08x\n", __FUNCTION__, dcon); |
1061 | 1061 | ||
1062 | switch (xferunit) { | 1062 | switch (xferunit) { |
1063 | case 1: | 1063 | case 1: |
diff --git a/arch/arm/mm/copypage-v4mc.c b/arch/arm/mm/copypage-v4mc.c index 408b05ae6b9b..ded0e96d069d 100644 --- a/arch/arm/mm/copypage-v4mc.c +++ b/arch/arm/mm/copypage-v4mc.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <asm/page.h> | 19 | #include <asm/page.h> |
20 | #include <asm/pgtable.h> | 20 | #include <asm/pgtable.h> |
21 | #include <asm/tlbflush.h> | 21 | #include <asm/tlbflush.h> |
22 | #include <asm/cacheflush.h> | ||
22 | 23 | ||
23 | #include "mm.h" | 24 | #include "mm.h" |
24 | 25 | ||
@@ -69,6 +70,11 @@ mc_copy_user_page(void *from, void *to) | |||
69 | 70 | ||
70 | void v4_mc_copy_user_page(void *kto, const void *kfrom, unsigned long vaddr) | 71 | void v4_mc_copy_user_page(void *kto, const void *kfrom, unsigned long vaddr) |
71 | { | 72 | { |
73 | struct page *page = virt_to_page(kfrom); | ||
74 | |||
75 | if (test_and_clear_bit(PG_dcache_dirty, &page->flags)) | ||
76 | __flush_dcache_page(page_mapping(page), page); | ||
77 | |||
72 | spin_lock(&minicache_lock); | 78 | spin_lock(&minicache_lock); |
73 | 79 | ||
74 | set_pte_ext(TOP_PTE(0xffff8000), pfn_pte(__pa(kfrom) >> PAGE_SHIFT, minicache_pgprot), 0); | 80 | set_pte_ext(TOP_PTE(0xffff8000), pfn_pte(__pa(kfrom) >> PAGE_SHIFT, minicache_pgprot), 0); |
diff --git a/arch/arm/mm/copypage-v6.c b/arch/arm/mm/copypage-v6.c index 865777dec161..3adb79257f43 100644 --- a/arch/arm/mm/copypage-v6.c +++ b/arch/arm/mm/copypage-v6.c | |||
@@ -53,6 +53,10 @@ static void v6_copy_user_page_aliasing(void *kto, const void *kfrom, unsigned lo | |||
53 | { | 53 | { |
54 | unsigned int offset = CACHE_COLOUR(vaddr); | 54 | unsigned int offset = CACHE_COLOUR(vaddr); |
55 | unsigned long from, to; | 55 | unsigned long from, to; |
56 | struct page *page = virt_to_page(kfrom); | ||
57 | |||
58 | if (test_and_clear_bit(PG_dcache_dirty, &page->flags)) | ||
59 | __flush_dcache_page(page_mapping(page), page); | ||
56 | 60 | ||
57 | /* | 61 | /* |
58 | * Discard data in the kernel mapping for the new page. | 62 | * Discard data in the kernel mapping for the new page. |
diff --git a/arch/arm/mm/copypage-xscale.c b/arch/arm/mm/copypage-xscale.c index aea5da723596..2e455f82a4d5 100644 --- a/arch/arm/mm/copypage-xscale.c +++ b/arch/arm/mm/copypage-xscale.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <asm/page.h> | 19 | #include <asm/page.h> |
20 | #include <asm/pgtable.h> | 20 | #include <asm/pgtable.h> |
21 | #include <asm/tlbflush.h> | 21 | #include <asm/tlbflush.h> |
22 | #include <asm/cacheflush.h> | ||
22 | 23 | ||
23 | #include "mm.h" | 24 | #include "mm.h" |
24 | 25 | ||
@@ -91,6 +92,11 @@ mc_copy_user_page(void *from, void *to) | |||
91 | 92 | ||
92 | void xscale_mc_copy_user_page(void *kto, const void *kfrom, unsigned long vaddr) | 93 | void xscale_mc_copy_user_page(void *kto, const void *kfrom, unsigned long vaddr) |
93 | { | 94 | { |
95 | struct page *page = virt_to_page(kfrom); | ||
96 | |||
97 | if (test_and_clear_bit(PG_dcache_dirty, &page->flags)) | ||
98 | __flush_dcache_page(page_mapping(page), page); | ||
99 | |||
94 | spin_lock(&minicache_lock); | 100 | spin_lock(&minicache_lock); |
95 | 101 | ||
96 | set_pte_ext(TOP_PTE(COPYPAGE_MINICACHE), pfn_pte(__pa(kfrom) >> PAGE_SHIFT, minicache_pgprot), 0); | 102 | set_pte_ext(TOP_PTE(COPYPAGE_MINICACHE), pfn_pte(__pa(kfrom) >> PAGE_SHIFT, minicache_pgprot), 0); |
diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c index e26cc1f59948..490d9d18a7d1 100644 --- a/arch/arm/vfp/vfpmodule.c +++ b/arch/arm/vfp/vfpmodule.c | |||
@@ -264,6 +264,18 @@ void VFP9_bounce(u32 trigger, u32 fpexc, struct pt_regs *regs) | |||
264 | vfp_raise_exceptions(exceptions, trigger, orig_fpscr, regs); | 264 | vfp_raise_exceptions(exceptions, trigger, orig_fpscr, regs); |
265 | } | 265 | } |
266 | 266 | ||
267 | static void vfp_enable(void *unused) | ||
268 | { | ||
269 | u32 access = get_copro_access(); | ||
270 | |||
271 | /* | ||
272 | * Enable full access to VFP (cp10 and cp11) | ||
273 | */ | ||
274 | set_copro_access(access | CPACC_FULL(10) | CPACC_FULL(11)); | ||
275 | } | ||
276 | |||
277 | #include <linux/smp.h> | ||
278 | |||
267 | /* | 279 | /* |
268 | * VFP support code initialisation. | 280 | * VFP support code initialisation. |
269 | */ | 281 | */ |
@@ -288,6 +300,7 @@ static int __init vfp_init(void) | |||
288 | * we just need to read the VFPSID register. | 300 | * we just need to read the VFPSID register. |
289 | */ | 301 | */ |
290 | vfpsid = fmrx(FPSID); | 302 | vfpsid = fmrx(FPSID); |
303 | barrier(); | ||
291 | 304 | ||
292 | printk(KERN_INFO "VFP support v0.3: "); | 305 | printk(KERN_INFO "VFP support v0.3: "); |
293 | if (VFP_arch) { | 306 | if (VFP_arch) { |
@@ -301,6 +314,8 @@ static int __init vfp_init(void) | |||
301 | } else if (vfpsid & FPSID_NODOUBLE) { | 314 | } else if (vfpsid & FPSID_NODOUBLE) { |
302 | printk("no double precision support\n"); | 315 | printk("no double precision support\n"); |
303 | } else { | 316 | } else { |
317 | smp_call_function(vfp_enable, NULL, 1, 1); | ||
318 | |||
304 | VFP_arch = (vfpsid & FPSID_ARCH_MASK) >> FPSID_ARCH_BIT; /* Extract the architecture version */ | 319 | VFP_arch = (vfpsid & FPSID_ARCH_MASK) >> FPSID_ARCH_BIT; /* Extract the architecture version */ |
305 | printk("implementor %02x architecture %d part %02x variant %x rev %x\n", | 320 | printk("implementor %02x architecture %d part %02x variant %x rev %x\n", |
306 | (vfpsid & FPSID_IMPLEMENTER_MASK) >> FPSID_IMPLEMENTER_BIT, | 321 | (vfpsid & FPSID_IMPLEMENTER_MASK) >> FPSID_IMPLEMENTER_BIT, |
diff --git a/include/asm-arm/arch-ep93xx/irqs.h b/include/asm-arm/arch-ep93xx/irqs.h index 9a42f5de9e57..ae532e304bf1 100644 --- a/include/asm-arm/arch-ep93xx/irqs.h +++ b/include/asm-arm/arch-ep93xx/irqs.h | |||
@@ -22,9 +22,9 @@ | |||
22 | #define IRQ_EP93XX_DMAM2P9 16 | 22 | #define IRQ_EP93XX_DMAM2P9 16 |
23 | #define IRQ_EP93XX_DMAM2M0 17 | 23 | #define IRQ_EP93XX_DMAM2M0 17 |
24 | #define IRQ_EP93XX_DMAM2M1 18 | 24 | #define IRQ_EP93XX_DMAM2M1 18 |
25 | #define IRQ_EP93XX_GPIO0MUX 20 | 25 | #define IRQ_EP93XX_GPIO0MUX 19 |
26 | #define IRQ_EP93XX_GPIO1MUX 21 | 26 | #define IRQ_EP93XX_GPIO1MUX 20 |
27 | #define IRQ_EP93XX_GPIO2MUX 22 | 27 | #define IRQ_EP93XX_GPIO2MUX 21 |
28 | #define IRQ_EP93XX_GPIO3MUX 22 | 28 | #define IRQ_EP93XX_GPIO3MUX 22 |
29 | #define IRQ_EP93XX_UART1RX 23 | 29 | #define IRQ_EP93XX_UART1RX 23 |
30 | #define IRQ_EP93XX_UART1TX 24 | 30 | #define IRQ_EP93XX_UART1TX 24 |
diff --git a/include/asm-arm/arch-iop13xx/io.h b/include/asm-arm/arch-iop13xx/io.h index db6de2480a24..5a7bdb526606 100644 --- a/include/asm-arm/arch-iop13xx/io.h +++ b/include/asm-arm/arch-iop13xx/io.h | |||
@@ -21,10 +21,11 @@ | |||
21 | 21 | ||
22 | #define IO_SPACE_LIMIT 0xffffffff | 22 | #define IO_SPACE_LIMIT 0xffffffff |
23 | 23 | ||
24 | #define __io(a) (a) | 24 | #define __io(a) __iop13xx_io(a) |
25 | #define __mem_pci(a) (a) | 25 | #define __mem_pci(a) (a) |
26 | #define __mem_isa(a) (a) | 26 | #define __mem_isa(a) (a) |
27 | 27 | ||
28 | extern void __iomem * __iop13xx_io(unsigned long io_addr); | ||
28 | extern void __iomem * __ioremap(unsigned long, size_t, unsigned long); | 29 | extern void __iomem * __ioremap(unsigned long, size_t, unsigned long); |
29 | extern void __iomem *__iop13xx_ioremap(unsigned long cookie, size_t size, | 30 | extern void __iomem *__iop13xx_ioremap(unsigned long cookie, size_t size, |
30 | unsigned long flags); | 31 | unsigned long flags); |
diff --git a/include/asm-arm/arch-pxa/pxa-regs.h b/include/asm-arm/arch-pxa/pxa-regs.h index 083e03c5639f..e24f6b6c79ae 100644 --- a/include/asm-arm/arch-pxa/pxa-regs.h +++ b/include/asm-arm/arch-pxa/pxa-regs.h | |||
@@ -1626,7 +1626,7 @@ | |||
1626 | #define SSCR0_RIM (1 << 22) /* Receive FIFO overrrun interrupt mask */ | 1626 | #define SSCR0_RIM (1 << 22) /* Receive FIFO overrrun interrupt mask */ |
1627 | #define SSCR0_TUM (1 << 23) /* Transmit FIFO underrun interrupt mask */ | 1627 | #define SSCR0_TUM (1 << 23) /* Transmit FIFO underrun interrupt mask */ |
1628 | #define SSCR0_FRDC (0x07000000) /* Frame rate divider control (mask) */ | 1628 | #define SSCR0_FRDC (0x07000000) /* Frame rate divider control (mask) */ |
1629 | #define SSCR0_SlotsPerFrm(x) ((x) - 1) /* Time slots per frame [1..8] */ | 1629 | #define SSCR0_SlotsPerFrm(x) (((x) - 1) << 24) /* Time slots per frame [1..8] */ |
1630 | #define SSCR0_ADC (1 << 30) /* Audio clock select */ | 1630 | #define SSCR0_ADC (1 << 30) /* Audio clock select */ |
1631 | #define SSCR0_MOD (1 << 31) /* Mode (normal or network) */ | 1631 | #define SSCR0_MOD (1 << 31) /* Mode (normal or network) */ |
1632 | #endif | 1632 | #endif |
@@ -1655,6 +1655,7 @@ | |||
1655 | #define SSCR0_EDSS (1 << 20) /* Extended Data Size Select */ | 1655 | #define SSCR0_EDSS (1 << 20) /* Extended Data Size Select */ |
1656 | 1656 | ||
1657 | /* extra bits in PXA255, PXA26x and PXA27x SSP ports */ | 1657 | /* extra bits in PXA255, PXA26x and PXA27x SSP ports */ |
1658 | #define SSCR0_TISSP (1 << 4) /* TI Sync Serial Protocol */ | ||
1658 | #define SSCR0_PSP (3 << 4) /* PSP - Programmable Serial Protocol */ | 1659 | #define SSCR0_PSP (3 << 4) /* PSP - Programmable Serial Protocol */ |
1659 | #define SSCR1_TTELP (1 << 31) /* TXD Tristate Enable Last Phase */ | 1660 | #define SSCR1_TTELP (1 << 31) /* TXD Tristate Enable Last Phase */ |
1660 | #define SSCR1_TTE (1 << 30) /* TXD Tristate Enable */ | 1661 | #define SSCR1_TTE (1 << 30) /* TXD Tristate Enable */ |
diff --git a/include/asm-arm/arch-s3c2410/dma.h b/include/asm-arm/arch-s3c2410/dma.h index 7ac224836971..58ffa7ba3c88 100644 --- a/include/asm-arm/arch-s3c2410/dma.h +++ b/include/asm-arm/arch-s3c2410/dma.h | |||
@@ -14,7 +14,7 @@ | |||
14 | #define __ASM_ARCH_DMA_H __FILE__ | 14 | #define __ASM_ARCH_DMA_H __FILE__ |
15 | 15 | ||
16 | #include <linux/sysdev.h> | 16 | #include <linux/sysdev.h> |
17 | #include "hardware.h" | 17 | #include <asm/hardware.h> |
18 | 18 | ||
19 | /* | 19 | /* |
20 | * This is the maximum DMA address(physical address) that can be DMAd to. | 20 | * This is the maximum DMA address(physical address) that can be DMAd to. |
diff --git a/include/asm-arm/arch-s3c2410/entry-macro.S b/include/asm-arm/arch-s3c2410/entry-macro.S index e09a6b8ec153..1eb4e6b8d249 100644 --- a/include/asm-arm/arch-s3c2410/entry-macro.S +++ b/include/asm-arm/arch-s3c2410/entry-macro.S | |||
@@ -20,7 +20,7 @@ | |||
20 | #define INTOFFSET (0x14) | 20 | #define INTOFFSET (0x14) |
21 | 21 | ||
22 | #include <asm/hardware.h> | 22 | #include <asm/hardware.h> |
23 | #include <asm/arch/irqs.h> | 23 | #include <asm/irq.h> |
24 | 24 | ||
25 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp | 25 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp |
26 | 26 | ||
diff --git a/include/asm-arm/arch-s3c2410/hardware.h b/include/asm-arm/arch-s3c2410/hardware.h index 729565e5cdf4..6dadf58ff984 100644 --- a/include/asm-arm/arch-s3c2410/hardware.h +++ b/include/asm-arm/arch-s3c2410/hardware.h | |||
@@ -13,6 +13,10 @@ | |||
13 | #ifndef __ASM_ARCH_HARDWARE_H | 13 | #ifndef __ASM_ARCH_HARDWARE_H |
14 | #define __ASM_ARCH_HARDWARE_H | 14 | #define __ASM_ARCH_HARDWARE_H |
15 | 15 | ||
16 | #ifndef __ASM_HARDWARE_H | ||
17 | #error "Do not include this directly, instead #include <asm/hardware.h>" | ||
18 | #endif | ||
19 | |||
16 | #ifndef __ASSEMBLY__ | 20 | #ifndef __ASSEMBLY__ |
17 | 21 | ||
18 | /* external functions for GPIO support | 22 | /* external functions for GPIO support |
diff --git a/include/asm-arm/arch-s3c2410/irqs.h b/include/asm-arm/arch-s3c2410/irqs.h index 39a69829d163..4b7cff456c4e 100644 --- a/include/asm-arm/arch-s3c2410/irqs.h +++ b/include/asm-arm/arch-s3c2410/irqs.h | |||
@@ -12,6 +12,9 @@ | |||
12 | #ifndef __ASM_ARCH_IRQS_H | 12 | #ifndef __ASM_ARCH_IRQS_H |
13 | #define __ASM_ARCH_IRQS_H __FILE__ | 13 | #define __ASM_ARCH_IRQS_H __FILE__ |
14 | 14 | ||
15 | #ifndef __ASM_ARM_IRQ_H | ||
16 | #error "Do not include this directly, instead #include <asm/irq.h>" | ||
17 | #endif | ||
15 | 18 | ||
16 | /* we keep the first set of CPU IRQs out of the range of | 19 | /* we keep the first set of CPU IRQs out of the range of |
17 | * the ISA space, so that the PC104 has them to itself | 20 | * the ISA space, so that the PC104 has them to itself |
diff --git a/include/asm-arm/cacheflush.h b/include/asm-arm/cacheflush.h index 378a3a2ce8d9..d51049522cd0 100644 --- a/include/asm-arm/cacheflush.h +++ b/include/asm-arm/cacheflush.h | |||
@@ -355,6 +355,8 @@ extern void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, | |||
355 | */ | 355 | */ |
356 | extern void flush_dcache_page(struct page *); | 356 | extern void flush_dcache_page(struct page *); |
357 | 357 | ||
358 | extern void __flush_dcache_page(struct address_space *mapping, struct page *page); | ||
359 | |||
358 | #define flush_dcache_mmap_lock(mapping) \ | 360 | #define flush_dcache_mmap_lock(mapping) \ |
359 | write_lock_irq(&(mapping)->tree_lock) | 361 | write_lock_irq(&(mapping)->tree_lock) |
360 | #define flush_dcache_mmap_unlock(mapping) \ | 362 | #define flush_dcache_mmap_unlock(mapping) \ |
diff --git a/include/asm-arm/flat.h b/include/asm-arm/flat.h index 966946478589..16f5375e57b8 100644 --- a/include/asm-arm/flat.h +++ b/include/asm-arm/flat.h | |||
@@ -5,7 +5,9 @@ | |||
5 | #ifndef __ARM_FLAT_H__ | 5 | #ifndef __ARM_FLAT_H__ |
6 | #define __ARM_FLAT_H__ | 6 | #define __ARM_FLAT_H__ |
7 | 7 | ||
8 | #define flat_stack_align(sp) /* nothing needed */ | 8 | /* An odd number of words will be pushed after this alignment, so |
9 | deliberately misalign the value. */ | ||
10 | #define flat_stack_align(sp) sp = (void *)(((unsigned long)(sp) - 4) | 4) | ||
9 | #define flat_argvp_envp_on_stack() 1 | 11 | #define flat_argvp_envp_on_stack() 1 |
10 | #define flat_old_ram_flag(flags) (flags) | 12 | #define flat_old_ram_flag(flags) (flags) |
11 | #define flat_reloc_valid(reloc, size) ((reloc) <= (size)) | 13 | #define flat_reloc_valid(reloc, size) ((reloc) <= (size)) |
diff --git a/include/asm-arm/irq.h b/include/asm-arm/irq.h index 283af50a16cb..1b882a255e35 100644 --- a/include/asm-arm/irq.h +++ b/include/asm-arm/irq.h | |||
@@ -19,7 +19,6 @@ | |||
19 | #define NO_IRQ ((unsigned int)(-1)) | 19 | #define NO_IRQ ((unsigned int)(-1)) |
20 | #endif | 20 | #endif |
21 | 21 | ||
22 | struct irqaction; | ||
23 | 22 | ||
24 | /* | 23 | /* |
25 | * Migration helpers | 24 | * Migration helpers |
@@ -37,6 +36,10 @@ struct irqaction; | |||
37 | #define IRQT_HIGH (__IRQT_HIGHLVL) | 36 | #define IRQT_HIGH (__IRQT_HIGHLVL) |
38 | #define IRQT_PROBE IRQ_TYPE_PROBE | 37 | #define IRQT_PROBE IRQ_TYPE_PROBE |
39 | 38 | ||
39 | #ifndef __ASSEMBLY__ | ||
40 | struct irqaction; | ||
40 | extern void migrate_irqs(void); | 41 | extern void migrate_irqs(void); |
41 | #endif | 42 | #endif |
42 | 43 | ||
44 | #endif | ||
45 | |||