Commit 8a0382f6 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://www.linux-m32r.org/git/takata/linux-2.6_dev

* 'for-linus' of git://www.linux-m32r.org/git/takata/linux-2.6_dev:
  m32r: Fix IPI function calls for SMP
  m32r: Fix set_memory() for DISCONTIGMEM
  m32r: add rtc_lock variable
  m32r: define ioread* and iowrite* macros
  m32r: export delay loop symbols
  m32r: fix tme_handler
parents 0b5759c6 0a3d31b7
...@@ -162,6 +162,13 @@ static inline void _writel(unsigned long l, unsigned long addr) ...@@ -162,6 +162,13 @@ static inline void _writel(unsigned long l, unsigned long addr)
#define __raw_writew writew #define __raw_writew writew
#define __raw_writel writel #define __raw_writel writel
#define ioread8 read
#define ioread16 readw
#define ioread32 readl
#define iowrite8 writeb
#define iowrite16 writew
#define iowrite32 writel
#define mmiowb() #define mmiowb()
#define flush_write_buffers() do { } while (0) /* M32R_FIXME */ #define flush_write_buffers() do { } while (0) /* M32R_FIXME */
......
...@@ -23,12 +23,6 @@ EXPORT_SYMBOL(__ioremap); ...@@ -23,12 +23,6 @@ EXPORT_SYMBOL(__ioremap);
EXPORT_SYMBOL(iounmap); EXPORT_SYMBOL(iounmap);
EXPORT_SYMBOL(kernel_thread); EXPORT_SYMBOL(kernel_thread);
/* Networking helper routines. */
/* Delay loops */
EXPORT_SYMBOL(__udelay);
EXPORT_SYMBOL(__delay);
EXPORT_SYMBOL(__const_udelay);
EXPORT_SYMBOL(strncpy_from_user); EXPORT_SYMBOL(strncpy_from_user);
EXPORT_SYMBOL(__strncpy_from_user); EXPORT_SYMBOL(__strncpy_from_user);
EXPORT_SYMBOL(clear_user); EXPORT_SYMBOL(clear_user);
......
...@@ -33,6 +33,15 @@ ...@@ -33,6 +33,15 @@
#include <asm/hw_irq.h> #include <asm/hw_irq.h>
#if defined(CONFIG_RTC_DRV_CMOS) || defined(CONFIG_RTC_DRV_CMOS_MODULE)
/* this needs a better home */
DEFINE_SPINLOCK(rtc_lock);
#ifdef CONFIG_RTC_DRV_CMOS_MODULE
EXPORT_SYMBOL(rtc_lock);
#endif
#endif /* pc-style 'CMOS' RTC support */
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
extern void smp_local_timer_interrupt(void); extern void smp_local_timer_interrupt(void);
#endif #endif
......
...@@ -104,8 +104,8 @@ static void set_eit_vector_entries(void) ...@@ -104,8 +104,8 @@ static void set_eit_vector_entries(void)
eit_vector[186] = (unsigned long)smp_call_function_interrupt; eit_vector[186] = (unsigned long)smp_call_function_interrupt;
eit_vector[187] = (unsigned long)smp_ipi_timer_interrupt; eit_vector[187] = (unsigned long)smp_ipi_timer_interrupt;
eit_vector[188] = (unsigned long)smp_flush_cache_all_interrupt; eit_vector[188] = (unsigned long)smp_flush_cache_all_interrupt;
eit_vector[189] = (unsigned long)smp_call_function_single_interrupt; eit_vector[189] = 0; /* CPU_BOOT_IPI */
eit_vector[190] = 0; eit_vector[190] = (unsigned long)smp_call_function_single_interrupt;
eit_vector[191] = 0; eit_vector[191] = 0;
#endif #endif
_flush_cache_copyback_all(); _flush_cache_copyback_all();
......
...@@ -122,4 +122,8 @@ void __ndelay(unsigned long nsecs) ...@@ -122,4 +122,8 @@ void __ndelay(unsigned long nsecs)
{ {
__const_udelay(nsecs * 0x00005); /* 2**32 / 1000000000 (rounded up) */ __const_udelay(nsecs * 0x00005); /* 2**32 / 1000000000 (rounded up) */
} }
EXPORT_SYMBOL(__delay);
EXPORT_SYMBOL(__const_udelay);
EXPORT_SYMBOL(__udelay);
EXPORT_SYMBOL(__ndelay); EXPORT_SYMBOL(__ndelay);
...@@ -32,6 +32,9 @@ typedef struct { ...@@ -32,6 +32,9 @@ typedef struct {
} mem_prof_t; } mem_prof_t;
static mem_prof_t mem_prof[MAX_NUMNODES]; static mem_prof_t mem_prof[MAX_NUMNODES];
extern unsigned long memory_start;
extern unsigned long memory_end;
static void __init mem_prof_init(void) static void __init mem_prof_init(void)
{ {
unsigned long start_pfn, holes, free_pfn; unsigned long start_pfn, holes, free_pfn;
...@@ -42,7 +45,7 @@ static void __init mem_prof_init(void) ...@@ -42,7 +45,7 @@ static void __init mem_prof_init(void)
/* Node#0 SDRAM */ /* Node#0 SDRAM */
mp = &mem_prof[0]; mp = &mem_prof[0];
mp->start_pfn = PFN_UP(CONFIG_MEMORY_START); mp->start_pfn = PFN_UP(CONFIG_MEMORY_START);
mp->pages = PFN_DOWN(CONFIG_MEMORY_SIZE); mp->pages = PFN_DOWN(memory_end - memory_start);
mp->holes = 0; mp->holes = 0;
mp->free_pfn = PFN_UP(__pa(_end)); mp->free_pfn = PFN_UP(__pa(_end));
......
...@@ -150,9 +150,13 @@ ENTRY(tme_handler) ...@@ -150,9 +150,13 @@ ENTRY(tme_handler)
; pmd = pmd_offset(pgd, address); ; pmd = pmd_offset(pgd, address);
ld r3, @r3 ; r3: pmd data ld r3, @r3 ; r3: pmd data
ldi r2, #-4096
beqz r3, 3f ; pmd_none(*pmd) ? beqz r3, 3f ; pmd_none(*pmd) ?
and3 r2, r3, #0xfff
add3 r2, r2, #-355 ; _KERNPG_TABLE(=0x163)
bnez r2, 3f ; pmd_bad(*pmd) ?
ldi r2, #-4096
; pte = pte_offset(pmd, address); ; pte = pte_offset(pmd, address);
and r2, r3 ; r2: pte base addr and r2, r3 ; r2: pte base addr
srl3 r3, r0, #10 srl3 r3, r0, #10
...@@ -263,9 +267,9 @@ ENTRY(tme_handler) ...@@ -263,9 +267,9 @@ ENTRY(tme_handler)
ld r1, @r3 ; r1: pmd ld r1, @r3 ; r1: pmd
beqz r1, 3f ; pmd_none(*pmd) ? beqz r1, 3f ; pmd_none(*pmd) ?
; ;
and3 r1, r1, #0xeff and3 r1, r1, #0x3ff
ldi r4, #611 ; _KERNPG_TABLE(=611) ldi r4, #0x163 ; _KERNPG_TABLE(=0x163)
bne r1, r4, 3f ; !pmd_bad(*pmd) ? bne r1, r4, 3f ; pmd_bad(*pmd) ?
.fillinsn .fillinsn
4: 4:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment