=== kernels/linux-2.6.15/arch/arm/mach-itdm320-20/core.c ================================================================== --- kernels/linux-2.6.15/arch/arm/mach-itdm320-20/core.c (revision 3) +++ kernels/linux-2.6.15/arch/arm/mach-itdm320-20/core.c (local) @@ -212,6 +212,7 @@ }; +#if defined( CONFIG_MTD_NAND ) static struct mtd_partition nand_partitions[] = { { .name = "filesystem", @@ -226,7 +227,6 @@ .nr_parts = ARRAY_SIZE(nand_partitions), }; -#if defined( CONFIG_MTD_NAND ) static struct resource nand_resource = { .flags = IORESOURCE_MEM, }; === kernels/linux-2.6.15/arch/arm/mach-ntdev-dm320/core.c ================================================================== --- kernels/linux-2.6.15/arch/arm/mach-ntdev-dm320/core.c (revision 3) +++ kernels/linux-2.6.15/arch/arm/mach-ntdev-dm320/core.c (local) @@ -212,6 +212,7 @@ }; +#if defined( CONFIG_MTD_NAND ) static struct mtd_partition nand_partitions[] = { { .name = "filesystem", @@ -226,7 +227,6 @@ .nr_parts = ARRAY_SIZE(nand_partitions), }; -#if defined( CONFIG_MTD_NAND ) static struct resource nand_resource = { .flags = IORESOURCE_MEM, }; === kernels/linux-2.6.15/arch/arm/mach-ntosd-dm320/core.c ================================================================== --- kernels/linux-2.6.15/arch/arm/mach-ntosd-dm320/core.c (revision 3) +++ kernels/linux-2.6.15/arch/arm/mach-ntosd-dm320/core.c (local) @@ -212,6 +212,7 @@ }; +#if defined( CONFIG_MTD_NAND ) static struct mtd_partition nand_partitions[] = { { .name = "filesystem", @@ -226,7 +227,6 @@ .nr_parts = ARRAY_SIZE(nand_partitions), }; -#if defined( CONFIG_MTD_NAND ) static struct resource nand_resource = { .flags = IORESOURCE_MEM, }; === kernels/linux-2.6.15/arch/arm/mach-ntr3-dm320/core.c ================================================================== --- kernels/linux-2.6.15/arch/arm/mach-ntr3-dm320/core.c (revision 3) +++ kernels/linux-2.6.15/arch/arm/mach-ntr3-dm320/core.c (local) @@ -212,6 +212,7 @@ }; +#if defined( CONFIG_MTD_NAND ) static struct mtd_partition nand_partitions[] = { { .name = "filesystem", @@ -226,7 +227,6 @@ .nr_parts = ARRAY_SIZE(nand_partitions), }; -#if defined( CONFIG_MTD_NAND ) static struct resource nand_resource = { .flags = IORESOURCE_MEM, }; === kernels/linux-2.6.15/drivers/ide/arm/itdm320-20-cfc.c ================================================================== --- kernels/linux-2.6.15/drivers/ide/arm/itdm320-20-cfc.c (revision 3) +++ kernels/linux-2.6.15/drivers/ide/arm/itdm320-20-cfc.c (local) @@ -108,7 +108,7 @@ writesl(port, addr, count); } -#if GIO_CFC_DETECT +#ifdef GIO_CFC_DETECT typedef struct cfc_data_s { int inserted; @@ -238,7 +238,7 @@ "ide_hwifs[]. Not enabled.\n"); return; } -#if GIO_CFC_DETECT +#ifdef GIO_CFC_DETECT cfc_data.index = i; cfc_data.inserted = 0; #endif @@ -252,7 +252,7 @@ printk(KERN_ERR "Gio %d, was previously registered!\n", GIO_CFC_RESET); return; } -#if GIO_CFC_DETECT +#ifdef GIO_CFC_DETECT if(request_gio(GIO_CFC_DETECT)) { printk(KERN_ERR "Gio %d, was previously regeistered!\n", GIO_CFC_DETECT); @@ -263,7 +263,7 @@ gio_set_dir(GIO_CFC_HOTPLUG, bit_low); gio_set_dir(GIO_CFC_RESET, bit_low); -#if GIO_CFC_DETECT +#ifdef GIO_CFC_DETECT if(gio_get_bitset(GIO_CFC_DETECT)==0) { #endif @@ -273,7 +273,7 @@ mdelay(5); gio_set_bitclr(GIO_CFC_HOTPLUG); -#if GIO_CFC_DETECT +#ifdef GIO_CFC_DETECT cfc_data.inserted =1; } #endif @@ -289,7 +289,7 @@ printk("Ingenient onboard IDE/CFC configured as device %i\n", i); -#if GIO_CFC_DETECT +#ifdef GIO_CFC_DETECT gio_enable_irq(GIO_CFC_DETECT, GIO_ANY_EDGE); request_irq(GIO_CFC_DETECT+21,ide_cfc_hotplug_handler,0,"ide_cfc_hotplug",NULL); INIT_WORK(&cfc_work, cfc_wq_handle, &cfc_data); === kernels/linux-2.6.15/drivers/ide/arm/itdm320-20-hdd.c ================================================================== --- kernels/linux-2.6.15/drivers/ide/arm/itdm320-20-hdd.c (revision 3) +++ kernels/linux-2.6.15/drivers/ide/arm/itdm320-20-hdd.c (local) @@ -116,7 +116,7 @@ // invalidate cache, so we read new data from DRAM //arm926_dma_inv_range((unsigned long)addr, (unsigned long)addr + count ); - consistent_sync( (unsigned long)addr, count, DMA_FROM_DEVICE ); + consistent_sync( addr, count, DMA_FROM_DEVICE ); } #else @@ -182,7 +182,7 @@ // flush write data to DRAM // arm926_dma_flush_range((unsigned long)addr, (unsigned long)addr + count ); - consistent_sync( (unsigned long)addr, count, DMA_TO_DEVICE ); + consistent_sync( addr, count, DMA_TO_DEVICE ); while (inw(IO_EMIF_DMACTL) & 0x0001); // wait for DMA completion === kernels/linux-2.6.15/drivers/ide/ide-taskfile.c ================================================================== --- kernels/linux-2.6.15/drivers/ide/ide-taskfile.c (revision 3) +++ kernels/linux-2.6.15/drivers/ide/ide-taskfile.c (local) @@ -247,6 +247,8 @@ /* Wait for RX DMA to complete. */ /* Read performance increases 50% if we wait here */ /* instead of inside hwif->INSW() */ + void itdm320_20_ide_wait_dma_complete(void); + itdm320_20_ide_wait_dma_complete( ); #endif /* === kernels/linux-2.6.15/drivers/mem_st_pro/mem_stk_block.c ================================================================== --- kernels/linux-2.6.15/drivers/mem_st_pro/mem_stk_block.c (revision 3) +++ kernels/linux-2.6.15/drivers/mem_st_pro/mem_stk_block.c (local) @@ -654,14 +654,14 @@ } if (ms_card_ms(card)){ - printk(KERN_INFO "DiskName %s: card-id: %s card capacity: %dKiB readonly: %s\n", + printk(KERN_INFO "DiskName %s: card-id: %s card capacity: %luKiB readonly: %s\n", md->disk->disk_name, ms_card_id(card), - (card->sys_info.block_size * card->sys_info.user_area_block), + (unsigned long)(card->sys_info.block_size * card->sys_info.user_area_block), ms_card_readonly(card)?"(ro)":"(rw)"); }else{ if (ms_card_ms_pro(card)){ - printk(KERN_INFO "DiskName %s: card-id: %s card capacity: %dKiB readonly: %s\n", + printk(KERN_INFO "DiskName %s: card-id: %s card capacity: %luKiB readonly: %s\n", md->disk->disk_name, ms_card_id(card), (unsigned long)(card->sys_info.unit_size * card->sys_info.block_size * card->sys_info.user_area_block)>>10, === kernels/linux-2.6.15/drivers/mem_st_pro/mem_stk_low.c ================================================================== --- kernels/linux-2.6.15/drivers/mem_st_pro/mem_stk_low.c (revision 3) +++ kernels/linux-2.6.15/drivers/mem_st_pro/mem_stk_low.c (local) @@ -62,12 +62,14 @@ static int clk_use(struct clk *clk); static unsigned long clk_get_rate(struct clk *clk); static void clk_unuse(struct clk *clk); -void enable_interrupt(void); void change_clk25m(void); void display_MS_CONTROL_REGS(void); static void enable_interrupt(void); static void disable_interrupt(void); +/* mem_stk.c */ +unsigned short is_command_end(unsigned char reg); + static int command_in_progress = 0; static int dma_in_progress = 0; static DECLARE_COMPLETION(dma_complete); === kernels/linux-2.6.15/drivers/mmc/dm320_mmc.c ================================================================== --- kernels/linux-2.6.15/drivers/mmc/dm320_mmc.c (revision 3) +++ kernels/linux-2.6.15/drivers/mmc/dm320_mmc.c (local) @@ -44,17 +44,6 @@ MODULE_LICENSE("GPL"); #define ROUND2BLKSZ(rm, sz) (((rm) + (sz) - 1) / (sz)) -static unsigned short mmc_inw(unsigned long port) -{ - unsigned short retval = inw(port); - return retval; -} - -static unsigned short mmc_outw(unsigned short data, unsigned long port) -{ - outw(data,port); - return 0; -} #define DRIVER_NAME "SD-MMC" // remembers the allocated data structure. @@ -228,7 +217,7 @@ outw(inw(IO_CLK_INV) | 0x1,IO_CLK_INV); /* set function clock */ - outw(((mmc_inw(IO_CLK_DIV3) & 0xFF00) | (0x01)) ,IO_CLK_DIV3); + outw(((inw(IO_CLK_DIV3) & 0xFF00) | (0x01)) ,IO_CLK_DIV3); udelay(500); @@ -651,7 +640,7 @@ struct mmc_command cmd; struct mmci_host *host = mmc_priv(mmc); u16 irq_mask; - u16 cmd1,reg; + u16 cmd1; u16 no_of_blks; //u16 blk_sz = 1<data->blksz_bits; u16 blk_sz = 512; @@ -811,7 +800,6 @@ mrq->data->bytes_xfered = host->data_xfered; mmc_debug_msg ("mrq->data->bytes_xfered : %d\n",mrq->data->bytes_xfered); - complete_write: mmc_umask_irq(irq_mask); return 0; } @@ -823,7 +811,7 @@ u32 marg; struct mmc_command cmd; struct mmci_host *host = mmc_priv(mmc); - u16 cmd1,reg; + u16 cmd1; u16 irq_mask; //u16 blk_sz = 1<data->blksz_bits; u16 blk_sz = 512; @@ -950,7 +938,6 @@ mrq->data->bytes_xfered = host->data_xfered; mmc_debug_msg ("mrq->data->bytes_xfered : %d\n",mrq->data->bytes_xfered); - complete_read: mmc_umask_irq(irq_mask); host->data = NULL; return 0; === kernels/linux-2.6.15/drivers/mmc/mmc.c ================================================================== --- kernels/linux-2.6.15/drivers/mmc/mmc.c (revision 3) +++ kernels/linux-2.6.15/drivers/mmc/mmc.c (local) @@ -807,9 +807,9 @@ break; } - card = mmc_find_card(host, cmd.resp); + card = mmc_find_card(host, (u32 *)cmd.resp); if (!card) { - card = mmc_alloc_card(host, cmd.resp, &first_rca); + card = mmc_alloc_card(host, (u32 *)cmd.resp, &first_rca); if (IS_ERR(card)) { err = PTR_ERR(card); break; === kernels/linux-2.6.15/drivers/mtd/maps/ntdev.c ================================================================== --- kernels/linux-2.6.15/drivers/mtd/maps/ntdev.c (revision 3) +++ kernels/linux-2.6.15/drivers/mtd/maps/ntdev.c (local) @@ -75,13 +75,13 @@ const char **type; printk(KERN_NOTICE "Neuros NOR flash device: %x at %x\n", WINDOW_SIZE, WINDOW_ADDR); - itdm_map.virt = (unsigned long)ioremap(WINDOW_ADDR, WINDOW_SIZE); + itdm_map.virt = ioremap(WINDOW_ADDR, WINDOW_SIZE); if (!itdm_map.virt) { printk("Failed to ioremap\n"); return -EIO; } - printk(KERN_NOTICE "Flash device virtual mapping at %lx\n", itdm_map.virt); + printk(KERN_NOTICE "Flash device virtual mapping at %p\n", itdm_map.virt); simple_map_init(&itdm_map); === kernels/linux-2.6.15/drivers/mtd/maps/ntosd.c ================================================================== --- kernels/linux-2.6.15/drivers/mtd/maps/ntosd.c (revision 3) +++ kernels/linux-2.6.15/drivers/mtd/maps/ntosd.c (local) @@ -66,13 +66,13 @@ const char **type; printk(KERN_NOTICE "Neuros NOR flash device: %x at %x\n", WINDOW_SIZE, WINDOW_ADDR); - itdm_map.virt = (unsigned long)ioremap(WINDOW_ADDR, WINDOW_SIZE); + itdm_map.virt = ioremap(WINDOW_ADDR, WINDOW_SIZE); if (!itdm_map.virt) { printk("Failed to ioremap\n"); return -EIO; } - printk(KERN_NOTICE "Flash device virtual mapping at %lx\n", itdm_map.virt); + printk(KERN_NOTICE "Flash device virtual mapping at %p\n", itdm_map.virt); simple_map_init(&itdm_map); === kernels/linux-2.6.15/drivers/mtd/maps/ntr3.c ================================================================== --- kernels/linux-2.6.15/drivers/mtd/maps/ntr3.c (revision 3) +++ kernels/linux-2.6.15/drivers/mtd/maps/ntr3.c (local) @@ -74,13 +74,13 @@ const char **type; printk(KERN_NOTICE "Neuros NOR flash device: %x at %x\n", WINDOW_SIZE, WINDOW_ADDR); - itdm_map.virt = (unsigned long)ioremap(WINDOW_ADDR, WINDOW_SIZE); + itdm_map.virt = ioremap(WINDOW_ADDR, WINDOW_SIZE); if (!itdm_map.virt) { printk("Failed to ioremap\n"); return -EIO; } - printk(KERN_NOTICE "Flash device virtual mapping at %lx\n", itdm_map.virt); + printk(KERN_NOTICE "Flash device virtual mapping at %p\n", itdm_map.virt); simple_map_init(&itdm_map); === kernels/linux-2.6.15/drivers/net/arm/dm9ks.c ================================================================== --- kernels/linux-2.6.15/drivers/net/arm/dm9ks.c (revision 3) +++ kernels/linux-2.6.15/drivers/net/arm/dm9ks.c (local) @@ -235,7 +235,9 @@ static void iow(board_info_t *, int, u8); static u16 phy_read(board_info_t *, int); static void phy_write(board_info_t *, int, u16); +#ifdef CURRENTLY_UNUSED static u16 read_srom_word(board_info_t *, int); +#endif static void dm9000_hash_table(struct net_device *); static void dmfe_timeout(struct net_device *); static void dmfe_reset(struct net_device *); @@ -987,6 +989,7 @@ } +#ifdef CURRENTLY_UNUSED /* Read a word data from SROM */ @@ -998,6 +1001,7 @@ iow(db, DM9KS_EPCR, 0x0); return (ior(db, DM9KS_EPDRL) + (ior(db, DM9KS_EPDRH) << 8) ); } +#endif /* Set DM9000A/DM9010 multicast address @@ -1184,12 +1188,12 @@ return 0; } -static int dm9k_drv_suspend(struct device *dev, u32 state, u32 level) +static int dm9k_drv_suspend(struct device *dev, pm_message_t state) { return 0; } -static int dm9k_drv_resume(struct device *dev, u32 level) +static int dm9k_drv_resume(struct device *dev) { return 0; } === kernels/linux-2.6.15/drivers/net/arm/smc91x.c ================================================================== --- kernels/linux-2.6.15/drivers/net/arm/smc91x.c (revision 3) +++ kernels/linux-2.6.15/drivers/net/arm/smc91x.c (local) @@ -2337,14 +2337,14 @@ #endif #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,14)) -static int smc_drv_suspend(struct platform_device *dev, pm_message_t state) +static int smc_drv_suspend(struct device *dev, pm_message_t state) { - struct net_device *ndev = platform_get_drvdata(dev); + struct net_device *ndev = dev_get_drvdata(dev); if (ndev) { if (netif_running(ndev)) { netif_device_detach(ndev); - smc_shutdown(ndev); + smc_shutdown(ndev->base_addr); //smc_phy_powerdown(ndev); } } @@ -2367,13 +2367,16 @@ #endif #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,14)) -static int smc_drv_resume(struct platform_device *dev) +static int smc_drv_resume(struct device *dev) { - struct net_device *ndev = platform_get_drvdata(dev); + struct platform_device *pdev = to_platform_device(dev); + struct net_device *ndev = dev_get_drvdata(dev); if (ndev) { struct smc_local *lp = netdev_priv(ndev); - smc_enable_device(dev); + + if (pdev->num_resources == 3) + smc_enable_device(pdev->resource[2].start); if (netif_running(ndev)) { smc_reset(ndev); smc_enable(ndev); === kernels/linux-2.6.15/drivers/net/arm/smc91x.h ================================================================== --- kernels/linux-2.6.15/drivers/net/arm/smc91x.h (revision 3) +++ kernels/linux-2.6.15/drivers/net/arm/smc91x.h (local) @@ -778,7 +778,7 @@ * only uses the bank argument for debugging purposes (when enabled). */ -#if SMC_DEBUG > 0 +#if defined(SMC_DEBUG) && SMC_DEBUG > 0 #define SMC_REG(reg, bank) \ ({ \ int __b = SMC_CURRENT_BANK(); \ === kernels/linux-2.6.15/drivers/serial/serial_ingenient.c ================================================================== --- kernels/linux-2.6.15/drivers/serial/serial_ingenient.c (revision 3) +++ kernels/linux-2.6.15/drivers/serial/serial_ingenient.c (local) @@ -207,14 +207,12 @@ /* Start of UART Operation Functions */ -static void it_uart_stop_tx(struct uart_port* port, - unsigned int tty_stop) +static void it_uart_stop_tx(struct uart_port* port) { __uart_disable_tx_int(port); } -static void it_uart_start_tx(struct uart_port* port, - unsigned int tty_start) +static void it_uart_start_tx(struct uart_port* port) { __uart_enable_tx_int(port); } @@ -431,7 +429,7 @@ return; } if (uart_circ_empty(xmit) || uart_tx_stopped(port)) { - it_uart_stop_tx(port, 0); + it_uart_stop_tx(port); return; } @@ -472,7 +470,7 @@ uart_write_wakeup(port); if (uart_circ_empty(xmit)) - it_uart_stop_tx(port, 0); + it_uart_stop_tx(port); } static irqreturn_t it_uart_int(int irq, void* dev_id, struct pt_regs* regs) @@ -563,7 +561,7 @@ static struct uart_port it_ports[UART_NR] = { { .iobase = IO_UART0_DTRR, - .mapbase = __io(IO_UART0_DTRR), + .mapbase = IO_ADDRESS(IO_UART0_DTRR), .iotype = SERIAL_IO_MEM, .irq = IRQ_UART0, .uartclk = CONFIG_SYS_CLK_FREQ, @@ -574,7 +572,7 @@ }, { .iobase = IO_UART1_DTRR, - .mapbase = __io(IO_UART1_DTRR), + .mapbase = IO_ADDRESS(IO_UART1_DTRR), .iotype = SERIAL_IO_MEM, .irq = IRQ_UART1, .uartclk = CONFIG_SYS_CLK_FREQ, === kernels/linux-2.6.15/drivers/usb/host/dm320/dm320-hcd.c ================================================================== --- kernels/linux-2.6.15/drivers/usb/host/dm320/dm320-hcd.c (revision 3) +++ kernels/linux-2.6.15/drivers/usb/host/dm320/dm320-hcd.c (local) @@ -844,7 +844,6 @@ int ep_index = 0; int is_out; u8 csr_sts=0; - u16 flags; if (!transfer_started) { === kernels/linux-2.6.15/include/asm-arm/arch-itdm320-20/entry-macro.S ================================================================== --- kernels/linux-2.6.15/include/asm-arm/arch-itdm320-20/entry-macro.S (revision 3) +++ kernels/linux-2.6.15/include/asm-arm/arch-itdm320-20/entry-macro.S (local) @@ -13,9 +13,8 @@ #include /* should be moved into entry-macro.S */ #include /* should be moved into entry-macro.S */ #include -#include - .equ efiqr, __io(IO_INTC_FIQ0) & 0x20 + .equ efiqr, IO_ADDRESS(IO_INTC_FIQ0) & 0x20 .macro disable_fiq @ mov r12, #efiqr @ strb r12, [r12] @@ -33,7 +32,7 @@ * Z conditions means no outstanding interrupt */ - ldr \tmp, =__io(IO_INTC_IRQENTRY0) @ Addr LS 16-bits of entry + ldr \tmp, =IO_ADDRESS(IO_INTC_IRQENTRY0) @ Addr LS 16-bits of entry ldrh \irqnr, [\tmp] @ LS 16-bits of entry movs \irqnr, \irqnr, lsr #2 @ Convert to index (set Z) subne \irqnr, \irqnr, #1 @ Offset if non-zero === kernels/linux-2.6.15/include/asm-arm/arch-itdm320-20/io.h ================================================================== --- kernels/linux-2.6.15/include/asm-arm/arch-itdm320-20/io.h (revision 3) +++ kernels/linux-2.6.15/include/asm-arm/arch-itdm320-20/io.h (local) @@ -1,5 +1,5 @@ /* - * linux/include/asm-arm/arch-itdm320/io.h + * linux/include/asm-arm/arch-itdm320-20/io.h * * Copyright (C) 1999 ARM Limited * @@ -25,8 +25,15 @@ #define IO_SPACE_LIMIT 0xffffffff -#define __io(a) (IO_BASE | (a)) -#define __mem_pci(a) ((unsigned long)(a)) -#define __mem_isa(a) ((unsigned long)(a)) +/* Typesafe definition of __io */ +static inline void __iomem *__io(unsigned long addr) { + return (void __iomem *)(IO_BASE | addr); +} +/* Satisfy constructs like "#ifdef __io" */ +#define __io(a) __io(a) + +#define __mem_pci(a) ((void __iomem *)(a)) +#define __mem_isa(a) ((void __iomem *)(a)) + #endif === kernels/linux-2.6.15/include/asm-arm/arch-ntdev-dm320/entry-macro.S ================================================================== --- kernels/linux-2.6.15/include/asm-arm/arch-ntdev-dm320/entry-macro.S (revision 3) +++ kernels/linux-2.6.15/include/asm-arm/arch-ntdev-dm320/entry-macro.S (local) @@ -13,9 +13,8 @@ #include /* should be moved into entry-macro.S */ #include /* should be moved into entry-macro.S */ #include -#include - .equ efiqr, __io(IO_INTC_FIQ0) & 0x20 + .equ efiqr, IO_ADDRESS(IO_INTC_FIQ0) & 0x20 .macro disable_fiq @ mov r12, #efiqr @ strb r12, [r12] @@ -33,7 +32,7 @@ * Z conditions means no outstanding interrupt */ - ldr \tmp, =__io(IO_INTC_IRQENTRY0) @ Addr LS 16-bits of entry + ldr \tmp, =IO_ADDRESS(IO_INTC_IRQENTRY0) @ Addr LS 16-bits of entry ldrh \irqnr, [\tmp] @ LS 16-bits of entry movs \irqnr, \irqnr, lsr #2 @ Convert to index (set Z) subne \irqnr, \irqnr, #1 @ Offset if non-zero === kernels/linux-2.6.15/include/asm-arm/arch-ntdev-dm320/io.h ================================================================== --- kernels/linux-2.6.15/include/asm-arm/arch-ntdev-dm320/io.h (revision 3) +++ kernels/linux-2.6.15/include/asm-arm/arch-ntdev-dm320/io.h (local) @@ -1,5 +1,5 @@ /* - * linux/include/asm-arm/arch-itdm320/io.h + * linux/include/asm-arm/arch-ntdev-dm320/io.h * * Copyright (C) 1999 ARM Limited * @@ -25,8 +25,15 @@ #define IO_SPACE_LIMIT 0xffffffff -#define __io(a) (IO_BASE | (a)) -#define __mem_pci(a) ((unsigned long)(a)) -#define __mem_isa(a) ((unsigned long)(a)) +/* Typesafe definition of __io */ +static inline void __iomem *__io(unsigned long addr) { + return (void __iomem *)(IO_BASE | addr); +} +/* Satisfy constructs like "#ifdef __io" */ +#define __io(a) __io(a) + +#define __mem_pci(a) ((void __iomem *)(a)) +#define __mem_isa(a) ((void __iomem *)(a)) + #endif === kernels/linux-2.6.15/include/asm-arm/arch-ntosd-dm320/entry-macro.S ================================================================== --- kernels/linux-2.6.15/include/asm-arm/arch-ntosd-dm320/entry-macro.S (revision 3) +++ kernels/linux-2.6.15/include/asm-arm/arch-ntosd-dm320/entry-macro.S (local) @@ -13,9 +13,8 @@ #include /* should be moved into entry-macro.S */ #include /* should be moved into entry-macro.S */ #include -#include - .equ efiqr, __io(IO_INTC_FIQ0) & 0x20 + .equ efiqr, IO_ADDRESS(IO_INTC_FIQ0) & 0x20 .macro disable_fiq @ mov r12, #efiqr @ strb r12, [r12] @@ -33,7 +32,7 @@ * Z conditions means no outstanding interrupt */ - ldr \tmp, =__io(IO_INTC_IRQENTRY0) @ Addr LS 16-bits of entry + ldr \tmp, =IO_ADDRESS(IO_INTC_IRQENTRY0) @ Addr LS 16-bits of entry ldrh \irqnr, [\tmp] @ LS 16-bits of entry movs \irqnr, \irqnr, lsr #2 @ Convert to index (set Z) subne \irqnr, \irqnr, #1 @ Offset if non-zero === kernels/linux-2.6.15/include/asm-arm/arch-ntosd-dm320/io.h ================================================================== --- kernels/linux-2.6.15/include/asm-arm/arch-ntosd-dm320/io.h (revision 3) +++ kernels/linux-2.6.15/include/asm-arm/arch-ntosd-dm320/io.h (local) @@ -1,5 +1,5 @@ /* - * linux/include/asm-arm/arch-itdm320/io.h + * linux/include/asm-arm/arch-ntosd-dm320/io.h * * Copyright (C) 1999 ARM Limited * @@ -25,8 +25,15 @@ #define IO_SPACE_LIMIT 0xffffffff -#define __io(a) (IO_BASE | (a)) -#define __mem_pci(a) ((unsigned long)(a)) -#define __mem_isa(a) ((unsigned long)(a)) +/* Typesafe definition of __io */ +static inline void __iomem *__io(unsigned long addr) { + return (void __iomem *)(IO_BASE | addr); +} +/* Satisfy constructs like "#ifdef __io" */ +#define __io(a) __io(a) + +#define __mem_pci(a) ((void __iomem *)(a)) +#define __mem_isa(a) ((void __iomem *)(a)) + #endif === kernels/linux-2.6.15/include/asm-arm/arch-ntr3-dm320/entry-macro.S ================================================================== --- kernels/linux-2.6.15/include/asm-arm/arch-ntr3-dm320/entry-macro.S (revision 3) +++ kernels/linux-2.6.15/include/asm-arm/arch-ntr3-dm320/entry-macro.S (local) @@ -13,9 +13,8 @@ #include /* should be moved into entry-macro.S */ #include /* should be moved into entry-macro.S */ #include -#include - .equ efiqr, __io(IO_INTC_FIQ0) & 0x20 + .equ efiqr, IO_ADDRESS(IO_INTC_FIQ0) & 0x20 .macro disable_fiq @ mov r12, #efiqr @ strb r12, [r12] @@ -33,7 +32,7 @@ * Z conditions means no outstanding interrupt */ - ldr \tmp, =__io(IO_INTC_IRQENTRY0) @ Addr LS 16-bits of entry + ldr \tmp, =IO_ADDRESS(IO_INTC_IRQENTRY0) @ Addr LS 16-bits of entry ldrh \irqnr, [\tmp] @ LS 16-bits of entry movs \irqnr, \irqnr, lsr #2 @ Convert to index (set Z) subne \irqnr, \irqnr, #1 @ Offset if non-zero === kernels/linux-2.6.15/include/asm-arm/arch-ntr3-dm320/io.h ================================================================== --- kernels/linux-2.6.15/include/asm-arm/arch-ntr3-dm320/io.h (revision 3) +++ kernels/linux-2.6.15/include/asm-arm/arch-ntr3-dm320/io.h (local) @@ -1,5 +1,5 @@ /* - * linux/include/asm-arm/arch-itdm320/io.h + * linux/include/asm-arm/arch-ntr3-dm320/io.h * * Copyright (C) 1999 ARM Limited * @@ -25,8 +25,15 @@ #define IO_SPACE_LIMIT 0xffffffff -#define __io(a) (IO_BASE | (a)) -#define __mem_pci(a) ((unsigned long)(a)) -#define __mem_isa(a) ((unsigned long)(a)) +/* Typesafe definition of __io */ +static inline void __iomem *__io(unsigned long addr) { + return (void __iomem *)(IO_BASE | addr); +} +/* Satisfy constructs like "#ifdef __io" */ +#define __io(a) __io(a) + +#define __mem_pci(a) ((void __iomem *)(a)) +#define __mem_isa(a) ((void __iomem *)(a)) + #endif