Lines Matching full:up

85 static void mtk8250_rx_dma(struct uart_8250_port *up);
89 struct uart_8250_port *up = param; in mtk8250_dma_rx_complete() local
90 struct uart_8250_dma *dma = up->dma; in mtk8250_dma_rx_complete()
91 struct mtk8250_data *data = up->port.private_data; in mtk8250_dma_rx_complete()
92 struct tty_port *tty_port = &up->port.state->port; in mtk8250_dma_rx_complete()
101 spin_lock_irqsave(&up->port.lock, flags); in mtk8250_dma_rx_complete()
121 up->port.icount.rx += copied; in mtk8250_dma_rx_complete()
125 mtk8250_rx_dma(up); in mtk8250_dma_rx_complete()
127 spin_unlock_irqrestore(&up->port.lock, flags); in mtk8250_dma_rx_complete()
130 static void mtk8250_rx_dma(struct uart_8250_port *up) in mtk8250_rx_dma() argument
132 struct uart_8250_dma *dma = up->dma; in mtk8250_rx_dma()
144 desc->callback_param = up; in mtk8250_rx_dma()
151 static void mtk8250_dma_enable(struct uart_8250_port *up) in mtk8250_dma_enable() argument
153 struct uart_8250_dma *dma = up->dma; in mtk8250_dma_enable()
154 struct mtk8250_data *data = up->port.private_data; in mtk8250_dma_enable()
155 int lcr = serial_in(up, UART_LCR); in mtk8250_dma_enable()
166 serial_out(up, UART_FCR, UART_FCR_ENABLE_FIFO | UART_FCR_CLEAR_RCVR | in mtk8250_dma_enable()
168 serial_out(up, MTK_UART_DMA_EN, in mtk8250_dma_enable()
171 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); in mtk8250_dma_enable()
172 serial_out(up, UART_EFR, UART_EFR_ECB); in mtk8250_dma_enable()
173 serial_out(up, UART_LCR, lcr); in mtk8250_dma_enable()
182 mtk8250_rx_dma(up); in mtk8250_dma_enable()
189 struct uart_8250_port *up = up_to_u8250p(port); in mtk8250_startup() local
194 up->dma = NULL; in mtk8250_startup()
196 if (up->dma) { in mtk8250_startup()
209 struct uart_8250_port *up = up_to_u8250p(port); in mtk8250_shutdown() local
212 if (up->dma) in mtk8250_shutdown()
219 static void mtk8250_disable_intrs(struct uart_8250_port *up, int mask) in mtk8250_disable_intrs() argument
221 serial_out(up, UART_IER, serial_in(up, UART_IER) & (~mask)); in mtk8250_disable_intrs()
224 static void mtk8250_enable_intrs(struct uart_8250_port *up, int mask) in mtk8250_enable_intrs() argument
226 serial_out(up, UART_IER, serial_in(up, UART_IER) | mask); in mtk8250_enable_intrs()
229 static void mtk8250_set_flow_ctrl(struct uart_8250_port *up, int mode) in mtk8250_set_flow_ctrl() argument
231 struct uart_port *port = &up->port; in mtk8250_set_flow_ctrl()
232 int lcr = serial_in(up, UART_LCR); in mtk8250_set_flow_ctrl()
234 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); in mtk8250_set_flow_ctrl()
235 serial_out(up, UART_EFR, UART_EFR_ECB); in mtk8250_set_flow_ctrl()
236 serial_out(up, UART_LCR, lcr); in mtk8250_set_flow_ctrl()
237 lcr = serial_in(up, UART_LCR); in mtk8250_set_flow_ctrl()
241 serial_out(up, MTK_UART_ESCAPE_DAT, MTK_UART_ESCAPE_CHAR); in mtk8250_set_flow_ctrl()
242 serial_out(up, MTK_UART_ESCAPE_EN, 0x00); in mtk8250_set_flow_ctrl()
243 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); in mtk8250_set_flow_ctrl()
244 serial_out(up, UART_EFR, serial_in(up, UART_EFR) & in mtk8250_set_flow_ctrl()
246 serial_out(up, UART_LCR, lcr); in mtk8250_set_flow_ctrl()
247 mtk8250_disable_intrs(up, MTK_UART_IER_XOFFI | in mtk8250_set_flow_ctrl()
252 serial_out(up, MTK_UART_ESCAPE_DAT, MTK_UART_ESCAPE_CHAR); in mtk8250_set_flow_ctrl()
253 serial_out(up, MTK_UART_ESCAPE_EN, 0x00); in mtk8250_set_flow_ctrl()
254 serial_out(up, UART_MCR, UART_MCR_RTS); in mtk8250_set_flow_ctrl()
255 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); in mtk8250_set_flow_ctrl()
258 serial_out(up, UART_EFR, MTK_UART_EFR_HW_FC | in mtk8250_set_flow_ctrl()
259 (serial_in(up, UART_EFR) & in mtk8250_set_flow_ctrl()
262 serial_out(up, UART_LCR, lcr); in mtk8250_set_flow_ctrl()
263 mtk8250_disable_intrs(up, MTK_UART_IER_XOFFI); in mtk8250_set_flow_ctrl()
264 mtk8250_enable_intrs(up, MTK_UART_IER_CTSI | MTK_UART_IER_RTSI); in mtk8250_set_flow_ctrl()
268 serial_out(up, MTK_UART_ESCAPE_DAT, MTK_UART_ESCAPE_CHAR); in mtk8250_set_flow_ctrl()
269 serial_out(up, MTK_UART_ESCAPE_EN, 0x01); in mtk8250_set_flow_ctrl()
270 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); in mtk8250_set_flow_ctrl()
273 serial_out(up, UART_EFR, MTK_UART_EFR_XON1_XOFF1 | in mtk8250_set_flow_ctrl()
274 (serial_in(up, UART_EFR) & in mtk8250_set_flow_ctrl()
277 serial_out(up, UART_XON1, START_CHAR(port->state->port.tty)); in mtk8250_set_flow_ctrl()
278 serial_out(up, UART_XOFF1, STOP_CHAR(port->state->port.tty)); in mtk8250_set_flow_ctrl()
279 serial_out(up, UART_LCR, lcr); in mtk8250_set_flow_ctrl()
280 mtk8250_disable_intrs(up, MTK_UART_IER_CTSI|MTK_UART_IER_RTSI); in mtk8250_set_flow_ctrl()
281 mtk8250_enable_intrs(up, MTK_UART_IER_XOFFI); in mtk8250_set_flow_ctrl()
298 struct uart_8250_port *up = up_to_u8250p(port); in mtk8250_set_termios() local
304 if (up->dma) { in mtk8250_set_termios()
306 devm_kfree(up->port.dev, up->dma); in mtk8250_set_termios()
307 up->dma = NULL; in mtk8250_set_termios()
309 mtk8250_dma_enable(up); in mtk8250_set_termios()
365 /* set DLAB we have cval saved in up->lcr from the call to the core */ in mtk8250_set_termios()
366 serial_port_out(port, UART_LCR, up->lcr | UART_LCR_DLAB); in mtk8250_set_termios()
367 serial_dl_write(up, quot); in mtk8250_set_termios()
370 serial_port_out(port, UART_LCR, up->lcr); in mtk8250_set_termios()
401 mtk8250_set_flow_ctrl(up, mode); in mtk8250_set_termios()
404 up->port.cons->cflag = termios->c_cflag; in mtk8250_set_termios()
415 struct uart_8250_port *up = serial8250_get_port(data->line); in mtk8250_runtime_suspend() local
419 (serial_in(up, MTK_UART_DEBUG0)); in mtk8250_runtime_suspend()