/* DAVIDM look at setup memory map generically with reserved area */
unsigned long tmp;
extern char _etext, _stext, _sdata, _ebss, __init_begin, __init_end;
- extern unsigned char _ramend, _ramstart;
+ extern unsigned long _ramend, _ramstart;
unsigned long len = &_ramend - &_ramstart;
unsigned long start_mem = memory_start; /* DAVIDM - these must start at end of kernel */
unsigned long end_mem = memory_end; /* DAVIDM - this must not include kernel stack at top */
#include <asm/regs306x.h>
#define CMFA 6
-int platform_timer_setup(void (*timer_int)(int, void *, struct pt_regs *))
+int platform_timer_setup(irqreturn_t (*timer_int)(int, void *, struct pt_regs *))
{
ctrl_outb(H8300_TIMER_COUNT_DATA,TCORA2);
ctrl_outb(0x00,_8TCSR2);
#define GRA 0x00ffff6a
#define GRB 0x00ffff6c
-int platform_timer_setup(void (*timer_int)(int, void *, struct pt_regs *))
+int platform_timer_setup(irqreturn_t (*timer_int)(int, void *, struct pt_regs *))
{
*(unsigned short *)GRA= H8300_TIMER_COUNT_DATA;
*(unsigned short *)TCNT=0;
case BIT: \
__asm__("stc ccr,%w1\n\t" \
"orc #0x80,ccr\n\t" \
- "bld #" #BIT ",@%3\n\t" \
- OP " #" #BIT ",@%3\n\t" \
+ "bld #" #BIT ",@%4\n\t" \
+ OP " #" #BIT ",@%4\n\t" \
"rotxl.l %0\n\t" \
"ldc %w1,ccr" \
- : "=r"(retval),"=&r"(ccrsave) \
+ : "=r"(retval),"=&r"(ccrsave),"=m"(*b_addr) \
: "0" (retval),"r" (b_addr) \
: "memory"); \
break;
#define H8300_GEN_TEST_BITOP_CONST(OP,BIT) \
case BIT: \
- __asm__("bld #" #BIT ",@%2\n\t" \
- OP " #" #BIT ",@%2\n\t" \
+ __asm__("bld #" #BIT ",@%3\n\t" \
+ OP " #" #BIT ",@%3\n\t" \
"rotxl.l %0\n\t" \
- : "=r"(retval) \
+ : "=r"(retval),"=m"(*b_addr) \
: "0" (retval),"r" (b_addr) \
: "memory"); \
break;
} else { \
__asm__("stc ccr,%w1\n\t" \
"orc #0x80,ccr\n\t" \
- "btst %w4,@%3\n\t" \
- OP " %w4,@%3\n\t" \
+ "btst %w5,@%4\n\t" \
+ OP " %w5,@%4\n\t" \
"beq 1f\n\t" \
"inc.l #1,%0\n" \
"1:\n\t" \
"ldc %w1,ccr" \
- : "=r"(retval),"=&r"(ccrsave) \
+ : "=r"(retval),"=&r"(ccrsave),"=m"(*b_addr) \
: "0" (retval),"r" (b_addr),"r"(nr) \
: "memory"); \
} \
H8300_GEN_TEST_BITOP_CONST(OP,7) \
} \
} else { \
- __asm__("btst %w3,@%2\n\t" \
- OP " %w3,@%2\n\t" \
+ __asm__("btst %w4,@%3\n\t" \
+ OP " %w4,@%3\n\t" \
"beq 1f\n\t" \
"inc.l #1,%0\n" \
"1:" \
- : "=r"(retval) \
+ : "=r"(retval),"=m"(*b_addr) \
: "0" (retval),"r" (b_addr),"r"(nr) \
: "memory"); \
} \
static __inline__ int find_next_zero_bit (void * addr, int size, int offset)
{
- unsigned long *p = ((unsigned long *) addr) + (offset >> 5);
+ unsigned long *p = (unsigned long *)(((unsigned long)addr + (offset >> 3)) & ~3);
unsigned long result = offset & ~31UL;
unsigned long tmp;