From owner-svn-src-all@freebsd.org Wed Jan 20 02:24:39 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DD49EA89509 for ; Wed, 20 Jan 2016 02:24:39 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from erouter6.ore.mailhop.org (erouter6.ore.mailhop.org [54.187.213.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BD2861513 for ; Wed, 20 Jan 2016 02:24:39 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound3.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Wed, 20 Jan 2016 02:22:55 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.14.9) with ESMTP id u0K2OVUf010508; Tue, 19 Jan 2016 19:24:31 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1453256671.46848.98.camel@freebsd.org> Subject: Re: svn commit: r294362 - in head/sys: dev/uart kern sys From: Ian Lepore To: Marius Strobl , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Tue, 19 Jan 2016 19:24:31 -0700 In-Reply-To: <201601192334.u0JNYST5080954@repo.freebsd.org> References: <201601192334.u0JNYST5080954@repo.freebsd.org> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jan 2016 02:24:40 -0000 On Tue, 2016-01-19 at 23:34 +0000, Marius Strobl wrote: > Author: marius > Date: Tue Jan 19 23:34:27 2016 > New Revision: 294362 > URL: https://svnweb.freebsd.org/changeset/base/294362 > > Log: > Fix tty_drain() and, thus, TIOCDRAIN of the current tty(4) incarnation > to actually wait until the TX FIFOs of UARTs have be drained before > returning. This is done by bringing the equivalent of the TS_BUSY flag > found in the previous implementation back in an ABI-preserving way. > Reported and tested by: Patrick Powell > > Most likely, drivers for USB-serial-adapters likewise incorporating > TX FIFOs as well as other terminal devices that buffer output in some > form should also provide implementations of tsw_busy. > > MFC after:> > 3 days > > Modified: > head/sys/dev/uart/uart_tty.c > head/sys/kern/tty.c > head/sys/sys/ttydevsw.h This rocks. It would rock even more if uart's sc_txbusy actually meant what its name implies, but for some hardware what it really indicates is "the hardware can/cannot accept more data" which is not the same as "all data has been transmitted." Even for hardware that doesn't signal txidle until the fifo is completely empty (not just at a lowater mark), there may still be a last byte on the way out from a tx holding register. -- Ian