diff options
Diffstat (limited to 'drivers/serial/imx.c')
| -rw-r--r-- | drivers/serial/imx.c | 14 |
1 files changed, 7 insertions, 7 deletions
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, |
