bk://bk.arm.linux.org.uk/linux-2.6-rmk rmk@flint.arm.linux.org.uk|ChangeSet|20050209214445|30419 rmk # This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2005/02/09 21:44:45+00:00 rmk@flint.arm.linux.org.uk # [ARM] Fix VFP for entry-armv.S macro-isation. # # Unfortunately, VFP got forgotten with when entry-armv.S was updated # to use macros, and the PC value changed from being passed in r5 to # r2. This fixes VFP. # # Signed-off-by: Russell King # # arch/arm/vfp/vfphw.S # 2005/02/09 21:40:26+00:00 rmk@flint.arm.linux.org.uk +14 -14 # r2 now contains PC for floating point emulators, not r5. # # arch/arm/kernel/entry-armv.S # 2005/02/09 21:40:26+00:00 rmk@flint.arm.linux.org.uk +4 -5 # Correct comments - r2 now contains PC for floating point emulators, # not r5. # # ChangeSet # 2005/02/09 13:51:39+00:00 ben-linux@org.rmk.(none) # [ARM PATCH] 2455/1: shark: fix uninitialised variable in head # # Patch from Ben Dooks # # stop compiler warning about uninitialised variable # # Signed-off-by: Ben Dooks # Signed-off-by: Russell King # # arch/arm/boot/compressed/ofw-shark.c # 2005/02/03 22:32:38+00:00 ben-linux@org.rmk.(none) +2 -0 # [PATCH] 2455/1: shark: fix uninitialised variable in head # # ChangeSet # 2005/02/09 13:44:22+00:00 ben-linux@org.rmk.(none) # [ARM PATCH] 2454/1: cleanup shark_defconfig # # Patch from Ben Dooks # # remove a number of warnings from the default shark # build # # Signed-off-by: Ben Dooks # Signed-off-by: Russell King # # arch/arm/mach-shark/pci.c # 2005/02/03 22:22:19+00:00 ben-linux@org.rmk.(none) +2 -2 # [PATCH] 2454/1: cleanup shark_defconfig # # arch/arm/mach-shark/irq.c # 2005/02/03 22:17:50+00:00 ben-linux@org.rmk.(none) +2 -2 # [PATCH] 2454/1: cleanup shark_defconfig # # arch/arm/mach-shark/core.c # 2005/02/03 22:12:26+00:00 ben-linux@org.rmk.(none) +0 -2 # [PATCH] 2454/1: cleanup shark_defconfig # # arch/arm/common/via82c505.c # 2005/02/03 22:22:06+00:00 ben-linux@org.rmk.(none) +1 -1 # [PATCH] 2454/1: cleanup shark_defconfig # # ChangeSet # 2005/02/09 13:35:55+00:00 sascha@de.rmk.(none) # [ARM PATCH] 2463/1: Hynix h7202 serial ports fixes # # Patch from Sascha Hauer # # This patch fixes the membase/mapbase of serial ports 1-4 and actually # enables them. # # Signed-off-by: Sascha Hauer # Signed-off-by: Russell King # # include/asm-arm/arch-h720x/hardware.h # 2005/02/09 00:00:00+00:00 sascha@de.rmk.(none) +18 -8 # [PATCH] 2463/1: Hynix h7202 serial ports fixes # # include/asm-arm/arch-h720x/h7202-regs.h # 2005/02/09 00:00:00+00:00 sascha@de.rmk.(none) +6 -2 # [PATCH] 2463/1: Hynix h7202 serial ports fixes # # arch/arm/mach-h720x/cpu-h7202.c # 2005/02/09 00:00:00+00:00 sascha@de.rmk.(none) +19 -5 # [PATCH] 2463/1: Hynix h7202 serial ports fixes # # arch/arm/mach-h720x/Kconfig # 2005/02/09 00:00:00+00:00 sascha@de.rmk.(none) +7 -0 # [PATCH] 2463/1: Hynix h7202 serial ports fixes # # ChangeSet # 2005/02/09 11:18:11+00:00 ben-linux@org.rmk.(none) # [ARM PATCH] 2462/1: IXP2000 - fixes for warnings from io.h # # Patch from Ben Dooks # # Fix the include/asm-arm/arch-ipx2000/io.h to remove the warnings # generated due to the IO addresses not being of the type `void __iomem *` # # Signed-off-by: Ben Dooks # Signed-off-by: Russell King # # include/asm-arm/arch-ixp2000/io.h # 2005/02/03 22:45:19+00:00 ben-linux@org.rmk.(none) +3 -3 # [PATCH] 2462/1: IXP2000 - fixes for warnings from io.h # # ChangeSet # 2005/02/04 23:55:48-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/02/04 23:55:43-08:00 akpm@bix.(none) +0 -0 # Auto merged # # CREDITS # 2005/02/04 23:55:43-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/02/03 12:27:49-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/02/03 12:27:45-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/02/02 20:58:58-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/02/02 20:58:53-08:00 akpm@bix.(none) +0 -0 # Auto merged # # CREDITS # 2005/02/02 20:58:53-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/28 14:23:08-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/28 14:23:02-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/15 17:59:46-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/15 17:59:40-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/13 16:36:43-08:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/13 16:36:39-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/13 16:33:42-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/13 16:33:38-08:00 akpm@bix.(none) +0 -0 # Auto merged # # CREDITS # 2005/01/13 16:33:38-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/12 12:14:51-08:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/12 12:14:47-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/11 21:32:02-08:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # CREDITS # 2005/01/11 21:31:56-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/11 11:47:36-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/11 11:47:31-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/10 20:25:29-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/10 20:25:24-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/10 14:38:10-08:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/10 14:38:06-08:00 akpm@bix.(none) +0 -0 # Auto merged # diff -Nru a/arch/arm/boot/compressed/ofw-shark.c b/arch/arm/boot/compressed/ofw-shark.c --- a/arch/arm/boot/compressed/ofw-shark.c 2005-02-09 18:41:14 -08:00 +++ b/arch/arm/boot/compressed/ofw-shark.c 2005-02-09 18:41:14 -08:00 @@ -24,6 +24,8 @@ int j,i,m,k,nr_banks,size; unsigned char *c; + k = 0; + /* Head of the taglist */ tag->hdr.tag = ATAG_CORE; tag->hdr.size = tag_size(tag_core); diff -Nru a/arch/arm/common/via82c505.c b/arch/arm/common/via82c505.c --- a/arch/arm/common/via82c505.c 2005-02-09 18:41:14 -08:00 +++ b/arch/arm/common/via82c505.c 2005-02-09 18:41:14 -08:00 @@ -59,7 +59,7 @@ .write = via82c505_write_config, }; -void __init via82c505_preinit(void *sysdata) +void __init via82c505_preinit(void) { printk(KERN_DEBUG "PCI: VIA 82c505\n"); if (!request_region(0xA8,2,"via config")) { diff -Nru a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S --- a/arch/arm/kernel/entry-armv.S 2005-02-09 18:41:14 -08:00 +++ b/arch/arm/kernel/entry-armv.S 2005-02-09 18:41:14 -08:00 @@ -379,8 +379,6 @@ .previous /* - * r0 = instruction. - * * Check whether the instruction is a co-processor instruction. * If yes, we need to call the relevant co-processor handler. * @@ -391,8 +389,9 @@ * for the ARM6/ARM7 SWI bug. * * Emulators may wish to make use of the following registers: - * r0 - instruction opcode. - * r10 - this threads thread_info structure. + * r0 = instruction opcode. + * r2 = PC+4 + * r10 = this threads thread_info structure. */ call_fpe: tst r0, #0x08000000 @ only CDP/CPRT/LDC/STC have bit 27 @@ -447,7 +446,7 @@ /* * The FP module is called with these registers set: * r0 = instruction - * r5 = PC + * r2 = PC+4 * r9 = normal "successful" return address * r10 = FP workspace * lr = unrecognised FP instruction return address diff -Nru a/arch/arm/mach-h720x/Kconfig b/arch/arm/mach-h720x/Kconfig --- a/arch/arm/mach-h720x/Kconfig 2005-02-09 18:41:14 -08:00 +++ b/arch/arm/mach-h720x/Kconfig 2005-02-09 18:41:14 -08:00 @@ -27,5 +27,12 @@ bool help Select code specific to h7202 variants +config H7202_SERIAL23 + depends on CPU_H7202 + bool "Use serial ports 2+3" + help + Say Y here if you wish to use serial ports 2+3. They share their + pins with the keyboard matrix controller, so you have to decide. + endif diff -Nru a/arch/arm/mach-h720x/cpu-h7202.c b/arch/arm/mach-h720x/cpu-h7202.c --- a/arch/arm/mach-h720x/cpu-h7202.c 2005-02-09 18:41:14 -08:00 +++ b/arch/arm/mach-h720x/cpu-h7202.c 2005-02-09 18:41:14 -08:00 @@ -5,7 +5,7 @@ * 2003 Robert Schwebel * 2004 Sascha Hauer * - * processor specific stuff for the Hynix h7201 + * processor specific stuff for the Hynix h7202 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -48,7 +48,8 @@ static struct plat_serial8250_port serial_platform_data[] = { { - .membase = SERIAL0_BASE, + .membase = (void*)SERIAL0_VIRT, + .mapbase = SERIAL0_BASE, .irq = IRQ_UART0, .uartclk = 2*1843200, .regshift = 2, @@ -56,15 +57,18 @@ .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, }, { - .membase = SERIAL1_BASE, + .membase = (void*)SERIAL1_VIRT, + .mapbase = SERIAL1_BASE, .irq = IRQ_UART1, .uartclk = 2*1843200, .regshift = 2, .iotype = UPIO_MEM, .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, }, +#ifdef CONFIG_H7202_SERIAL23 { - .membase = SERIAL2_BASE, + .membase = (void*)SERIAL2_VIRT, + .mapbase = SERIAL2_BASE, .irq = IRQ_UART2, .uartclk = 2*1843200, .regshift = 2, @@ -72,13 +76,15 @@ .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, }, { - .membase = SERIAL3_BASE, + .membase = (void*)SERIAL3_VIRT, + .mapbase = SERIAL3_BASE, .irq = IRQ_UART3, .uartclk = 2*1843200, .regshift = 2, .iotype = UPIO_MEM, .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, }, +#endif { }, }; @@ -210,5 +216,13 @@ /* Enable clocks */ CPU_REG (PMU_BASE, PMU_PLL_CTRL) |= PLL_2_EN | PLL_1_EN | PLL_3_MUTE; + CPU_REG (SERIAL0_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN; + CPU_REG (SERIAL1_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN; +#ifdef CONFIG_H7202_SERIAL23 + CPU_REG (SERIAL2_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN; + CPU_REG (SERIAL3_VIRT, SERIAL_ENABLE) = SERIAL_ENABLE_EN; + CPU_IO (GPIO_AMULSEL) = AMULSEL_USIN2 | AMULSEL_USOUT2 | + AMULSEL_USIN3 | AMULSEL_USOUT3; +#endif (void) platform_add_devices(devices, ARRAY_SIZE(devices)); } diff -Nru a/arch/arm/mach-shark/core.c b/arch/arm/mach-shark/core.c --- a/arch/arm/mach-shark/core.c 2005-02-09 18:41:14 -08:00 +++ b/arch/arm/mach-shark/core.c 2005-02-09 18:41:14 -08:00 @@ -93,8 +93,6 @@ */ static void __init shark_timer_init(void) { - unsigned long flags; - outb(0x34, 0x43); /* binary, mode 0, LSB/MSB, Ch 0 */ outb(HZ_TIME & 0xff, 0x40); /* LSB of count */ outb(HZ_TIME >> 8, 0x40); diff -Nru a/arch/arm/mach-shark/irq.c b/arch/arm/mach-shark/irq.c --- a/arch/arm/mach-shark/irq.c 2005-02-09 18:41:14 -08:00 +++ b/arch/arm/mach-shark/irq.c 2005-02-09 18:41:14 -08:00 @@ -61,9 +61,10 @@ static void shark_ack_8259A_irq(unsigned int irq){} -static void bogus_int(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t bogus_int(int irq, void *dev_id, struct pt_regs *regs) { printk("Got interrupt %i!\n",irq); + return IRQ_NONE; } static struct irqaction cascade; @@ -103,7 +104,6 @@ cascade.handler = bogus_int; cascade.flags = 0; - cascade.mask = 0; cascade.name = "cascade"; cascade.next = NULL; cascade.dev_id = NULL; diff -Nru a/arch/arm/mach-shark/pci.c b/arch/arm/mach-shark/pci.c --- a/arch/arm/mach-shark/pci.c 2005-02-09 18:41:14 -08:00 +++ b/arch/arm/mach-shark/pci.c 2005-02-09 18:41:14 -08:00 @@ -21,7 +21,7 @@ else return 255; } -extern void __init via82c505_preinit(void *sysdata); +extern void __init via82c505_preinit(void); static struct hw_pci shark_pci __initdata = { .setup = via82c505_setup, @@ -29,7 +29,7 @@ .map_irq = shark_map_irq, .nr_controllers = 1, .scan = via82c505_scan_bus, - .preinit = via82c505_preinit + .preinit = via82c505_preinit, }; static int __init shark_pci_init(void) diff -Nru a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S --- a/arch/arm/vfp/vfphw.S 2005-02-09 18:41:14 -08:00 +++ b/arch/arm/vfp/vfphw.S 2005-02-09 18:41:14 -08:00 @@ -62,14 +62,14 @@ @ VFP hardware support entry point. @ @ r0 = faulted instruction -@ r5 = faulted PC+4 +@ r2 = faulted PC+4 @ r9 = successful return @ r10 = vfp_state union @ lr = failure return .globl vfp_support_entry vfp_support_entry: - DBGSTR3 "instr %08x pc %08x state %p", r0, r5, r10 + DBGSTR3 "instr %08x pc %08x state %p", r0, r2, r10 VFPFMRX r1, FPEXC @ Is the VFP enabled? DBGSTR1 "fpexc %08x", r1 @@ -80,14 +80,14 @@ ldr r3, last_VFP_context_address orr r1, r1, #FPEXC_ENABLE @ user FPEXC has the enable bit set ldr r4, [r3] @ last_VFP_context pointer - bic r2, r1, #FPEXC_EXCEPTION @ make sure exceptions are disabled + bic r5, r1, #FPEXC_EXCEPTION @ make sure exceptions are disabled cmp r4, r10 beq check_for_exception @ we are returning to the same @ process, so the registers are @ still there. In this case, we do @ not want to drop a pending exception. - VFPFMXR FPEXC, r2 @ enable VFP, disable any pending + VFPFMXR FPEXC, r5 @ enable VFP, disable any pending @ exceptions, so we can get at the @ rest of it @@ -96,14 +96,14 @@ DBGSTR1 "save old state %p", r4 cmp r4, #0 beq no_old_VFP_process - VFPFMRX r2, FPSCR @ current status + VFPFMRX r5, FPSCR @ current status VFPFMRX r6, FPINST @ FPINST (always there, rev0 onwards) tst r1, #FPEXC_FPV2 @ is there an FPINST2 to read? VFPFMRX r8, FPINST2, NE @ FPINST2 if needed - avoids reading @ nonexistant reg on rev0 VFPFSTMIA r4 @ save the working registers add r4, r4, #8*16+4 - stmia r4, {r1, r2, r6, r8} @ save FPEXC, FPSCR, FPINST, FPINST2 + stmia r4, {r1, r5, r6, r8} @ save FPEXC, FPSCR, FPINST, FPINST2 @ and point r4 at the word at the @ start of the register dump @@ -112,14 +112,14 @@ str r10, [r3] @ update the last_VFP_context pointer @ Load the saved state back into the VFP add r4, r10, #8*16+4 - ldmia r4, {r1, r2, r6, r8} @ load FPEXC, FPSCR, FPINST, FPINST2 + ldmia r4, {r1, r5, r6, r8} @ load FPEXC, FPSCR, FPINST, FPINST2 VFPFLDMIA r10 @ reload the working registers while @ FPEXC is in a safe state tst r1, #FPEXC_FPV2 @ is there an FPINST2 to write? VFPFMXR FPINST2, r8, NE @ FPINST2 if needed - avoids writing @ nonexistant reg on rev0 VFPFMXR FPINST, r6 - VFPFMXR FPSCR, r2 @ restore status + VFPFMXR FPSCR, r5 @ restore status check_for_exception: tst r1, #FPEXC_EXCEPTION @@ -128,16 +128,16 @@ @ out before setting an FPEXC that @ stops us reading stuff VFPFMXR FPEXC, r1 @ restore FPEXC last - sub r5, r5, #4 - str r5, [sp, #S_PC] @ retry the instruction + sub r2, r2, #4 + str r2, [sp, #S_PC] @ retry the instruction mov pc, r9 @ we think we have handled things look_for_VFP_exceptions: tst r1, #FPEXC_EXCEPTION bne process_exception - VFPFMRX r2, FPSCR - tst r2, #FPSCR_IXE @ IXE doesn't set FPEXC_EXCEPTION ! + VFPFMRX r5, FPSCR + tst r5, #FPSCR_IXE @ IXE doesn't set FPEXC_EXCEPTION ! bne process_exception @ Fall into hand on to next handler - appropriate coproc instr @@ -148,8 +148,8 @@ process_exception: DBGSTR "bounce" - sub r5, r5, #4 - str r5, [sp, #S_PC] @ retry the instruction on exit from + sub r2, r2, #4 + str r2, [sp, #S_PC] @ retry the instruction on exit from @ the imprecise exception handling in @ the support code mov r2, sp @ nothing stacked - regdump is at TOS diff -Nru a/include/asm-arm/arch-h720x/h7202-regs.h b/include/asm-arm/arch-h720x/h7202-regs.h --- a/include/asm-arm/arch-h720x/h7202-regs.h 2005-02-09 18:41:14 -08:00 +++ b/include/asm-arm/arch-h720x/h7202-regs.h 2005-02-09 18:41:14 -08:00 @@ -17,8 +17,12 @@ * which is included by this file. */ -#define SERIAL2_VIRT (IO_VIRT + 0x2d000) -#define SERIAL3_VIRT (IO_VIRT + 0x2e000) +#define SERIAL2_OFS 0x2d000 +#define SERIAL2_BASE (IO_PHYS + SERIAL2_OFS) +#define SERIAL2_VIRT (IO_VIRT + SERIAL2_OFS) +#define SERIAL3_OFS 0x2e000 +#define SERIAL3_BASE (IO_PHYS + SERIAL3_OFS) +#define SERIAL3_VIRT (IO_VIRT + SERIAL3_OFS) /* Matrix Keyboard Controller */ #define KBD_VIRT (IO_VIRT + 0x22000) diff -Nru a/include/asm-arm/arch-h720x/hardware.h b/include/asm-arm/arch-h720x/hardware.h --- a/include/asm-arm/arch-h720x/hardware.h 2005-02-09 18:41:14 -08:00 +++ b/include/asm-arm/arch-h720x/hardware.h 2005-02-09 18:41:14 -08:00 @@ -52,7 +52,15 @@ #define GPIO_C_VIRT (GPIO_VIRT(2)) #define GPIO_D_VIRT (GPIO_VIRT(3)) #define GPIO_E_VIRT (GPIO_VIRT(4)) -#define GPIO_AMULSEL (GPIO_VIRT + 0xA4) +#define GPIO_AMULSEL (GPIO_VIRT(0) + 0xA4) + +#define AMULSEL_USIN2 (1<<5) +#define AMULSEL_USOUT2 (1<<6) +#define AMULSEL_USIN3 (1<<13) +#define AMULSEL_USOUT3 (1<<14) +#define AMULSEL_IRDIN (1<<15) +#define AMULSEL_IRDOUT (1<<7) + /* Register offsets general purpose I/O */ #define GPIO_DATA 0x00 #define GPIO_DIR 0x04 @@ -162,14 +170,16 @@ #define LCD_PALETTE_BASE (IO_VIRT + 0x10400) /* Serial ports */ -#define SERIAL0_VIRT (IO_VIRT + 0x20000) -#define SERIAL1_VIRT (IO_VIRT + 0x21000) - -#define SERIAL0_BASE SERIAL0_VIRT -#define SERIAL1_BASE SERIAL1_VIRT -#define SERIAL2_BASE SERIAL2_VIRT -#define SERIAL3_BASE SERIAL3_VIRT +#define SERIAL0_OFS 0x20000 +#define SERIAL0_VIRT (IO_VIRT + SERIAL0_OFS) +#define SERIAL0_BASE (IO_PHYS + SERIAL0_OFS) + +#define SERIAL1_OFS 0x21000 +#define SERIAL1_VIRT (IO_VIRT + SERIAL1_OFS) +#define SERIAL1_BASE (IO_PHYS + SERIAL1_OFS) +#define SERIAL_ENABLE 0x30 +#define SERIAL_ENABLE_EN (1<<0) /* General defines to pacify gcc */ #define PCIO_BASE (0) /* for inb, outb and friends */ diff -Nru a/include/asm-arm/arch-ixp2000/io.h b/include/asm-arm/arch-ixp2000/io.h --- a/include/asm-arm/arch-ixp2000/io.h 2005-02-09 18:41:14 -08:00 +++ b/include/asm-arm/arch-ixp2000/io.h 2005-02-09 18:41:14 -08:00 @@ -21,14 +21,14 @@ /* * Pick up VMALLOC_END */ -#define ___io(p) ((unsigned long)((p)+IXP2000_PCI_IO_VIRT_BASE)) +#define ___io(p) ((void __iomem *)((p)+IXP2000_PCI_IO_VIRT_BASE)) /* * IXP2000 does not do proper byte-lane conversion for PCI addresses, * so we need to override standard functions. */ -#define alignb(addr) ((addr & ~3) + (3 - (addr & 3))) -#define alignw(addr) ((addr & ~2) + (2 - (addr & 2))) +#define alignb(addr) (((unsigned long)addr & ~3) + (3 - ((unsigned long)addr & 3))) +#define alignw(addr) (((unsigned long)addr & ~2) + (2 - ((unsigned long)addr & 2))) #define outb(v,p) __raw_writeb(v,alignb(___io(p))) #define outw(v,p) __raw_writew((v),alignw(___io(p)))