From owner-p4-projects@FreeBSD.ORG Wed Mar 29 22:32:29 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2034216A428; Wed, 29 Mar 2006 22:32:29 +0000 (UTC) X-Original-To: perforce@freebsd.org 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 F3E4B16A420 for ; Wed, 29 Mar 2006 22:32:28 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BFCE243D46 for ; Wed, 29 Mar 2006 22:32:28 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2TMWSfn078693 for ; Wed, 29 Mar 2006 22:32:28 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2TMWSwp078690 for perforce@freebsd.org; Wed, 29 Mar 2006 22:32:28 GMT (envelope-from marcel@freebsd.org) Date: Wed, 29 Mar 2006 22:32:28 GMT Message-Id: <200603292232.k2TMWSwp078690@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 Cc: Subject: PERFORCE change 94270 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Mar 2006 22:32:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=94270 Change 94270 by marcel@marcel_nfs on 2006/03/29 22:31:33 Missed in previous changeset... Affected files ... .. //depot/projects/uart/dev/scc/scc_core.c#16 edit Differences ... ==== //depot/projects/uart/dev/scc/scc_core.c#16 (text+ko) ==== @@ -102,7 +102,7 @@ const char *sep; bus_space_handle_t bh; u_long base, size, start; - int c, error, mode, reset; + int c, error, mode, sysdev; /* * The sc_class field defines the type of SCC we're going to work @@ -142,8 +142,7 @@ * Create the control structures for our children. Probe devices * and query them to see if we can reset the hardware. */ - reset = 1; - + sysdev = 0; sc->sc_chan = malloc(sizeof(struct scc_chan) * cl->cl_channels, M_SCC, M_WAITOK | M_ZERO); base = rman_get_start(sc->sc_rres); @@ -170,18 +169,20 @@ m = &ch->ch_mode[mode]; m->m_chan = ch; m->m_mode = 1U << mode; - if ((cl->cl_modes & m->m_mode) == 0) + if ((cl->cl_modes & m->m_mode) == 0 || ch->ch_sysdev) continue; m->m_dev = device_add_child(dev, NULL, -1); device_set_ivars(m->m_dev, (void *)m); error = device_probe_child(dev, m->m_dev); if (!error) { m->m_probed = 1; - reset = (reset && SERDEV_RESET(m->m_dev)); + m->m_sysdev = SERDEV_SYSDEV(m->m_dev) ? 1 : 0; + ch->ch_sysdev |= m->m_sysdev; } } start += (cl->cl_range < 0) ? -size : size; + sysdev |= ch->ch_sysdev; } /* @@ -190,9 +191,9 @@ */ if (bootverbose) { device_printf(dev, "%sresetting hardware\n", - (reset) ? "" : "not "); + (sysdev) ? "not " : ""); } - error = SCC_ATTACH(sc, reset); + error = SCC_ATTACH(sc, !sysdev); if (error) goto fail;