Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1619616 > unrolled thread
| Started by | Joel Stanley <joel@jms.id.au> |
|---|---|
| First post | 2017-04-10 06:00 +0200 |
| Last post | 2017-04-10 06:00 +0200 |
| Articles | 2 — 1 participant |
Back to article view | Back to linux.kernel
[PATCH v3 0/2] drivers: serial: Aspeed VUART driver Joel Stanley <joel@jms.id.au> - 2017-04-10 06:00 +0200
[PATCH v3 1/2] serial: 8250: Add flag so drivers can avoid THRE probe Joel Stanley <joel@jms.id.au> - 2017-04-10 06:00 +0200
| From | Joel Stanley <joel@jms.id.au> |
|---|---|
| Date | 2017-04-10 06:00 +0200 |
| Subject | [PATCH v3 0/2] drivers: serial: Aspeed VUART driver |
| Message-ID | <tuyEF-3O8-3@gated-at.bofh.it> |
This is v3 of a driver for the Aspeed VUART. This version addresses feedback from Andy and Greg, and includes Rob's ack for the bindings change. The VUART is a serial device on the BMC side of the LPC bus that connects a BMC to it's host processor. We add a flag to the serial core to allow the driver to skip probing of the THRE irq behaviour, which could hang due to the host not reading bytes out of the buffer. We've been using this on systems for over a year, so it has seen a good amount of testing. Cheers, Joel Jeremy Kerr (1): drivers/serial: Add driver for Aspeed virtual UART Joel Stanley (1): serial: 8250: Add flag so drivers can avoid THRE probe Documentation/ABI/stable/sysfs-driver-aspeed-vuart | 15 + Documentation/devicetree/bindings/serial/8250.txt | 2 + drivers/tty/serial/8250/8250_aspeed_vuart.c | 323 +++++++++++++++++++++ drivers/tty/serial/8250/8250_port.c | 2 +- drivers/tty/serial/8250/Kconfig | 10 + drivers/tty/serial/8250/Makefile | 1 + include/linux/serial_core.h | 1 + 7 files changed, 353 insertions(+), 1 deletion(-) create mode 100644 Documentation/ABI/stable/sysfs-driver-aspeed-vuart create mode 100644 drivers/tty/serial/8250/8250_aspeed_vuart.c -- 2.11.0
[toc] | [next] | [standalone]
| From | Joel Stanley <joel@jms.id.au> |
|---|---|
| Date | 2017-04-10 06:00 +0200 |
| Subject | [PATCH v3 1/2] serial: 8250: Add flag so drivers can avoid THRE probe |
| Message-ID | <tuyEG-3O8-7@gated-at.bofh.it> |
| In reply to | #1619616 |
The probing of THRE irq behaviour assumes the other end will be reading
bytes out of the buffer in order to probe the port at driver init. In
some cases the other end cannot be relied upon to read these bytes, so
provide a flag for them to skip this step.
Bit 19 was chosen as the flags are a int and the top bits are taken.
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Joel Stanley <joel@jms.id.au>
---
v3:
- Correct the bit number in the changelog
v2:
- No change
drivers/tty/serial/8250/8250_port.c | 2 +-
include/linux/serial_core.h | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
index 6119516ef5fc..60a6c247340f 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
@@ -2229,7 +2229,7 @@ int serial8250_do_startup(struct uart_port *port)
}
}
- if (port->irq) {
+ if (port->irq && !(up->port.flags & UPF_NO_THRE_TEST)) {
unsigned char iir1;
/*
* Test for UARTs that do not reassert THRE when the
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index 58484fb35cc8..260245deec94 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -195,6 +195,7 @@ struct uart_port {
#define UPF_NO_TXEN_TEST ((__force upf_t) (1 << 15))
#define UPF_MAGIC_MULTIPLIER ((__force upf_t) ASYNC_MAGIC_MULTIPLIER /* 16 */ )
+#define UPF_NO_THRE_TEST ((__force upf_t) (1 << 19))
/* Port has hardware-assisted h/w flow control */
#define UPF_AUTO_CTS ((__force upf_t) (1 << 20))
#define UPF_AUTO_RTS ((__force upf_t) (1 << 21))
--
2.11.0
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web