if ((up->rs485.flags & SER_RS485_ENABLED) &&
            !(up->rs485.flags & SER_RS485_RX_DURING_TX)) {
-               up->ier = UART_IER_RLSI | UART_IER_RDI;
+               up->ier |= UART_IER_RLSI | UART_IER_RDI;
+               up->port.read_status_mask |= UART_LSR_DR;
                serial_out(up, UART_IER, up->ier);
        }
 
        struct uart_omap_port *up = to_uart_omap_port(port);
 
        pm_runtime_get_sync(up->dev);
-       up->ier &= ~UART_IER_RLSI;
+       up->ier &= ~(UART_IER_RLSI | UART_IER_RDI);
        up->port.read_status_mask &= ~UART_LSR_DR;
        serial_out(up, UART_IER, up->ier);
        pm_runtime_mark_last_busy(up->dev);