forked from Minki/linux
ARM: 9005/1: debug: Select flow control for all debug UARTs
Instead of a flow control selection mechanism specifically for 8250, make this available for all debug UARTs. If the debug UART supports waiting for CTS to be asserted, then this code can be activated for terminals that need it. We keep the defaults for EBSA110, Footbridge, Gemini and RPC so that this still works as expected for these older platforms: they assume that flow control shall be enabled for debug prints. I switch the location of the check for ifdef CONFIG_DEBUG_UART_FLOW_CONTROL from the actual debug UART drivers: the code would get compiled-out for 8250 and Tegra unless their custom config (or passing -DFLOW_CONTROL in the Tegra case) was not set. Instead this is conditional at the three places where we print debug messages. The idea is that debug UARTs can be implemented without this ifdef boilerplate so they look cleaner, alas the ifdef has to be somewhere. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
This commit is contained in:
parent
2c50a570e9
commit
4df24fef09
@ -1546,6 +1546,17 @@ config DEBUG_SIRFSOC_UART
|
||||
bool
|
||||
depends on ARCH_SIRF
|
||||
|
||||
config DEBUG_UART_FLOW_CONTROL
|
||||
bool "Enable flow control (CTS) for the debug UART"
|
||||
depends on DEBUG_LL
|
||||
default y if ARCH_EBSA110 || DEBUG_FOOTBRIDGE_COM1 || DEBUG_GEMINI || ARCH_RPC
|
||||
help
|
||||
Some UART ports are connected to terminals that will use modem
|
||||
control signals to indicate whether they are ready to receive text.
|
||||
In practice this means that the terminal is asserting the special
|
||||
control signal CTS (Clear To Send). If your debug UART supports
|
||||
this and your debug terminal will require it, enable this option.
|
||||
|
||||
config DEBUG_LL_INCLUDE
|
||||
string
|
||||
default "debug/sa1100.S" if DEBUG_SA1100
|
||||
@ -1893,11 +1904,6 @@ config DEBUG_UART_8250_PALMCHIP
|
||||
except for having a different register layout. Say Y here if
|
||||
the debug UART is of this type.
|
||||
|
||||
config DEBUG_UART_8250_FLOW_CONTROL
|
||||
bool "Enable flow control for 8250 UART"
|
||||
depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
|
||||
default y if ARCH_EBSA110 || DEBUG_FOOTBRIDGE_COM1 || DEBUG_GEMINI || ARCH_RPC
|
||||
|
||||
config DEBUG_UNCOMPRESS
|
||||
bool "Enable decompressor debugging via DEBUG_LL output"
|
||||
depends on ARCH_MULTIPLATFORM || PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
|
||||
|
@ -8,7 +8,9 @@
|
||||
|
||||
ENTRY(putc)
|
||||
addruart r1, r2, r3
|
||||
#ifdef CONFIG_DEBUG_UART_FLOW_CONTROL
|
||||
waituartcts r3, r1
|
||||
#endif
|
||||
waituarttxrdy r3, r1
|
||||
senduart r0, r1
|
||||
busyuart r3, r1
|
||||
|
@ -49,9 +49,7 @@
|
||||
.endm
|
||||
|
||||
.macro waituartcts,rd,rx
|
||||
#ifdef CONFIG_DEBUG_UART_8250_FLOW_CONTROL
|
||||
1001: load \rd, [\rx, #UART_MSR << UART_SHIFT]
|
||||
tst \rd, #UART_MSR_CTS
|
||||
beq 1001b
|
||||
#endif
|
||||
.endm
|
||||
|
@ -179,14 +179,12 @@
|
||||
.endm
|
||||
|
||||
.macro waituartcts, rd, rx
|
||||
#ifdef FLOW_CONTROL
|
||||
cmp \rx, #0
|
||||
beq 1002f
|
||||
1001: ldrb \rd, [\rx, #UART_MSR << UART_SHIFT]
|
||||
tst \rd, #UART_MSR_CTS
|
||||
beq 1001b
|
||||
1002:
|
||||
#endif
|
||||
.endm
|
||||
|
||||
.macro waituarttxrdy,rd,rx
|
||||
|
@ -89,12 +89,17 @@ ENTRY(printascii)
|
||||
2: teq r1, #'\n'
|
||||
bne 3f
|
||||
mov r1, #'\r'
|
||||
#ifdef CONFIG_DEBUG_UART_FLOW_CONTROL
|
||||
waituartcts r2, r3
|
||||
#endif
|
||||
waituarttxrdy r2, r3
|
||||
senduart r1, r3
|
||||
busyuart r2, r3
|
||||
mov r1, #'\n'
|
||||
3: waituartcts r2, r3
|
||||
3:
|
||||
#ifdef CONFIG_DEBUG_UART_FLOW_CONTROL
|
||||
waituartcts r2, r3
|
||||
#endif
|
||||
waituarttxrdy r2, r3
|
||||
senduart r1, r3
|
||||
busyuart r2, r3
|
||||
|
Loading…
Reference in New Issue
Block a user