From owner-p4-projects@FreeBSD.ORG Sat Aug 23 02:09:24 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0490A16A4DE; Sat, 23 Aug 2003 02:09:23 -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 0160E16A4DD for ; Sat, 23 Aug 2003 02:09:22 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 30A5244220 for ; Sat, 23 Aug 2003 00:04:17 -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 h7N74H0U091113 for ; Sat, 23 Aug 2003 00:04:17 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h7N73pVa091105 for perforce@freebsd.org; Sat, 23 Aug 2003 00:03:51 -0700 (PDT) Date: Sat, 23 Aug 2003 00:03:51 -0700 (PDT) Message-Id: <200308230703.h7N73pVa091105@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 36742 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: Sat, 23 Aug 2003 09:09:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=36742 Change 36742 by marcel@marcel_nfs on 2003/08/23 00:03:15 Move "signals" in ns8250_softc to "sc_hwsig" in uart_softc. All hardware drivers need a place to keep track of signals, so we might as well provide a service. The abstract driver does not use this field. Affected files ... .. //depot/projects/uart/dev/uart/uart_bus.h#16 edit .. //depot/projects/uart/dev/uart/uart_dev_ns8250.c#19 edit Differences ... ==== //depot/projects/uart/dev/uart/uart_bus.h#16 (text+ko) ==== @@ -115,6 +115,7 @@ int sc_txbusy:1; /* This UART is transmitting. */ int sc_altbrk; /* State for alt break sequence. */ + int sc_hwsig; /* Signal state. Used by HW driver. */ /* Receiver data. */ uint16_t *sc_rxbuf; ==== //depot/projects/uart/dev/uart/uart_dev_ns8250.c#19 (text+ko) ==== @@ -339,7 +339,6 @@ uint8_t fcr; uint8_t ier; uint8_t mcr; - int signals; }; static int ns8250_bus_attach(struct uart_softc *); @@ -397,9 +396,9 @@ ns8250_bus_flush(sc, UART_FLUSH_RECEIVER|UART_FLUSH_TRANSMITTER); if (ns8250->mcr & MCR_DTR) - ns8250->signals |= UART_SIG_DTR; + sc->sc_hwsig |= UART_SIG_DTR; if (ns8250->mcr & MCR_RTS) - ns8250->signals |= UART_SIG_RTS; + sc->sc_hwsig |= UART_SIG_RTS; ns8250_bus_getsig(sc); ns8250_clrint(bas); @@ -440,17 +439,16 @@ static int ns8250_bus_getsig(struct uart_softc *sc) { - struct ns8250_softc *ns8250 = (struct ns8250_softc*)sc; + int sig; uint8_t msr; - int sig; msr = uart_getreg(&sc->sc_bas, REG_MSR); - sig = ns8250->signals; + sig = sc->sc_hwsig; SIGCHG(msr & MSR_DSR, sig, UART_SIG_DSR, UART_SIG_DDSR); SIGCHG(msr & MSR_CTS, sig, UART_SIG_CTS, UART_SIG_DCTS); SIGCHG(msr & MSR_DCD, sig, UART_SIG_DCD, UART_SIG_DDCD); SIGCHG(msr & MSR_RI, sig, UART_SIG_RI, UART_SIG_DRI); - ns8250->signals = sig & ~UART_SIGMASK_DELTA; + sc->sc_hwsig = sig & ~UART_SIGMASK_DELTA; return (sig); } @@ -652,17 +650,17 @@ uint8_t lcr; if (sig & UART_SIG_DDTR) { - SIGCHG(sig & UART_SIG_DTR, ns8250->signals, UART_SIG_DTR, + SIGCHG(sig & UART_SIG_DTR, sc->sc_hwsig, UART_SIG_DTR, UART_SIG_DDTR); } if (sig & UART_SIG_DRTS) { - SIGCHG(sig & UART_SIG_RTS, ns8250->signals, UART_SIG_RTS, + SIGCHG(sig & UART_SIG_RTS, sc->sc_hwsig, UART_SIG_RTS, UART_SIG_DRTS); } ns8250->mcr &= ~(MCR_DTR|MCR_RTS); - if (ns8250->signals & UART_SIG_DTR) + if (sc->sc_hwsig & UART_SIG_DTR) ns8250->mcr |= MCR_DTR; - if (ns8250->signals & UART_SIG_RTS) + if (sc->sc_hwsig & UART_SIG_RTS) ns8250->mcr |= MCR_RTS; uart_setreg(&sc->sc_bas, REG_MCR, ns8250->mcr); uart_barrier(&sc->sc_bas);