瀏覽代碼

cpm_uart: Support uart_wait_until_sent()

Set port->fifosize to the software FIFO size, and update the port timeout
when the baud rate is modified. SCC ports have an optional 32 byte hardware
FIFO which is currently not taken into account, as there is no documented way
to check when the FIFO becomes empty.

Signed-off-by: Laurent Pinchart <laurentp@cse-semaphore.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Laurent Pinchart 17 年之前
父節點
當前提交
dc32081530
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      drivers/serial/cpm_uart/cpm_uart_core.c

+ 6 - 0
drivers/serial/cpm_uart/cpm_uart_core.c

@@ -490,6 +490,11 @@ static void cpm_uart_set_termios(struct uart_port *port,
 		}
 		}
 	}
 	}
 
 
+	/*
+	 * Update the timeout
+	 */
+	uart_update_timeout(port, termios->c_cflag, baud);
+
 	/*
 	/*
 	 * Set up parity check flag
 	 * Set up parity check flag
 	 */
 	 */
@@ -938,6 +943,7 @@ static int cpm_uart_init_port(struct device_node *np,
 	pinfo->port.type = PORT_CPM;
 	pinfo->port.type = PORT_CPM;
 	pinfo->port.ops = &cpm_uart_pops,
 	pinfo->port.ops = &cpm_uart_pops,
 	pinfo->port.iotype = UPIO_MEM;
 	pinfo->port.iotype = UPIO_MEM;
+	pinfo->port.fifosize = pinfo->tx_nrfifos * pinfo->tx_fifosize;
 	spin_lock_init(&pinfo->port.lock);
 	spin_lock_init(&pinfo->port.lock);
 
 
 	pinfo->port.irq = of_irq_to_resource(np, 0, NULL);
 	pinfo->port.irq = of_irq_to_resource(np, 0, NULL);