From owner-p4-projects@FreeBSD.ORG Wed Sep 3 23:42:38 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 26D8416A4C1; Wed, 3 Sep 2003 23:42:38 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D890716A4BF for ; Wed, 3 Sep 2003 23:42:37 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6864843FBD for ; Wed, 3 Sep 2003 23:42:37 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h846gb0U065707 for ; Wed, 3 Sep 2003 23:42:37 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h846gaDI065704 for perforce@freebsd.org; Wed, 3 Sep 2003 23:42:36 -0700 (PDT) Date: Wed, 3 Sep 2003 23:42:36 -0700 (PDT) Message-Id: <200309040642.h846gaDI065704@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 37484 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Sep 2003 06:42:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=37484 Change 37484 by marcel@marcel_nfs on 2003/09/03 23:42:28 Disable input flow control using CTS. I think the problem is that we're writing the status (ie parity error or framing error) into the receive FIFO. As such, we can only receive half as much characters than when we don't do that. The threshold at which RTS is deasserted is 28. Of course this assumes that we can write 32 characters in the FIFO. But if you write status bytes as wellm the FIFO is full at 16. Hence, we never reach the threshold. The alternative is to not write the status byte into the RFIFO, but that means that we won't know which character or characters in the FIFO have parity errors and/or framing errors. We just get an interrupt to tell us that the UART has detected some error, which given all the non-deterministic latencies is not informative. The Linux driver apparently marks ALL characters with the parity or framing error. I think that's rather brain- dead. Affected files ... .. //depot/projects/uart/dev/uart/uart_dev_sab82532.c#22 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_dev_sab82532.c#22 (text+ko) ==== @@ -556,7 +556,7 @@ break; case SAB_VSTR_V_32: vstr = "v3.2"; - sc->sc_hwiflow = 1; + sc->sc_hwiflow = 0; /* CTS doesn't work with RFC:RFDF. */ sc->sc_hwoflow = 1; break; default: