usb/149675: commit references a PR
dfilter service
dfilter at FreeBSD.ORG
Sun Nov 28 07:30:19 UTC 2010
The following reply was made to PR usb/149675; it has been noted by GNATS.
From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: usb/149675: commit references a PR
Date: Sun, 28 Nov 2010 07:28:18 +0000 (UTC)
Author: thompsa
Date: Sun Nov 28 07:28:10 2010
New Revision: 215986
URL: http://svn.freebsd.org/changeset/base/215986
Log:
MFC r213872
Fix forwarding of Line Register Status changes to TTY layer.
PR: usb/149675
Modified:
stable/8/sys/dev/usb/serial/usb_serial.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
Modified: stable/8/sys/dev/usb/serial/usb_serial.c
==============================================================================
--- stable/8/sys/dev/usb/serial/usb_serial.c Sun Nov 28 07:23:05 2010 (r215985)
+++ stable/8/sys/dev/usb/serial/usb_serial.c Sun Nov 28 07:28:10 2010 (r215986)
@@ -942,6 +942,7 @@ ucom_cfg_status_change(struct usb_proc_m
uint8_t new_msr;
uint8_t new_lsr;
uint8_t onoff;
+ uint8_t lsr_delta;
tp = sc->sc_tty;
@@ -965,6 +966,7 @@ ucom_cfg_status_change(struct usb_proc_m
return;
}
onoff = ((sc->sc_msr ^ new_msr) & SER_DCD);
+ lsr_delta = (sc->sc_lsr ^ new_lsr);
sc->sc_msr = new_msr;
sc->sc_lsr = new_lsr;
@@ -977,6 +979,30 @@ ucom_cfg_status_change(struct usb_proc_m
ttydisc_modem(tp, onoff);
}
+
+ if ((lsr_delta & ULSR_BI) && (sc->sc_lsr & ULSR_BI)) {
+
+ DPRINTF("BREAK detected\n");
+
+ ttydisc_rint(tp, 0, TRE_BREAK);
+ ttydisc_rint_done(tp);
+ }
+
+ if ((lsr_delta & ULSR_FE) && (sc->sc_lsr & ULSR_FE)) {
+
+ DPRINTF("Frame error detected\n");
+
+ ttydisc_rint(tp, 0, TRE_FRAMING);
+ ttydisc_rint_done(tp);
+ }
+
+ if ((lsr_delta & ULSR_PE) && (sc->sc_lsr & ULSR_PE)) {
+
+ DPRINTF("Parity error detected\n");
+
+ ttydisc_rint(tp, 0, TRE_PARITY);
+ ttydisc_rint_done(tp);
+ }
}
void
_______________________________________________
svn-src-all at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
More information about the freebsd-usb
mailing list