diff options
Diffstat (limited to 'drivers/tty/serial/msm_serial.c')
| -rw-r--r-- | drivers/tty/serial/msm_serial.c | 13 | 
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c index 7dd19a281579..843798e63084 100644 --- a/drivers/tty/serial/msm_serial.c +++ b/drivers/tty/serial/msm_serial.c @@ -464,12 +464,9 @@ static void msm_complete_tx_dma(void *args)  	}  	count = dma->count - state.residue; -	port->icount.tx += count; +	uart_xmit_advance(port, count);  	dma->count = 0; -	xmit->tail += count; -	xmit->tail &= UART_XMIT_SIZE - 1; -  	/* Restore "Tx FIFO below watermark" interrupt */  	msm_port->imr |= MSM_UART_IMR_TXLEV;  	msm_write(port, msm_port->imr, MSM_UART_IMR); @@ -819,7 +816,7 @@ static void msm_handle_rx(struct uart_port *port)  			port->icount.rx++;  		} -		/* Mask conditions we're ignorning. */ +		/* Mask conditions we're ignoring. */  		sr &= port->read_status_mask;  		if (sr & MSM_UART_SR_RX_BREAK) @@ -866,13 +863,11 @@ static void msm_handle_tx_pio(struct uart_port *port, unsigned int tx_count)  		else  			num_chars = 1; -		for (i = 0; i < num_chars; i++) { +		for (i = 0; i < num_chars; i++)  			buf[i] = xmit->buf[xmit->tail + i]; -			port->icount.tx++; -		}  		iowrite32_rep(tf, buf, 1); -		xmit->tail = (xmit->tail + num_chars) & (UART_XMIT_SIZE - 1); +		uart_xmit_advance(port, num_chars);  		tf_pointer += num_chars;  	}  | 
