The following reply was made to PR usb/149675; it has been noted by GNATS.

From: dfil...@freebsd.org (dfilter service)
To: bug-follo...@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-...@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
 
_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to