Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] 3490/1: i.MX: move uart resources to board files [ARM] 3488/1: make icedcc_putc do the right thing [ARM] 3487/1: IXP4xx: Support non-PCI systems [ARM] 3486/1: Mark memory as clobbered by the ARM _syscallX() macros
This commit is contained in:
commit
f9cc8475e7
|
@ -150,8 +150,6 @@ config ARCH_IOP3XX
|
||||||
|
|
||||||
config ARCH_IXP4XX
|
config ARCH_IXP4XX
|
||||||
bool "IXP4xx-based"
|
bool "IXP4xx-based"
|
||||||
select DMABOUNCE
|
|
||||||
select PCI
|
|
||||||
help
|
help
|
||||||
Support for Intel's IXP4XX (XScale) family of processors.
|
Support for Intel's IXP4XX (XScale) family of processors.
|
||||||
|
|
||||||
|
|
|
@ -38,10 +38,10 @@ static void icedcc_putc(int ch)
|
||||||
if (--i < 0)
|
if (--i < 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
asm("mrc p14, 0, %0, c0, c0, 0" : "=r" (status));
|
asm volatile ("mrc p14, 0, %0, c0, c0, 0" : "=r" (status));
|
||||||
} while (status & 2);
|
} while (status & 2);
|
||||||
|
|
||||||
asm("mcr p15, 0, %0, c1, c0, 0" : : "r" (ch));
|
asm("mcr p14, 0, %0, c1, c0, 0" : : "r" (ch));
|
||||||
}
|
}
|
||||||
|
|
||||||
#define putc(ch) icedcc_putc(ch)
|
#define putc(ch) icedcc_putc(ch)
|
||||||
|
|
|
@ -195,56 +195,6 @@ void __init imx_set_mmc_info(struct imxmmc_platform_data *info)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(imx_set_mmc_info);
|
EXPORT_SYMBOL(imx_set_mmc_info);
|
||||||
|
|
||||||
static struct resource imx_uart1_resources[] = {
|
|
||||||
[0] = {
|
|
||||||
.start = 0x00206000,
|
|
||||||
.end = 0x002060FF,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
},
|
|
||||||
[1] = {
|
|
||||||
.start = (UART1_MINT_RX),
|
|
||||||
.end = (UART1_MINT_RX),
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
[2] = {
|
|
||||||
.start = (UART1_MINT_TX),
|
|
||||||
.end = (UART1_MINT_TX),
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device imx_uart1_device = {
|
|
||||||
.name = "imx-uart",
|
|
||||||
.id = 0,
|
|
||||||
.num_resources = ARRAY_SIZE(imx_uart1_resources),
|
|
||||||
.resource = imx_uart1_resources,
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct resource imx_uart2_resources[] = {
|
|
||||||
[0] = {
|
|
||||||
.start = 0x00207000,
|
|
||||||
.end = 0x002070FF,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
},
|
|
||||||
[1] = {
|
|
||||||
.start = (UART2_MINT_RX),
|
|
||||||
.end = (UART2_MINT_RX),
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
[2] = {
|
|
||||||
.start = (UART2_MINT_TX),
|
|
||||||
.end = (UART2_MINT_TX),
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device imx_uart2_device = {
|
|
||||||
.name = "imx-uart",
|
|
||||||
.id = 1,
|
|
||||||
.num_resources = ARRAY_SIZE(imx_uart2_resources),
|
|
||||||
.resource = imx_uart2_resources,
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct imxfb_mach_info imx_fb_info;
|
static struct imxfb_mach_info imx_fb_info;
|
||||||
|
|
||||||
void __init set_imx_fb_info(struct imxfb_mach_info *hard_imx_fb_info)
|
void __init set_imx_fb_info(struct imxfb_mach_info *hard_imx_fb_info)
|
||||||
|
@ -283,8 +233,6 @@ static struct platform_device imxfb_device = {
|
||||||
static struct platform_device *devices[] __initdata = {
|
static struct platform_device *devices[] __initdata = {
|
||||||
&imx_mmc_device,
|
&imx_mmc_device,
|
||||||
&imxfb_device,
|
&imxfb_device,
|
||||||
&imx_uart1_device,
|
|
||||||
&imx_uart2_device,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct map_desc imx_io_desc[] __initdata = {
|
static struct map_desc imx_io_desc[] __initdata = {
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
|
|
||||||
#include <asm/mach/arch.h>
|
#include <asm/mach/arch.h>
|
||||||
#include <asm/arch/mmc.h>
|
#include <asm/arch/mmc.h>
|
||||||
|
#include <asm/arch/imx-uart.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include "generic.h"
|
#include "generic.h"
|
||||||
|
|
||||||
|
@ -48,8 +49,70 @@ static struct platform_device cs89x0_device = {
|
||||||
.resource = cs89x0_resources,
|
.resource = cs89x0_resources,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct imxuart_platform_data uart_pdata = {
|
||||||
|
.flags = IMXUART_HAVE_RTSCTS,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct resource imx_uart1_resources[] = {
|
||||||
|
[0] = {
|
||||||
|
.start = 0x00206000,
|
||||||
|
.end = 0x002060FF,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
[1] = {
|
||||||
|
.start = (UART1_MINT_RX),
|
||||||
|
.end = (UART1_MINT_RX),
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
.start = (UART1_MINT_TX),
|
||||||
|
.end = (UART1_MINT_TX),
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct platform_device imx_uart1_device = {
|
||||||
|
.name = "imx-uart",
|
||||||
|
.id = 0,
|
||||||
|
.num_resources = ARRAY_SIZE(imx_uart1_resources),
|
||||||
|
.resource = imx_uart1_resources,
|
||||||
|
.dev = {
|
||||||
|
.platform_data = &uart_pdata,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct resource imx_uart2_resources[] = {
|
||||||
|
[0] = {
|
||||||
|
.start = 0x00207000,
|
||||||
|
.end = 0x002070FF,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
[1] = {
|
||||||
|
.start = (UART2_MINT_RX),
|
||||||
|
.end = (UART2_MINT_RX),
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
.start = (UART2_MINT_TX),
|
||||||
|
.end = (UART2_MINT_TX),
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct platform_device imx_uart2_device = {
|
||||||
|
.name = "imx-uart",
|
||||||
|
.id = 1,
|
||||||
|
.num_resources = ARRAY_SIZE(imx_uart2_resources),
|
||||||
|
.resource = imx_uart2_resources,
|
||||||
|
.dev = {
|
||||||
|
.platform_data = &uart_pdata,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
static struct platform_device *devices[] __initdata = {
|
static struct platform_device *devices[] __initdata = {
|
||||||
&cs89x0_device,
|
&cs89x0_device,
|
||||||
|
&imx_uart1_device,
|
||||||
|
&imx_uart2_device,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_MMC_IMX
|
#ifdef CONFIG_MMC_IMX
|
||||||
|
@ -75,6 +138,17 @@ mx1ads_init(void)
|
||||||
imx_gpio_mode(GPIO_PORTB | GPIO_GIUS | GPIO_IN | 20);
|
imx_gpio_mode(GPIO_PORTB | GPIO_GIUS | GPIO_IN | 20);
|
||||||
imx_set_mmc_info(&mx1ads_mmc_info);
|
imx_set_mmc_info(&mx1ads_mmc_info);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
imx_gpio_mode(PC9_PF_UART1_CTS);
|
||||||
|
imx_gpio_mode(PC10_PF_UART1_RTS);
|
||||||
|
imx_gpio_mode(PC11_PF_UART1_TXD);
|
||||||
|
imx_gpio_mode(PC12_PF_UART1_RXD);
|
||||||
|
|
||||||
|
imx_gpio_mode(PB28_PF_UART2_CTS);
|
||||||
|
imx_gpio_mode(PB29_PF_UART2_RTS);
|
||||||
|
imx_gpio_mode(PB30_PF_UART2_TXD);
|
||||||
|
imx_gpio_mode(PB31_PF_UART2_RXD);
|
||||||
|
|
||||||
platform_add_devices(devices, ARRAY_SIZE(devices));
|
platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ comment "IXP4xx Platforms"
|
||||||
config MACH_NSLU2
|
config MACH_NSLU2
|
||||||
bool
|
bool
|
||||||
prompt "Linksys NSLU2"
|
prompt "Linksys NSLU2"
|
||||||
|
select PCI
|
||||||
help
|
help
|
||||||
Say 'Y' here if you want your kernel to support Linksys's
|
Say 'Y' here if you want your kernel to support Linksys's
|
||||||
NSLU2 NAS device. For more information on this platform,
|
NSLU2 NAS device. For more information on this platform,
|
||||||
|
@ -18,6 +19,7 @@ config MACH_NSLU2
|
||||||
|
|
||||||
config ARCH_AVILA
|
config ARCH_AVILA
|
||||||
bool "Avila"
|
bool "Avila"
|
||||||
|
select PCI
|
||||||
help
|
help
|
||||||
Say 'Y' here if you want your kernel to support the Gateworks
|
Say 'Y' here if you want your kernel to support the Gateworks
|
||||||
Avila Network Platform. For more information on this platform,
|
Avila Network Platform. For more information on this platform,
|
||||||
|
@ -25,6 +27,7 @@ config ARCH_AVILA
|
||||||
|
|
||||||
config ARCH_ADI_COYOTE
|
config ARCH_ADI_COYOTE
|
||||||
bool "Coyote"
|
bool "Coyote"
|
||||||
|
select PCI
|
||||||
help
|
help
|
||||||
Say 'Y' here if you want your kernel to support the ADI
|
Say 'Y' here if you want your kernel to support the ADI
|
||||||
Engineering Coyote Gateway Reference Platform. For more
|
Engineering Coyote Gateway Reference Platform. For more
|
||||||
|
@ -32,6 +35,7 @@ config ARCH_ADI_COYOTE
|
||||||
|
|
||||||
config ARCH_IXDP425
|
config ARCH_IXDP425
|
||||||
bool "IXDP425"
|
bool "IXDP425"
|
||||||
|
select PCI
|
||||||
help
|
help
|
||||||
Say 'Y' here if you want your kernel to support Intel's
|
Say 'Y' here if you want your kernel to support Intel's
|
||||||
IXDP425 Development Platform (Also known as Richfield).
|
IXDP425 Development Platform (Also known as Richfield).
|
||||||
|
@ -39,6 +43,7 @@ config ARCH_IXDP425
|
||||||
|
|
||||||
config MACH_IXDPG425
|
config MACH_IXDPG425
|
||||||
bool "IXDPG425"
|
bool "IXDPG425"
|
||||||
|
select PCI
|
||||||
help
|
help
|
||||||
Say 'Y' here if you want your kernel to support Intel's
|
Say 'Y' here if you want your kernel to support Intel's
|
||||||
IXDPG425 Development Platform (Also known as Montajade).
|
IXDPG425 Development Platform (Also known as Montajade).
|
||||||
|
@ -46,6 +51,7 @@ config MACH_IXDPG425
|
||||||
|
|
||||||
config MACH_IXDP465
|
config MACH_IXDP465
|
||||||
bool "IXDP465"
|
bool "IXDP465"
|
||||||
|
select PCI
|
||||||
help
|
help
|
||||||
Say 'Y' here if you want your kernel to support Intel's
|
Say 'Y' here if you want your kernel to support Intel's
|
||||||
IXDP465 Development Platform (Also known as BMP).
|
IXDP465 Development Platform (Also known as BMP).
|
||||||
|
@ -72,6 +78,7 @@ config ARCH_PRPMC1100
|
||||||
config MACH_NAS100D
|
config MACH_NAS100D
|
||||||
bool
|
bool
|
||||||
prompt "NAS100D"
|
prompt "NAS100D"
|
||||||
|
select PCI
|
||||||
help
|
help
|
||||||
Say 'Y' here if you want your kernel to support Iomega's
|
Say 'Y' here if you want your kernel to support Iomega's
|
||||||
NAS 100d device. For more information on this platform,
|
NAS 100d device. For more information on this platform,
|
||||||
|
@ -96,6 +103,7 @@ config CPU_IXP46X
|
||||||
config MACH_GTWX5715
|
config MACH_GTWX5715
|
||||||
bool "Gemtek WX5715 (Linksys WRV54G)"
|
bool "Gemtek WX5715 (Linksys WRV54G)"
|
||||||
depends on ARCH_IXP4XX
|
depends on ARCH_IXP4XX
|
||||||
|
select PCI
|
||||||
help
|
help
|
||||||
This board is currently inside the Linksys WRV54G Gateways.
|
This board is currently inside the Linksys WRV54G Gateways.
|
||||||
|
|
||||||
|
@ -110,11 +118,16 @@ config MACH_GTWX5715
|
||||||
"High Speed" UART is n/c (as far as I can tell)
|
"High Speed" UART is n/c (as far as I can tell)
|
||||||
20 Pin ARM/Xscale JTAG interface on J2
|
20 Pin ARM/Xscale JTAG interface on J2
|
||||||
|
|
||||||
|
|
||||||
comment "IXP4xx Options"
|
comment "IXP4xx Options"
|
||||||
|
|
||||||
|
config DMABOUNCE
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
depends on PCI
|
||||||
|
|
||||||
config IXP4XX_INDIRECT_PCI
|
config IXP4XX_INDIRECT_PCI
|
||||||
bool "Use indirect PCI memory access"
|
bool "Use indirect PCI memory access"
|
||||||
|
depends on PCI
|
||||||
help
|
help
|
||||||
IXP4xx provides two methods of accessing PCI memory space:
|
IXP4xx provides two methods of accessing PCI memory space:
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,9 @@
|
||||||
# Makefile for the linux kernel.
|
# Makefile for the linux kernel.
|
||||||
#
|
#
|
||||||
|
|
||||||
obj-y += common.o common-pci.o
|
obj-y += common.o
|
||||||
|
|
||||||
|
obj-$(CONFIG_PCI) += common-pci.o
|
||||||
obj-$(CONFIG_ARCH_IXDP4XX) += ixdp425-pci.o ixdp425-setup.o
|
obj-$(CONFIG_ARCH_IXDP4XX) += ixdp425-pci.o ixdp425-setup.o
|
||||||
obj-$(CONFIG_MACH_IXDPG425) += ixdpg425-pci.o coyote-setup.o
|
obj-$(CONFIG_MACH_IXDPG425) += ixdpg425-pci.o coyote-setup.o
|
||||||
obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o
|
obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <asm/irq.h>
|
//#include <asm/irq.h>
|
||||||
|
|
||||||
#include <asm/arch/sharpsl.h>
|
#include <asm/arch/sharpsl.h>
|
||||||
#include <asm/arch/hardware.h>
|
#include <asm/arch/hardware.h>
|
||||||
|
|
|
@ -45,6 +45,7 @@
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/hardware.h>
|
#include <asm/hardware.h>
|
||||||
|
#include <asm/arch/imx-uart.h>
|
||||||
|
|
||||||
/* We've been assigned a range on the "Low-density serial ports" major */
|
/* We've been assigned a range on the "Low-density serial ports" major */
|
||||||
#define SERIAL_IMX_MAJOR 204
|
#define SERIAL_IMX_MAJOR 204
|
||||||
|
@ -74,6 +75,7 @@ struct imx_port {
|
||||||
struct timer_list timer;
|
struct timer_list timer;
|
||||||
unsigned int old_status;
|
unsigned int old_status;
|
||||||
int txirq,rxirq,rtsirq;
|
int txirq,rxirq,rtsirq;
|
||||||
|
int have_rtscts:1;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -491,8 +493,12 @@ imx_set_termios(struct uart_port *port, struct termios *termios,
|
||||||
ucr2 = UCR2_SRST | UCR2_IRTS;
|
ucr2 = UCR2_SRST | UCR2_IRTS;
|
||||||
|
|
||||||
if (termios->c_cflag & CRTSCTS) {
|
if (termios->c_cflag & CRTSCTS) {
|
||||||
|
if( sport->have_rtscts ) {
|
||||||
ucr2 &= ~UCR2_IRTS;
|
ucr2 &= ~UCR2_IRTS;
|
||||||
ucr2 |= UCR2_CTSC;
|
ucr2 |= UCR2_CTSC;
|
||||||
|
} else {
|
||||||
|
termios->c_cflag &= ~CRTSCTS;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (termios->c_cflag & CSTOPB)
|
if (termios->c_cflag & CSTOPB)
|
||||||
|
@ -719,27 +725,6 @@ static void __init imx_init_ports(void)
|
||||||
imx_ports[i].timer.function = imx_timeout;
|
imx_ports[i].timer.function = imx_timeout;
|
||||||
imx_ports[i].timer.data = (unsigned long)&imx_ports[i];
|
imx_ports[i].timer.data = (unsigned long)&imx_ports[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
imx_gpio_mode(PC9_PF_UART1_CTS);
|
|
||||||
imx_gpio_mode(PC10_PF_UART1_RTS);
|
|
||||||
imx_gpio_mode(PC11_PF_UART1_TXD);
|
|
||||||
imx_gpio_mode(PC12_PF_UART1_RXD);
|
|
||||||
imx_gpio_mode(PB28_PF_UART2_CTS);
|
|
||||||
imx_gpio_mode(PB29_PF_UART2_RTS);
|
|
||||||
|
|
||||||
imx_gpio_mode(PB30_PF_UART2_TXD);
|
|
||||||
imx_gpio_mode(PB31_PF_UART2_RXD);
|
|
||||||
|
|
||||||
#if 0 /* We don't need these, on the mx1 the _modem_ side of the uart
|
|
||||||
* is implemented.
|
|
||||||
*/
|
|
||||||
imx_gpio_mode(PD7_AF_UART2_DTR);
|
|
||||||
imx_gpio_mode(PD8_AF_UART2_DCD);
|
|
||||||
imx_gpio_mode(PD9_AF_UART2_RI);
|
|
||||||
imx_gpio_mode(PD10_AF_UART2_DSR);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SERIAL_IMX_CONSOLE
|
#ifdef CONFIG_SERIAL_IMX_CONSOLE
|
||||||
|
@ -932,7 +917,14 @@ static int serial_imx_resume(struct platform_device *dev)
|
||||||
|
|
||||||
static int serial_imx_probe(struct platform_device *dev)
|
static int serial_imx_probe(struct platform_device *dev)
|
||||||
{
|
{
|
||||||
|
struct imxuart_platform_data *pdata;
|
||||||
|
|
||||||
imx_ports[dev->id].port.dev = &dev->dev;
|
imx_ports[dev->id].port.dev = &dev->dev;
|
||||||
|
|
||||||
|
pdata = (struct imxuart_platform_data *)dev->dev.platform_data;
|
||||||
|
if(pdata && (pdata->flags & IMXUART_HAVE_RTSCTS))
|
||||||
|
imx_ports[dev->id].have_rtscts = 1;
|
||||||
|
|
||||||
uart_add_one_port(&imx_reg, &imx_ports[dev->id].port);
|
uart_add_one_port(&imx_reg, &imx_ports[dev->id].port);
|
||||||
platform_set_drvdata(dev, &imx_ports[dev->id]);
|
platform_set_drvdata(dev, &imx_ports[dev->id]);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
#ifndef ASMARM_ARCH_UART_H
|
||||||
|
#define ASMARM_ARCH_UART_H
|
||||||
|
|
||||||
|
#define IMXUART_HAVE_RTSCTS (1<<0)
|
||||||
|
|
||||||
|
struct imxuart_platform_data {
|
||||||
|
unsigned int flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -260,6 +260,12 @@ out:
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef CONFIG_PCI
|
||||||
|
|
||||||
|
#define __io(v) v
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* IXP4xx does not have a transparent cpu -> PCI I/O translation
|
* IXP4xx does not have a transparent cpu -> PCI I/O translation
|
||||||
* window. Instead, it has a set of registers that must be tweaked
|
* window. Instead, it has a set of registers that must be tweaked
|
||||||
|
@ -578,6 +584,7 @@ __ixp4xx_iowrite32_rep(void __iomem *addr, const void *vaddr, u32 count)
|
||||||
|
|
||||||
#define ioport_map(port, nr) ((void __iomem*)(port + PIO_OFFSET))
|
#define ioport_map(port, nr) ((void __iomem*)(port + PIO_OFFSET))
|
||||||
#define ioport_unmap(addr)
|
#define ioport_unmap(addr)
|
||||||
|
#endif // !CONFIG_PCI
|
||||||
|
|
||||||
#endif // __ASM_ARM_ARCH_IO_H
|
#endif // __ASM_ARM_ARCH_IO_H
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
*/
|
*/
|
||||||
#define PHYS_OFFSET UL(0x00000000)
|
#define PHYS_OFFSET UL(0x00000000)
|
||||||
|
|
||||||
#ifndef __ASSEMBLY__
|
#if !defined(__ASSEMBLY__) && defined(CONFIG_PCI)
|
||||||
|
|
||||||
void ixp4xx_adjust_zones(int node, unsigned long *size, unsigned long *holes);
|
void ixp4xx_adjust_zones(int node, unsigned long *size, unsigned long *holes);
|
||||||
|
|
||||||
|
|
|
@ -410,7 +410,8 @@ type name(void) { \
|
||||||
__asm__ __volatile__ ( \
|
__asm__ __volatile__ ( \
|
||||||
__syscall(name) \
|
__syscall(name) \
|
||||||
: "=r" (__res_r0) \
|
: "=r" (__res_r0) \
|
||||||
: __SYS_REG_LIST() ); \
|
: __SYS_REG_LIST() \
|
||||||
|
: "memory" ); \
|
||||||
__res = __res_r0; \
|
__res = __res_r0; \
|
||||||
__syscall_return(type,__res); \
|
__syscall_return(type,__res); \
|
||||||
}
|
}
|
||||||
|
@ -424,7 +425,8 @@ type name(type1 arg1) { \
|
||||||
__asm__ __volatile__ ( \
|
__asm__ __volatile__ ( \
|
||||||
__syscall(name) \
|
__syscall(name) \
|
||||||
: "=r" (__res_r0) \
|
: "=r" (__res_r0) \
|
||||||
: __SYS_REG_LIST( "0" (__r0) ) ); \
|
: __SYS_REG_LIST( "0" (__r0) ) \
|
||||||
|
: "memory" ); \
|
||||||
__res = __res_r0; \
|
__res = __res_r0; \
|
||||||
__syscall_return(type,__res); \
|
__syscall_return(type,__res); \
|
||||||
}
|
}
|
||||||
|
@ -439,7 +441,8 @@ type name(type1 arg1,type2 arg2) { \
|
||||||
__asm__ __volatile__ ( \
|
__asm__ __volatile__ ( \
|
||||||
__syscall(name) \
|
__syscall(name) \
|
||||||
: "=r" (__res_r0) \
|
: "=r" (__res_r0) \
|
||||||
: __SYS_REG_LIST( "0" (__r0), "r" (__r1) ) ); \
|
: __SYS_REG_LIST( "0" (__r0), "r" (__r1) ) \
|
||||||
|
: "memory" ); \
|
||||||
__res = __res_r0; \
|
__res = __res_r0; \
|
||||||
__syscall_return(type,__res); \
|
__syscall_return(type,__res); \
|
||||||
}
|
}
|
||||||
|
@ -456,7 +459,8 @@ type name(type1 arg1,type2 arg2,type3 arg3) { \
|
||||||
__asm__ __volatile__ ( \
|
__asm__ __volatile__ ( \
|
||||||
__syscall(name) \
|
__syscall(name) \
|
||||||
: "=r" (__res_r0) \
|
: "=r" (__res_r0) \
|
||||||
: __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2) ) ); \
|
: __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2) ) \
|
||||||
|
: "memory" ); \
|
||||||
__res = __res_r0; \
|
__res = __res_r0; \
|
||||||
__syscall_return(type,__res); \
|
__syscall_return(type,__res); \
|
||||||
}
|
}
|
||||||
|
@ -474,7 +478,8 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \
|
||||||
__asm__ __volatile__ ( \
|
__asm__ __volatile__ ( \
|
||||||
__syscall(name) \
|
__syscall(name) \
|
||||||
: "=r" (__res_r0) \
|
: "=r" (__res_r0) \
|
||||||
: __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), "r" (__r3) ) ); \
|
: __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), "r" (__r3) ) \
|
||||||
|
: "memory" ); \
|
||||||
__res = __res_r0; \
|
__res = __res_r0; \
|
||||||
__syscall_return(type,__res); \
|
__syscall_return(type,__res); \
|
||||||
}
|
}
|
||||||
|
@ -494,7 +499,8 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) { \
|
||||||
__syscall(name) \
|
__syscall(name) \
|
||||||
: "=r" (__res_r0) \
|
: "=r" (__res_r0) \
|
||||||
: __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), \
|
: __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), \
|
||||||
"r" (__r3), "r" (__r4) ) ); \
|
"r" (__r3), "r" (__r4) ) \
|
||||||
|
: "memory" ); \
|
||||||
__res = __res_r0; \
|
__res = __res_r0; \
|
||||||
__syscall_return(type,__res); \
|
__syscall_return(type,__res); \
|
||||||
}
|
}
|
||||||
|
@ -514,7 +520,8 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6
|
||||||
__syscall(name) \
|
__syscall(name) \
|
||||||
: "=r" (__res_r0) \
|
: "=r" (__res_r0) \
|
||||||
: __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), \
|
: __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), \
|
||||||
"r" (__r3), "r" (__r4), "r" (__r5) ) ); \
|
"r" (__r3), "r" (__r4), "r" (__r5) ) \
|
||||||
|
: "memory" ); \
|
||||||
__res = __res_r0; \
|
__res = __res_r0; \
|
||||||
__syscall_return(type,__res); \
|
__syscall_return(type,__res); \
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue