Lines Matching +full:delay +full:- +full:line

1 // SPDX-License-Identifier: GPL-2.0
15 * We re-use the already existing "bug handling" lsr_saved_flags
33 uart_port_lock_irqsave(&up->port, &flags); in fsl8250_handle_irq()
35 iir = port->serial_in(port, UART_IIR); in fsl8250_handle_irq()
37 uart_port_unlock_irqrestore(&up->port, flags); in fsl8250_handle_irq()
55 (up->lsr_saved_flags & UART_LSR_BI))) { in fsl8250_handle_irq()
56 up->lsr_saved_flags &= ~UART_LSR_BI; in fsl8250_handle_irq()
57 port->serial_in(port, UART_RX); in fsl8250_handle_irq()
58 uart_port_unlock_irqrestore(&up->port, flags); in fsl8250_handle_irq()
62 lsr = orig_lsr = up->port.serial_in(&up->port, UART_LSR); in fsl8250_handle_irq()
66 (up->ier & (UART_IER_RLSI | UART_IER_RDI))) { in fsl8250_handle_irq()
71 if ((orig_lsr & UART_LSR_OE) && (up->overrun_backoff_time_ms > 0)) { in fsl8250_handle_irq()
72 unsigned long delay; in fsl8250_handle_irq() local
74 up->ier = port->serial_in(port, UART_IER); in fsl8250_handle_irq()
75 if (up->ier & (UART_IER_RLSI | UART_IER_RDI)) { in fsl8250_handle_irq()
76 port->ops->stop_rx(port); in fsl8250_handle_irq()
81 cancel_delayed_work(&up->overrun_backoff); in fsl8250_handle_irq()
84 delay = msecs_to_jiffies(up->overrun_backoff_time_ms); in fsl8250_handle_irq()
85 schedule_delayed_work(&up->overrun_backoff, delay); in fsl8250_handle_irq()
90 if ((lsr & UART_LSR_THRE) && (up->ier & UART_IER_THRI)) in fsl8250_handle_irq()
93 up->lsr_saved_flags |= orig_lsr & UART_LSR_BI; in fsl8250_handle_irq()
95 uart_unlock_and_check_sysrq_irqrestore(&up->port, flags); in fsl8250_handle_irq()
103 int line; member
110 struct device *dev = &pdev->dev; in fsl8250_acpi_probe()
118 return -EINVAL; in fsl8250_acpi_probe()
127 ret = device_property_read_u32(dev, "clock-frequency", in fsl8250_acpi_probe()
134 port8250.port.mapbase = regs->start; in fsl8250_acpi_probe()
149 return -ENOMEM; in fsl8250_acpi_probe()
153 return -ENOMEM; in fsl8250_acpi_probe()
155 data->line = serial8250_register_8250_port(&port8250); in fsl8250_acpi_probe()
156 if (data->line < 0) in fsl8250_acpi_probe()
157 return data->line; in fsl8250_acpi_probe()
167 serial8250_unregister_port(data->line); in fsl8250_acpi_remove()
178 .name = "fsl-16550-uart",