diff options
| -rw-r--r-- | arch/m32r/include/asm/io.h | 7 | ||||
| -rw-r--r-- | arch/m32r/kernel/m32r_ksyms.c | 6 | ||||
| -rw-r--r-- | arch/m32r/kernel/time.c | 9 | ||||
| -rw-r--r-- | arch/m32r/kernel/traps.c | 4 | ||||
| -rw-r--r-- | arch/m32r/lib/delay.c | 4 | ||||
| -rw-r--r-- | arch/m32r/mm/discontig.c | 5 | ||||
| -rw-r--r-- | arch/m32r/mm/mmu.S | 12 |
7 files changed, 34 insertions, 13 deletions
diff --git a/arch/m32r/include/asm/io.h b/arch/m32r/include/asm/io.h index d06933bd6318..4010f1fc5b65 100644 --- a/arch/m32r/include/asm/io.h +++ b/arch/m32r/include/asm/io.h | |||
| @@ -162,6 +162,13 @@ static inline void _writel(unsigned long l, unsigned long addr) | |||
| 162 | #define __raw_writew writew | 162 | #define __raw_writew writew |
| 163 | #define __raw_writel writel | 163 | #define __raw_writel writel |
| 164 | 164 | ||
| 165 | #define ioread8 read | ||
| 166 | #define ioread16 readw | ||
| 167 | #define ioread32 readl | ||
| 168 | #define iowrite8 writeb | ||
| 169 | #define iowrite16 writew | ||
| 170 | #define iowrite32 writel | ||
| 171 | |||
| 165 | #define mmiowb() | 172 | #define mmiowb() |
| 166 | 173 | ||
| 167 | #define flush_write_buffers() do { } while (0) /* M32R_FIXME */ | 174 | #define flush_write_buffers() do { } while (0) /* M32R_FIXME */ |
diff --git a/arch/m32r/kernel/m32r_ksyms.c b/arch/m32r/kernel/m32r_ksyms.c index 22624b51d4d3..700570747a90 100644 --- a/arch/m32r/kernel/m32r_ksyms.c +++ b/arch/m32r/kernel/m32r_ksyms.c | |||
| @@ -23,12 +23,6 @@ EXPORT_SYMBOL(__ioremap); | |||
| 23 | EXPORT_SYMBOL(iounmap); | 23 | EXPORT_SYMBOL(iounmap); |
| 24 | EXPORT_SYMBOL(kernel_thread); | 24 | EXPORT_SYMBOL(kernel_thread); |
| 25 | 25 | ||
| 26 | /* Networking helper routines. */ | ||
| 27 | /* Delay loops */ | ||
| 28 | EXPORT_SYMBOL(__udelay); | ||
| 29 | EXPORT_SYMBOL(__delay); | ||
| 30 | EXPORT_SYMBOL(__const_udelay); | ||
| 31 | |||
| 32 | EXPORT_SYMBOL(strncpy_from_user); | 26 | EXPORT_SYMBOL(strncpy_from_user); |
| 33 | EXPORT_SYMBOL(__strncpy_from_user); | 27 | EXPORT_SYMBOL(__strncpy_from_user); |
| 34 | EXPORT_SYMBOL(clear_user); | 28 | EXPORT_SYMBOL(clear_user); |
diff --git a/arch/m32r/kernel/time.c b/arch/m32r/kernel/time.c index ba61c4c73202..e7fee0f198d5 100644 --- a/arch/m32r/kernel/time.c +++ b/arch/m32r/kernel/time.c | |||
| @@ -33,6 +33,15 @@ | |||
| 33 | 33 | ||
| 34 | #include <asm/hw_irq.h> | 34 | #include <asm/hw_irq.h> |
| 35 | 35 | ||
| 36 | #if defined(CONFIG_RTC_DRV_CMOS) || defined(CONFIG_RTC_DRV_CMOS_MODULE) | ||
| 37 | /* this needs a better home */ | ||
| 38 | DEFINE_SPINLOCK(rtc_lock); | ||
| 39 | |||
| 40 | #ifdef CONFIG_RTC_DRV_CMOS_MODULE | ||
| 41 | EXPORT_SYMBOL(rtc_lock); | ||
| 42 | #endif | ||
| 43 | #endif /* pc-style 'CMOS' RTC support */ | ||
| 44 | |||
| 36 | #ifdef CONFIG_SMP | 45 | #ifdef CONFIG_SMP |
| 37 | extern void smp_local_timer_interrupt(void); | 46 | extern void smp_local_timer_interrupt(void); |
| 38 | #endif | 47 | #endif |
diff --git a/arch/m32r/kernel/traps.c b/arch/m32r/kernel/traps.c index 03b14e55cd89..fbd109031df3 100644 --- a/arch/m32r/kernel/traps.c +++ b/arch/m32r/kernel/traps.c | |||
| @@ -104,8 +104,8 @@ static void set_eit_vector_entries(void) | |||
| 104 | eit_vector[186] = (unsigned long)smp_call_function_interrupt; | 104 | eit_vector[186] = (unsigned long)smp_call_function_interrupt; |
| 105 | eit_vector[187] = (unsigned long)smp_ipi_timer_interrupt; | 105 | eit_vector[187] = (unsigned long)smp_ipi_timer_interrupt; |
| 106 | eit_vector[188] = (unsigned long)smp_flush_cache_all_interrupt; | 106 | eit_vector[188] = (unsigned long)smp_flush_cache_all_interrupt; |
| 107 | eit_vector[189] = (unsigned long)smp_call_function_single_interrupt; | 107 | eit_vector[189] = 0; /* CPU_BOOT_IPI */ |
| 108 | eit_vector[190] = 0; | 108 | eit_vector[190] = (unsigned long)smp_call_function_single_interrupt; |
| 109 | eit_vector[191] = 0; | 109 | eit_vector[191] = 0; |
| 110 | #endif | 110 | #endif |
| 111 | _flush_cache_copyback_all(); | 111 | _flush_cache_copyback_all(); |
diff --git a/arch/m32r/lib/delay.c b/arch/m32r/lib/delay.c index ced549be80f5..940f4837e42b 100644 --- a/arch/m32r/lib/delay.c +++ b/arch/m32r/lib/delay.c | |||
| @@ -122,4 +122,8 @@ void __ndelay(unsigned long nsecs) | |||
| 122 | { | 122 | { |
| 123 | __const_udelay(nsecs * 0x00005); /* 2**32 / 1000000000 (rounded up) */ | 123 | __const_udelay(nsecs * 0x00005); /* 2**32 / 1000000000 (rounded up) */ |
| 124 | } | 124 | } |
| 125 | |||
| 126 | EXPORT_SYMBOL(__delay); | ||
| 127 | EXPORT_SYMBOL(__const_udelay); | ||
| 128 | EXPORT_SYMBOL(__udelay); | ||
| 125 | EXPORT_SYMBOL(__ndelay); | 129 | EXPORT_SYMBOL(__ndelay); |
diff --git a/arch/m32r/mm/discontig.c b/arch/m32r/mm/discontig.c index b7a78ad429b7..5d2858f6eede 100644 --- a/arch/m32r/mm/discontig.c +++ b/arch/m32r/mm/discontig.c | |||
| @@ -32,6 +32,9 @@ typedef struct { | |||
| 32 | } mem_prof_t; | 32 | } mem_prof_t; |
| 33 | static mem_prof_t mem_prof[MAX_NUMNODES]; | 33 | static mem_prof_t mem_prof[MAX_NUMNODES]; |
| 34 | 34 | ||
| 35 | extern unsigned long memory_start; | ||
| 36 | extern unsigned long memory_end; | ||
| 37 | |||
| 35 | static void __init mem_prof_init(void) | 38 | static void __init mem_prof_init(void) |
| 36 | { | 39 | { |
| 37 | unsigned long start_pfn, holes, free_pfn; | 40 | unsigned long start_pfn, holes, free_pfn; |
| @@ -42,7 +45,7 @@ static void __init mem_prof_init(void) | |||
| 42 | /* Node#0 SDRAM */ | 45 | /* Node#0 SDRAM */ |
| 43 | mp = &mem_prof[0]; | 46 | mp = &mem_prof[0]; |
| 44 | mp->start_pfn = PFN_UP(CONFIG_MEMORY_START); | 47 | mp->start_pfn = PFN_UP(CONFIG_MEMORY_START); |
| 45 | mp->pages = PFN_DOWN(CONFIG_MEMORY_SIZE); | 48 | mp->pages = PFN_DOWN(memory_end - memory_start); |
| 46 | mp->holes = 0; | 49 | mp->holes = 0; |
| 47 | mp->free_pfn = PFN_UP(__pa(_end)); | 50 | mp->free_pfn = PFN_UP(__pa(_end)); |
| 48 | 51 | ||
diff --git a/arch/m32r/mm/mmu.S b/arch/m32r/mm/mmu.S index 49a6d16a3d58..e9491a5ae827 100644 --- a/arch/m32r/mm/mmu.S +++ b/arch/m32r/mm/mmu.S | |||
| @@ -150,9 +150,13 @@ ENTRY(tme_handler) | |||
| 150 | 150 | ||
| 151 | ; pmd = pmd_offset(pgd, address); | 151 | ; pmd = pmd_offset(pgd, address); |
| 152 | ld r3, @r3 ; r3: pmd data | 152 | ld r3, @r3 ; r3: pmd data |
| 153 | ldi r2, #-4096 | ||
| 154 | beqz r3, 3f ; pmd_none(*pmd) ? | 153 | beqz r3, 3f ; pmd_none(*pmd) ? |
| 155 | 154 | ||
| 155 | and3 r2, r3, #0xfff | ||
| 156 | add3 r2, r2, #-355 ; _KERNPG_TABLE(=0x163) | ||
| 157 | bnez r2, 3f ; pmd_bad(*pmd) ? | ||
| 158 | ldi r2, #-4096 | ||
| 159 | |||
| 156 | ; pte = pte_offset(pmd, address); | 160 | ; pte = pte_offset(pmd, address); |
| 157 | and r2, r3 ; r2: pte base addr | 161 | and r2, r3 ; r2: pte base addr |
| 158 | srl3 r3, r0, #10 | 162 | srl3 r3, r0, #10 |
| @@ -263,9 +267,9 @@ ENTRY(tme_handler) | |||
| 263 | ld r1, @r3 ; r1: pmd | 267 | ld r1, @r3 ; r1: pmd |
| 264 | beqz r1, 3f ; pmd_none(*pmd) ? | 268 | beqz r1, 3f ; pmd_none(*pmd) ? |
| 265 | ; | 269 | ; |
| 266 | and3 r1, r1, #0xeff | 270 | and3 r1, r1, #0x3ff |
| 267 | ldi r4, #611 ; _KERNPG_TABLE(=611) | 271 | ldi r4, #0x163 ; _KERNPG_TABLE(=0x163) |
| 268 | bne r1, r4, 3f ; !pmd_bad(*pmd) ? | 272 | bne r1, r4, 3f ; pmd_bad(*pmd) ? |
| 269 | 273 | ||
| 270 | .fillinsn | 274 | .fillinsn |
| 271 | 4: | 275 | 4: |
