git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge master.kernel.org:/pub/scm/linux/kernel/git/sfrench/cifs-2.6
[pandora-kernel.git]
/
drivers
/
serial
/
imx.c
diff --git
a/drivers/serial/imx.c
b/drivers/serial/imx.c
index
da85baf
..
04cc88c
100644
(file)
--- a/
drivers/serial/imx.c
+++ b/
drivers/serial/imx.c
@@
-25,7
+25,6
@@
* [29-Mar-2005] Mike Lee
* Added hardware handshake
*/
* [29-Mar-2005] Mike Lee
* Added hardware handshake
*/
-#include <linux/config.h>
#if defined(CONFIG_SERIAL_IMX_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
#define SUPPORT_SYSRQ
#if defined(CONFIG_SERIAL_IMX_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
#define SUPPORT_SYSRQ
@@
-155,7
+154,7
@@
static inline void imx_transmit_buffer(struct imx_port *sport)
{
struct circ_buf *xmit = &sport->port.info->xmit;
{
struct circ_buf *xmit = &sport->port.info->xmit;
-
do
{
+
while (!(UTS((u32)sport->port.membase) & UTS_TXFULL))
{
/* send xmit->buf[xmit->tail]
* out the port here */
URTX0((u32)sport->port.membase) = xmit->buf[xmit->tail];
/* send xmit->buf[xmit->tail]
* out the port here */
URTX0((u32)sport->port.membase) = xmit->buf[xmit->tail];
@@
-164,7
+163,7
@@
static inline void imx_transmit_buffer(struct imx_port *sport)
sport->port.icount.tx++;
if (uart_circ_empty(xmit))
break;
sport->port.icount.tx++;
if (uart_circ_empty(xmit))
break;
- }
while (!(UTS((u32)sport->port.membase) & UTS_TXFULL));
+ }
if (uart_circ_empty(xmit))
imx_stop_tx(&sport->port);
if (uart_circ_empty(xmit))
imx_stop_tx(&sport->port);
@@
-179,11
+178,10
@@
static void imx_start_tx(struct uart_port *port)
UCR1((u32)sport->port.membase) |= UCR1_TXMPTYEN;
UCR1((u32)sport->port.membase) |= UCR1_TXMPTYEN;
- if(UTS((u32)sport->port.membase) & UTS_TXEMPTY)
- imx_transmit_buffer(sport);
+ imx_transmit_buffer(sport);
}
}
-static irqreturn_t imx_rtsint(int irq, void *dev_id
, struct pt_regs *regs
)
+static irqreturn_t imx_rtsint(int irq, void *dev_id)
{
struct imx_port *sport = (struct imx_port *)dev_id;
unsigned int val = USR1((u32)sport->port.membase)&USR1_RTSS;
{
struct imx_port *sport = (struct imx_port *)dev_id;
unsigned int val = USR1((u32)sport->port.membase)&USR1_RTSS;
@@
-199,7
+197,7
@@
static irqreturn_t imx_rtsint(int irq, void *dev_id, struct pt_regs *regs)
return IRQ_HANDLED;
}
return IRQ_HANDLED;
}
-static irqreturn_t imx_txint(int irq, void *dev_id
, struct pt_regs *regs
)
+static irqreturn_t imx_txint(int irq, void *dev_id)
{
struct imx_port *sport = (struct imx_port *)dev_id;
struct circ_buf *xmit = &sport->port.info->xmit;
{
struct imx_port *sport = (struct imx_port *)dev_id;
struct circ_buf *xmit = &sport->port.info->xmit;
@@
-228,7
+226,7
@@
out:
return IRQ_HANDLED;
}
return IRQ_HANDLED;
}
-static irqreturn_t imx_rxint(int irq, void *dev_id
, struct pt_regs *regs
)
+static irqreturn_t imx_rxint(int irq, void *dev_id)
{
struct imx_port *sport = dev_id;
unsigned int rx,flg,ignored = 0;
{
struct imx_port *sport = dev_id;
unsigned int rx,flg,ignored = 0;
@@
-249,7
+247,7
@@
static irqreturn_t imx_rxint(int irq, void *dev_id, struct pt_regs *regs)
}
if (uart_handle_sysrq_char
}
if (uart_handle_sysrq_char
- (&sport->port, (unsigned char)rx
, regs
))
+ (&sport->port, (unsigned char)rx))
goto ignore_char;
if( rx & (URXD_PRERR | URXD_OVRRUN | URXD_FRMERR) )
goto ignore_char;
if( rx & (URXD_PRERR | URXD_OVRRUN | URXD_FRMERR) )
@@
-405,7
+403,8
@@
static int imx_startup(struct uart_port *port)
if (retval) goto error_out2;
retval = request_irq(sport->rtsirq, imx_rtsint,
if (retval) goto error_out2;
retval = request_irq(sport->rtsirq, imx_rtsint,
- SA_TRIGGER_FALLING | SA_TRIGGER_RISING,
+ (sport->rtsirq < IMX_IRQS) ? 0 :
+ IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
DRIVER_NAME, sport);
if (retval) goto error_out3;
DRIVER_NAME, sport);
if (retval) goto error_out3;
@@
-460,8
+459,8
@@
static void imx_shutdown(struct uart_port *port)
}
static void
}
static void
-imx_set_termios(struct uart_port *port, struct termios *termios,
- struct termios *old)
+imx_set_termios(struct uart_port *port, struct
k
termios *termios,
+ struct
k
termios *old)
{
struct imx_port *sport = (struct imx_port *)port;
unsigned long flags;
{
struct imx_port *sport = (struct imx_port *)port;
unsigned long flags;
@@
-679,7
+678,7
@@
static struct imx_port imx_ports[] = {
.mapbase = IMX_UART1_BASE, /* FIXME */
.irq = UART1_MINT_RX,
.uartclk = 16000000,
.mapbase = IMX_UART1_BASE, /* FIXME */
.irq = UART1_MINT_RX,
.uartclk = 16000000,
- .fifosize =
8
,
+ .fifosize =
32
,
.flags = UPF_BOOT_AUTOCONF,
.ops = &imx_pops,
.line = 0,
.flags = UPF_BOOT_AUTOCONF,
.ops = &imx_pops,
.line = 0,
@@
-695,7
+694,7
@@
static struct imx_port imx_ports[] = {
.mapbase = IMX_UART2_BASE, /* FIXME */
.irq = UART2_MINT_RX,
.uartclk = 16000000,
.mapbase = IMX_UART2_BASE, /* FIXME */
.irq = UART2_MINT_RX,
.uartclk = 16000000,
- .fifosize =
8
,
+ .fifosize =
32
,
.flags = UPF_BOOT_AUTOCONF,
.ops = &imx_pops,
.line = 1,
.flags = UPF_BOOT_AUTOCONF,
.ops = &imx_pops,
.line = 1,