return MOXA_OTHER_UART;
}
+static bool mxser_16550A_or_MUST(struct mxser_port *info)
+{
+ return info->type == PORT_16550A || info->board->must_hwid;
+}
+
static void mxser_process_txrx_fifo(struct mxser_port *info)
{
unsigned int i;
if (cts) {
tty->hw_stopped = 0;
- if (info->type != PORT_16550A &&
- !info->board->must_hwid)
+ if (!mxser_16550A_or_MUST(info))
__mxser_start_tx(info);
tty_wakeup(tty);
}
return;
tty->hw_stopped = 1;
- if (info->type != PORT_16550A && !info->board->must_hwid)
+ if (!mxser_16550A_or_MUST(info))
__mxser_stop_tx(info);
}
tty_port_set_cts_flow(&info->port, cflag & CRTSCTS);
if (cflag & CRTSCTS) {
info->IER |= UART_IER_MSI;
- if ((info->type == PORT_16550A) || (info->board->must_hwid)) {
+ if (mxser_16550A_or_MUST(info)) {
info->MCR |= UART_MCR_AFE;
} else {
mxser_handle_cts(tty, info,
total += c;
}
- if (info->xmit_cnt && !tty->flow.stopped) {
- if (!tty->hw_stopped || info->type == PORT_16550A ||
- info->board->must_hwid)
+ if (info->xmit_cnt && !tty->flow.stopped)
+ if (!tty->hw_stopped || mxser_16550A_or_MUST(info))
mxser_start_tx(info);
- }
+
return total;
}
struct mxser_port *info = tty->driver_data;
if (!info->xmit_cnt || tty->flow.stopped || !info->port.xmit_buf ||
- (tty->hw_stopped && info->type != PORT_16550A &&
- !info->board->must_hwid))
+ (tty->hw_stopped && !mxser_16550A_or_MUST(info)))
return;
mxser_start_tx(info);
return;
if (!port->xmit_cnt || tty->flow.stopped ||
- (tty->hw_stopped &&
- (port->type != PORT_16550A) &&
- (!port->board->must_hwid))) {
+ (tty->hw_stopped && !mxser_16550A_or_MUST(port))) {
__mxser_stop_tx(port);
return;
}