|
@@ -1303,6 +1303,16 @@ static void imx_shutdown(struct uart_port *port)
|
|
|
clk_disable_unprepare(sport->clk_ipg);
|
|
|
}
|
|
|
|
|
|
+static void imx_flush_buffer(struct uart_port *port)
|
|
|
+{
|
|
|
+ struct imx_port *sport = (struct imx_port *)port;
|
|
|
+
|
|
|
+ if (sport->dma_is_enabled) {
|
|
|
+ sport->tx_bytes = 0;
|
|
|
+ dmaengine_terminate_all(sport->dma_chan_tx);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
static void
|
|
|
imx_set_termios(struct uart_port *port, struct ktermios *termios,
|
|
|
struct ktermios *old)
|
|
@@ -1623,6 +1633,7 @@ static struct uart_ops imx_pops = {
|
|
|
.break_ctl = imx_break_ctl,
|
|
|
.startup = imx_startup,
|
|
|
.shutdown = imx_shutdown,
|
|
|
+ .flush_buffer = imx_flush_buffer,
|
|
|
.set_termios = imx_set_termios,
|
|
|
.type = imx_type,
|
|
|
.release_port = imx_release_port,
|