Daniel Golle <[email protected]> [2020-02-12 16:37:36]:

...

> ++static inline int ar933x_uart_is_half_duplex(struct ar933x_uart_port *up)
> ++{

That function name is quite confusing as it's checking for 485/HD.

> ++    return (up->port.rs485.flags & SER_RS485_ENABLED) &&
> ++              !(up->port.rs485.flags & SER_RS485_RX_DURING_TX);
> ++}

...

> +-    if (!uart_circ_empty(xmit))
> ++    if (!uart_circ_empty(xmit)) {
> +             ar933x_uart_start_tx_interrupt(up);
> ++    } else if (ar933x_uart_is_half_duplex(up)) {
> ++            ar933x_uart_wait_tx_complete(up);
> ++            ar933x_uart_rx_flush(up);
> ++            ar933x_uart_start_rx_interrupt(up);
> ++    }

This change looks strange, how are these two related? Where do you re-enable
the TX interrupts in that 485/HD case?

-- ynezz

_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to