Page MenuHomeFreeBSD

D16399.id45706.diff
No OneTemporary

D16399.id45706.diff

Index: sys/dev/uart/uart.h
===================================================================
--- sys/dev/uart/uart.h
+++ sys/dev/uart/uart.h
@@ -44,6 +44,7 @@
u_int rclk;
u_int regshft;
u_int regiowidth;
+ u_int busy_detect;
};
#define uart_regofs(bas, reg) ((reg) << (bas)->regshft)
Index: sys/dev/uart/uart_dev_ns8250.c
===================================================================
--- sys/dev/uart/uart_dev_ns8250.c
+++ sys/dev/uart/uart_dev_ns8250.c
@@ -468,7 +468,7 @@
#endif
bas = &sc->sc_bas;
-
+ ns8250->busy_detect = bas->busy_detect;
ns8250->mcr = uart_getreg(bas, REG_MCR);
ns8250->fcr = FCR_ENABLE;
#ifdef CPU_XBURST
Index: sys/dev/uart/uart_subr.c
===================================================================
--- sys/dev/uart/uart_subr.c
+++ sys/dev/uart/uart_subr.c
@@ -49,6 +49,8 @@
#define UART_TAG_RS 7
#define UART_TAG_SB 8
#define UART_TAG_XO 9
+#define UART_TAG_BD 10
+
static struct uart_class *uart_classes[] = {
&uart_ns8250_class,
@@ -124,6 +126,10 @@
{
int tag;
+ if ((*p)[0] == 'b' && (*p)[1] == 'd') {
+ tag = UART_TAG_BD;
+ goto out;
+ }
if ((*p)[0] == 'b' && (*p)[1] == 'r') {
tag = UART_TAG_BR;
goto out;
@@ -179,6 +185,7 @@
* separated by commas. Each attribute is a tag-value pair with the tag and
* value separated by a colon. Supported tags are:
*
+ * bd = Busy Detect
* br = Baudrate
* ch = Channel
* db = Data bits
@@ -242,6 +249,9 @@
spec = cp;
for (;;) {
switch (uart_parse_tag(&spec)) {
+ case UART_TAG_BD:
+ di->bas.busy_detect = uart_parse_long(&spec);
+ break;
case UART_TAG_BR:
di->baudrate = uart_parse_long(&spec);
break;

File Metadata

Mime Type
text/plain
Expires
Sat, Jul 25, 12:33 PM (12 h, 6 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35473446
Default Alt Text
D16399.id45706.diff (1 KB)

Event Timeline