diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-19 16:18:39 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-19 16:18:39 -0500 |
commit | 59b8175c771040afcd4ad67022b0cc80c216b866 (patch) | |
tree | 4ef5935bee1e342716d49b9d4b99e3fa835526e6 /drivers/serial | |
parent | 920841d8d1d61bc12b43f95a579a5374f6d98f81 (diff) | |
parent | 3b0eb4a195a124567cd0dd6f700f8388def542c6 (diff) |
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (117 commits)
[ARM] 4058/2: iop32x: set ->broken_parity_status on n2100 onboard r8169 ports
[ARM] 4140/1: AACI stability add ac97 timeout and retries
[ARM] 4139/1: AACI record support
[ARM] 4138/1: AACI: multiple channel support for IRQ handling
[ARM] 4211/1: Provide a defconfig for ns9xxx
[ARM] 4210/1: base for new machine type "NetSilicon NS9360"
[ARM] 4222/1: S3C2443: Remove reference to missing S3C2443_PM
[ARM] 4221/1: S3C2443: DMA support
[ARM] 4220/1: S3C24XX: DMA system initialised from sysdev
[ARM] 4219/1: S3C2443: DMA source definitions
[ARM] 4218/1: S3C2412: fix CONFIG_CPU_S3C2412_ONLY wrt to S3C2443
[ARM] 4217/1: S3C24XX: remove the dma channel show at startup
[ARM] 4090/2: avoid clash between PXA and SA1111 defines
[ARM] 4216/1: add .gitignore entries for ARM specific files
[ARM] 4214/2: S3C2410: Add Armzone QT2410
[ARM] 4215/1: s3c2410 usb device: per-platform vbus_draw
[ARM] 4213/1: S3C2410 - Update definition of ADCTSC_XY_PST
[ARM] 4098/1: ARM: rtc_lock only used with rtc_cmos
[ARM] 4137/1: Add kexec support
[ARM] 4201/1: SMP barriers pair needed for the secondary boot process
...
Fix up conflict due to typedef removal in sound/arm/aaci.h
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/Kconfig | 3 | ||||
-rw-r--r-- | drivers/serial/atmel_serial.c | 3 | ||||
-rw-r--r-- | drivers/serial/imx.c | 14 |
3 files changed, 11 insertions, 9 deletions
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index e8dd71df9165..ad9f321968e1 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig | |||
@@ -262,7 +262,8 @@ config SERIAL_AMBA_PL010 | |||
262 | select SERIAL_CORE | 262 | select SERIAL_CORE |
263 | help | 263 | help |
264 | This selects the ARM(R) AMBA(R) PrimeCell PL010 UART. If you have | 264 | This selects the ARM(R) AMBA(R) PrimeCell PL010 UART. If you have |
265 | an Integrator/AP or Integrator/PP2 platform, say Y or M here. | 265 | an Integrator/AP or Integrator/PP2 platform, or if you have a |
266 | Cirrus Logic EP93xx CPU, say Y or M here. | ||
266 | 267 | ||
267 | If unsure, say N. | 268 | If unsure, say N. |
268 | 269 | ||
diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c index df45a7ac773f..935f48fa501d 100644 --- a/drivers/serial/atmel_serial.c +++ b/drivers/serial/atmel_serial.c | |||
@@ -33,12 +33,13 @@ | |||
33 | #include <linux/sysrq.h> | 33 | #include <linux/sysrq.h> |
34 | #include <linux/tty_flip.h> | 34 | #include <linux/tty_flip.h> |
35 | #include <linux/platform_device.h> | 35 | #include <linux/platform_device.h> |
36 | #include <linux/atmel_pdc.h> | ||
36 | 37 | ||
37 | #include <asm/io.h> | 38 | #include <asm/io.h> |
38 | 39 | ||
39 | #include <asm/mach/serial_at91.h> | 40 | #include <asm/mach/serial_at91.h> |
40 | #include <asm/arch/board.h> | 41 | #include <asm/arch/board.h> |
41 | #include <asm/arch/at91_pdc.h> | 42 | |
42 | #ifdef CONFIG_ARM | 43 | #ifdef CONFIG_ARM |
43 | #include <asm/arch/cpu.h> | 44 | #include <asm/arch/cpu.h> |
44 | #include <asm/arch/gpio.h> | 45 | #include <asm/arch/gpio.h> |
diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c index e216dcf29376..04cc88cc528c 100644 --- a/drivers/serial/imx.c +++ b/drivers/serial/imx.c | |||
@@ -154,7 +154,7 @@ static inline void imx_transmit_buffer(struct imx_port *sport) | |||
154 | { | 154 | { |
155 | struct circ_buf *xmit = &sport->port.info->xmit; | 155 | struct circ_buf *xmit = &sport->port.info->xmit; |
156 | 156 | ||
157 | do { | 157 | while (!(UTS((u32)sport->port.membase) & UTS_TXFULL)) { |
158 | /* send xmit->buf[xmit->tail] | 158 | /* send xmit->buf[xmit->tail] |
159 | * out the port here */ | 159 | * out the port here */ |
160 | URTX0((u32)sport->port.membase) = xmit->buf[xmit->tail]; | 160 | URTX0((u32)sport->port.membase) = xmit->buf[xmit->tail]; |
@@ -163,7 +163,7 @@ static inline void imx_transmit_buffer(struct imx_port *sport) | |||
163 | sport->port.icount.tx++; | 163 | sport->port.icount.tx++; |
164 | if (uart_circ_empty(xmit)) | 164 | if (uart_circ_empty(xmit)) |
165 | break; | 165 | break; |
166 | } while (!(UTS((u32)sport->port.membase) & UTS_TXFULL)); | 166 | } |
167 | 167 | ||
168 | if (uart_circ_empty(xmit)) | 168 | if (uart_circ_empty(xmit)) |
169 | imx_stop_tx(&sport->port); | 169 | imx_stop_tx(&sport->port); |
@@ -178,8 +178,7 @@ static void imx_start_tx(struct uart_port *port) | |||
178 | 178 | ||
179 | UCR1((u32)sport->port.membase) |= UCR1_TXMPTYEN; | 179 | UCR1((u32)sport->port.membase) |= UCR1_TXMPTYEN; |
180 | 180 | ||
181 | if(UTS((u32)sport->port.membase) & UTS_TXEMPTY) | 181 | imx_transmit_buffer(sport); |
182 | imx_transmit_buffer(sport); | ||
183 | } | 182 | } |
184 | 183 | ||
185 | static irqreturn_t imx_rtsint(int irq, void *dev_id) | 184 | static irqreturn_t imx_rtsint(int irq, void *dev_id) |
@@ -404,7 +403,8 @@ static int imx_startup(struct uart_port *port) | |||
404 | if (retval) goto error_out2; | 403 | if (retval) goto error_out2; |
405 | 404 | ||
406 | retval = request_irq(sport->rtsirq, imx_rtsint, | 405 | retval = request_irq(sport->rtsirq, imx_rtsint, |
407 | IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, | 406 | (sport->rtsirq < IMX_IRQS) ? 0 : |
407 | IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, | ||
408 | DRIVER_NAME, sport); | 408 | DRIVER_NAME, sport); |
409 | if (retval) goto error_out3; | 409 | if (retval) goto error_out3; |
410 | 410 | ||
@@ -678,7 +678,7 @@ static struct imx_port imx_ports[] = { | |||
678 | .mapbase = IMX_UART1_BASE, /* FIXME */ | 678 | .mapbase = IMX_UART1_BASE, /* FIXME */ |
679 | .irq = UART1_MINT_RX, | 679 | .irq = UART1_MINT_RX, |
680 | .uartclk = 16000000, | 680 | .uartclk = 16000000, |
681 | .fifosize = 8, | 681 | .fifosize = 32, |
682 | .flags = UPF_BOOT_AUTOCONF, | 682 | .flags = UPF_BOOT_AUTOCONF, |
683 | .ops = &imx_pops, | 683 | .ops = &imx_pops, |
684 | .line = 0, | 684 | .line = 0, |
@@ -694,7 +694,7 @@ static struct imx_port imx_ports[] = { | |||
694 | .mapbase = IMX_UART2_BASE, /* FIXME */ | 694 | .mapbase = IMX_UART2_BASE, /* FIXME */ |
695 | .irq = UART2_MINT_RX, | 695 | .irq = UART2_MINT_RX, |
696 | .uartclk = 16000000, | 696 | .uartclk = 16000000, |
697 | .fifosize = 8, | 697 | .fifosize = 32, |
698 | .flags = UPF_BOOT_AUTOCONF, | 698 | .flags = UPF_BOOT_AUTOCONF, |
699 | .ops = &imx_pops, | 699 | .ops = &imx_pops, |
700 | .line = 1, | 700 | .line = 1, |