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