From owner-svn-src-all@FreeBSD.ORG Wed Nov 2 20:45:44 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B8C731065670; Wed, 2 Nov 2011 20:45:44 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A86FA8FC16; Wed, 2 Nov 2011 20:45:44 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pA2KjiYp037590; Wed, 2 Nov 2011 20:45:44 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pA2KjiYS037588; Wed, 2 Nov 2011 20:45:44 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201111022045.pA2KjiYS037588@svn.freebsd.org> From: Olivier Houchard Date: Wed, 2 Nov 2011 20:45:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227032 - head/sys/dev/uart X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 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, 02 Nov 2011 20:45:44 -0000 Author: cognet Date: Wed Nov 2 20:45:44 2011 New Revision: 227032 URL: http://svn.freebsd.org/changeset/base/227032 Log: Disable the TX ready interrupts once we received one, some UART won't clear the IIR_TXRDY bit upon reading. Reviewed by: marcel Modified: head/sys/dev/uart/uart_dev_ns8250.c Modified: head/sys/dev/uart/uart_dev_ns8250.c ============================================================================== --- head/sys/dev/uart/uart_dev_ns8250.c Wed Nov 2 20:11:19 2011 (r227031) +++ head/sys/dev/uart/uart_dev_ns8250.c Wed Nov 2 20:45:44 2011 (r227032) @@ -582,9 +582,11 @@ static int ns8250_bus_ipend(struct uart_softc *sc) { struct uart_bas *bas; + struct ns8250_softc *ns8250; int ipend; uint8_t iir, lsr; + ns8250 = (struct ns8250_softc *)sc; bas = &sc->sc_bas; uart_lock(sc->sc_hwmtx); iir = uart_getreg(bas, REG_IIR); @@ -602,9 +604,10 @@ ns8250_bus_ipend(struct uart_softc *sc) if (lsr & LSR_RXRDY) ipend |= SER_INT_RXREADY; } else { - if (iir & IIR_TXRDY) + if (iir & IIR_TXRDY) { ipend |= SER_INT_TXIDLE; - else + uart_setreg(bas, REG_IER, ns8250->ier); + } else ipend |= SER_INT_SIGCHG; } if (ipend == 0)