opnsense-src/sys/dev/uart
Ian Lepore 752e8c08fb Fix bugs exposed by the recent enabling of FIFOs in the pl011 uart. These
have been in the code all along, but were masked by having a fifo depth of
one byte at the hardware level, so everything kinda worked by accident.

The hardware interrupts when the TX fifo is half empty, so set
sc->sc_txfifosz to 8 bytes (half the hardware fifo size) to match.  This
eliminates dropped characters on output.

Restructure the read loop to consume all the bytes in the fifo by using
the "rx fifo empty" bit of the flags register rather than the "rx ready"
bit of the interrupt status register.  The rx-ready interrupt is cleared
when the number of bytes in the fifo fall below the interrupt trigger
level, leaving the fifo half full every time receive routine was called.
Now it loops until the fifo is completely empty every time (including
when the function is called due to a receive timeout as well as for
fifo-full).
2017-03-04 21:47:43 +00:00
..
uart.h Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_bus.h Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_bus_acpi.c Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_bus_ebus.c Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_bus_fdt.c Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_bus_isa.c Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_bus_pccard.c Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_bus_pci.c Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_bus_puc.c Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_bus_scc.c Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_core.c Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_cpu.h Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_cpu_acpi.h Add support to find the arm64 serial using the ACPI tables. This uses the 2016-11-21 19:26:58 +00:00
uart_cpu_arm64.c Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_cpu_fdt.c Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_cpu_fdt.h Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_cpu_powerpc.c Check all compatible strings on uart devices in powerpc 2016-08-28 21:31:21 +00:00
uart_cpu_sparc64.c
uart_cpu_x86.c
uart_dbg.c
uart_dev_imx.c Add support for the uart classes to set their default register shift value. 2015-04-11 17:16:23 +00:00
uart_dev_imx.h Remove a duplicate definition. 2015-12-05 15:09:19 +00:00
uart_dev_lpc.c sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
uart_dev_msm.c Cleanup unnecessary semicolons from the kernel. 2016-04-10 23:07:00 +00:00
uart_dev_msm.h Add uart driver for Qualcomm MSM 7000/8000 series chips. 2014-10-02 08:12:42 +00:00
uart_dev_ns8250.c Add support for UART found in the Ingenic XBurst system on chips. 2016-11-17 14:41:22 +00:00
uart_dev_ns8250.h Introduce grab and ungrab upcalls. When the kernel desires to grab the 2014-01-19 19:39:13 +00:00
uart_dev_pl011.c Fix bugs exposed by the recent enabling of FIFOs in the pl011 uart. These 2017-03-04 21:47:43 +00:00
uart_dev_quicc.c Add support for the uart classes to set their default register shift value. 2015-04-11 17:16:23 +00:00
uart_dev_sab82532.c Add support for the uart classes to set their default register shift value. 2015-04-11 17:16:23 +00:00
uart_dev_snps.c Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
uart_dev_ti8250.c Switch TI platform support code from using FreeBSD's custom-baked DTS 2015-05-22 03:16:18 +00:00
uart_dev_z8530.c Add support for the uart classes to set their default register shift value. 2015-04-11 17:16:23 +00:00
uart_if.m Introduce grab and ungrab upcalls. When the kernel desires to grab the 2014-01-19 19:39:13 +00:00
uart_kbd_sun.c sys: use our nitems() macro when param.h is available. 2016-04-21 19:40:10 +00:00
uart_kbd_sun.h
uart_kbd_sun_tables.h
uart_ppstypes.h Restore uart PPS signal capture polarity to its historical norm, and add an 2016-01-12 18:42:00 +00:00
uart_subr.c Remove slightly used const values that can be replaced with nitems(). 2016-04-21 15:38:28 +00:00
uart_tty.c - Make the code consistent with itself style-wise and bring it closer 2016-01-25 22:58:06 +00:00