Lines Matching refs:up
89 static void mtk8250_rx_dma(struct uart_8250_port *up);
93 struct uart_8250_port *up = param; in mtk8250_dma_rx_complete() local
94 struct uart_8250_dma *dma = up->dma; in mtk8250_dma_rx_complete()
95 struct mtk8250_data *data = up->port.private_data; in mtk8250_dma_rx_complete()
96 struct tty_port *tty_port = &up->port.state->port; in mtk8250_dma_rx_complete()
105 spin_lock_irqsave(&up->port.lock, flags); in mtk8250_dma_rx_complete()
125 up->port.icount.rx += copied; in mtk8250_dma_rx_complete()
129 mtk8250_rx_dma(up); in mtk8250_dma_rx_complete()
131 spin_unlock_irqrestore(&up->port.lock, flags); in mtk8250_dma_rx_complete()
134 static void mtk8250_rx_dma(struct uart_8250_port *up) in mtk8250_rx_dma() argument
136 struct uart_8250_dma *dma = up->dma; in mtk8250_rx_dma()
148 desc->callback_param = up; in mtk8250_rx_dma()
155 static void mtk8250_dma_enable(struct uart_8250_port *up) in mtk8250_dma_enable() argument
157 struct uart_8250_dma *dma = up->dma; in mtk8250_dma_enable()
158 struct mtk8250_data *data = up->port.private_data; in mtk8250_dma_enable()
159 int lcr = serial_in(up, UART_LCR); in mtk8250_dma_enable()
170 serial_out(up, UART_FCR, UART_FCR_ENABLE_FIFO | UART_FCR_CLEAR_RCVR | in mtk8250_dma_enable()
172 serial_out(up, MTK_UART_DMA_EN, in mtk8250_dma_enable()
175 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); in mtk8250_dma_enable()
176 serial_out(up, MTK_UART_EFR, UART_EFR_ECB); in mtk8250_dma_enable()
177 serial_out(up, UART_LCR, lcr); in mtk8250_dma_enable()
186 mtk8250_rx_dma(up); in mtk8250_dma_enable()
193 struct uart_8250_port *up = up_to_u8250p(port); in mtk8250_startup() local
198 up->dma = NULL; in mtk8250_startup()
200 if (up->dma) { in mtk8250_startup()
213 struct uart_8250_port *up = up_to_u8250p(port); in mtk8250_shutdown() local
216 if (up->dma) in mtk8250_shutdown()
223 static void mtk8250_disable_intrs(struct uart_8250_port *up, int mask) in mtk8250_disable_intrs() argument
225 serial_out(up, UART_IER, serial_in(up, UART_IER) & (~mask)); in mtk8250_disable_intrs()
228 static void mtk8250_enable_intrs(struct uart_8250_port *up, int mask) in mtk8250_enable_intrs() argument
230 serial_out(up, UART_IER, serial_in(up, UART_IER) | mask); in mtk8250_enable_intrs()
233 static void mtk8250_set_flow_ctrl(struct uart_8250_port *up, int mode) in mtk8250_set_flow_ctrl() argument
235 struct uart_port *port = &up->port; in mtk8250_set_flow_ctrl()
236 int lcr = serial_in(up, UART_LCR); in mtk8250_set_flow_ctrl()
238 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); in mtk8250_set_flow_ctrl()
239 serial_out(up, MTK_UART_EFR, UART_EFR_ECB); in mtk8250_set_flow_ctrl()
240 serial_out(up, UART_LCR, lcr); in mtk8250_set_flow_ctrl()
241 lcr = serial_in(up, UART_LCR); in mtk8250_set_flow_ctrl()
245 serial_out(up, MTK_UART_ESCAPE_DAT, MTK_UART_ESCAPE_CHAR); in mtk8250_set_flow_ctrl()
246 serial_out(up, MTK_UART_ESCAPE_EN, 0x00); in mtk8250_set_flow_ctrl()
247 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); in mtk8250_set_flow_ctrl()
248 serial_out(up, MTK_UART_EFR, serial_in(up, MTK_UART_EFR) & in mtk8250_set_flow_ctrl()
250 serial_out(up, UART_LCR, lcr); in mtk8250_set_flow_ctrl()
251 mtk8250_disable_intrs(up, MTK_UART_IER_XOFFI | in mtk8250_set_flow_ctrl()
256 serial_out(up, MTK_UART_ESCAPE_DAT, MTK_UART_ESCAPE_CHAR); in mtk8250_set_flow_ctrl()
257 serial_out(up, MTK_UART_ESCAPE_EN, 0x00); in mtk8250_set_flow_ctrl()
258 serial_out(up, UART_MCR, UART_MCR_RTS); in mtk8250_set_flow_ctrl()
259 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); in mtk8250_set_flow_ctrl()
262 serial_out(up, MTK_UART_EFR, MTK_UART_EFR_HW_FC | in mtk8250_set_flow_ctrl()
263 (serial_in(up, MTK_UART_EFR) & in mtk8250_set_flow_ctrl()
266 serial_out(up, UART_LCR, lcr); in mtk8250_set_flow_ctrl()
267 mtk8250_disable_intrs(up, MTK_UART_IER_XOFFI); in mtk8250_set_flow_ctrl()
268 mtk8250_enable_intrs(up, MTK_UART_IER_CTSI | MTK_UART_IER_RTSI); in mtk8250_set_flow_ctrl()
272 serial_out(up, MTK_UART_ESCAPE_DAT, MTK_UART_ESCAPE_CHAR); in mtk8250_set_flow_ctrl()
273 serial_out(up, MTK_UART_ESCAPE_EN, 0x01); in mtk8250_set_flow_ctrl()
274 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); in mtk8250_set_flow_ctrl()
277 serial_out(up, MTK_UART_EFR, MTK_UART_EFR_XON1_XOFF1 | in mtk8250_set_flow_ctrl()
278 (serial_in(up, MTK_UART_EFR) & in mtk8250_set_flow_ctrl()
281 serial_out(up, MTK_UART_XON1, START_CHAR(port->state->port.tty)); in mtk8250_set_flow_ctrl()
282 serial_out(up, MTK_UART_XOFF1, STOP_CHAR(port->state->port.tty)); in mtk8250_set_flow_ctrl()
283 serial_out(up, UART_LCR, lcr); in mtk8250_set_flow_ctrl()
284 mtk8250_disable_intrs(up, MTK_UART_IER_CTSI|MTK_UART_IER_RTSI); in mtk8250_set_flow_ctrl()
285 mtk8250_enable_intrs(up, MTK_UART_IER_XOFFI); in mtk8250_set_flow_ctrl()
302 struct uart_8250_port *up = up_to_u8250p(port); in mtk8250_set_termios() local
308 if (up->dma) { in mtk8250_set_termios()
310 devm_kfree(up->port.dev, up->dma); in mtk8250_set_termios()
311 up->dma = NULL; in mtk8250_set_termios()
313 mtk8250_dma_enable(up); in mtk8250_set_termios()
370 serial_port_out(port, UART_LCR, up->lcr | UART_LCR_DLAB); in mtk8250_set_termios()
371 serial_dl_write(up, quot); in mtk8250_set_termios()
374 serial_port_out(port, UART_LCR, up->lcr); in mtk8250_set_termios()
405 mtk8250_set_flow_ctrl(up, mode); in mtk8250_set_termios()
408 up->port.cons->cflag = termios->c_cflag; in mtk8250_set_termios()
419 struct uart_8250_port *up = serial8250_get_port(data->line); in mtk8250_runtime_suspend() local
423 (serial_in(up, MTK_UART_DEBUG0)); in mtk8250_runtime_suspend()