From owner-p4-projects@FreeBSD.ORG Mon Jul 28 17:51:24 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5CDCF1065676; Mon, 28 Jul 2008 17:51:24 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1F2D71065672 for ; Mon, 28 Jul 2008 17:51:24 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0206F8FC17 for ; Mon, 28 Jul 2008 17:51:24 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.2/8.14.2) with ESMTP id m6SHpNXS054437 for ; Mon, 28 Jul 2008 17:51:23 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6SHpNoT054435 for perforce@freebsd.org; Mon, 28 Jul 2008 17:51:23 GMT (envelope-from jhb@freebsd.org) Date: Mon, 28 Jul 2008 17:51:23 GMT Message-Id: <200807281751.m6SHpNoT054435@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 146135 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: Mon, 28 Jul 2008 17:51:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=146135 Change 146135 by jhb@jhb_mutex on 2008/07/28 17:50:38 IFC @146133 Affected files ... .. //depot/projects/smpng/sys/dev/wi/if_wi.c#89 integrate .. //depot/projects/smpng/sys/dev/wi/if_wivar.h#27 integrate .. //depot/projects/smpng/sys/kern/sched_4bsd.c#85 integrate Differences ... ==== //depot/projects/smpng/sys/dev/wi/if_wi.c#89 (text+ko) ==== @@ -60,7 +60,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.219 2008/07/26 17:04:30 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.220 2008/07/28 17:00:37 imp Exp $"); #define WI_HERMES_STATS_WAR /* Work around stats counter bug. */ @@ -225,6 +225,8 @@ { 0, NULL, 0 }, }; +static char *wi_firmware_names[] = { "none", "Hermes", "Intersil", "Symbol" }; + devclass_t wi_devclass; int @@ -237,6 +239,8 @@ u_int16_t val; u_int8_t ratebuf[2 + IEEE80211_RATE_SIZE]; struct ieee80211_rateset *rs; + struct sysctl_ctx_list *sctx; + struct sysctl_oid *soid; static const u_int8_t empty_macaddr[IEEE80211_ADDR_LEN] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; @@ -278,6 +282,25 @@ return EOPNOTSUPP; } + /* Export info about the device via sysctl */ + sctx = device_get_sysctl_ctx(dev); + soid = device_get_sysctl_tree(dev); + SYSCTL_ADD_STRING(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, + "firmware_type", CTLFLAG_RD, + wi_firmware_names[sc->sc_firmware_type], 0, + "Firmware type string"); + SYSCTL_ADD_INT(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, "sta_version", + CTLFLAG_RD, &sc->sc_sta_firmware_ver, 0, + "Station Firmware version"); + if (sc->sc_firmware_type == WI_INTERSIL) + SYSCTL_ADD_INT(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, + "pri_version", CTLFLAG_RD, &sc->sc_pri_firmware_ver, 0, + "Primary Firmware version"); + SYSCTL_ADD_XINT(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, "nic_id", + CTLFLAG_RD, &sc->sc_nic_id, 0, "NIC id"); + SYSCTL_ADD_STRING(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, "nic_name", + CTLFLAG_RD, sc->sc_nic_name, 0, "NIC name"); + mtx_init(&sc->sc_mtx, device_get_nameunit(dev), MTX_NETWORK_LOCK, MTX_DEF | MTX_RECURSE); callout_init_mtx(&sc->sc_watchdog, &sc->sc_mtx, 0); @@ -1633,25 +1656,26 @@ memset(ver, 0, sizeof(ver)); len = sizeof(ver); wi_read_rid(sc, WI_RID_CARD_ID, ver, &len); - device_printf(sc->sc_dev, "using "); sc->sc_firmware_type = WI_NOTYPE; + sc->sc_nic_id = le16toh(ver[0]); for (id = wi_card_ident; id->card_name != NULL; id++) { - if (le16toh(ver[0]) == id->card_id) { - printf("%s", id->card_name); + if (sc->sc_nic_id == id->card_id) { + sc->sc_nic_name = id->card_name; sc->sc_firmware_type = id->firm_type; break; } } if (sc->sc_firmware_type == WI_NOTYPE) { - if (le16toh(ver[0]) & 0x8000) { - printf("Unknown PRISM2 chip"); + if (sc->sc_nic_id & 0x8000) { sc->sc_firmware_type = WI_INTERSIL; + sc->sc_nic_name = "Unknown Prism chip"; } else { - printf("Unknown Lucent chip"); sc->sc_firmware_type = WI_LUCENT; + sc->sc_nic_name = "Unknown Lucent chip"; } } + device_printf(sc->sc_dev, "using %s\n", sc->sc_nic_name); /* get primary firmware version (Only Prism chips) */ if (sc->sc_firmware_type != WI_LUCENT) { @@ -1684,19 +1708,19 @@ (p[6] - '0') * 10 + (p[7] - '0'); } } - printf("\n"); - device_printf(sc->sc_dev, "%s Firmware: ", - sc->sc_firmware_type == WI_LUCENT ? "Lucent" : - (sc->sc_firmware_type == WI_SYMBOL ? "Symbol" : "Intersil")); - if (sc->sc_firmware_type != WI_LUCENT) /* XXX */ - printf("Primary (%u.%u.%u), ", - sc->sc_pri_firmware_ver / 10000, - (sc->sc_pri_firmware_ver % 10000) / 100, - sc->sc_pri_firmware_ver % 100); - printf("Station (%u.%u.%u)\n", - sc->sc_sta_firmware_ver / 10000, - (sc->sc_sta_firmware_ver % 10000) / 100, - sc->sc_sta_firmware_ver % 100); + if (bootverbose) { + device_printf(sc->sc_dev, "%s Firmware: ", + wi_firmware_names[sc->sc_firmware_type]); + if (sc->sc_firmware_type != WI_LUCENT) /* XXX */ + printf("Primary (%u.%u.%u), ", + sc->sc_pri_firmware_ver / 10000, + (sc->sc_pri_firmware_ver % 10000) / 100, + sc->sc_pri_firmware_ver % 100); + printf("Station (%u.%u.%u)\n", + sc->sc_sta_firmware_ver / 10000, + (sc->sc_sta_firmware_ver % 10000) / 100, + sc->sc_sta_firmware_ver % 100); + } } static int ==== //depot/projects/smpng/sys/dev/wi/if_wivar.h#27 (text+ko) ==== @@ -31,7 +31,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/wi/if_wivar.h,v 1.32 2008/04/20 20:35:38 sam Exp $ + * $FreeBSD: src/sys/dev/wi/if_wivar.h,v 1.33 2008/07/28 17:00:37 imp Exp $ */ /* @@ -87,6 +87,8 @@ #define WI_SYMBOL 3 int sc_pri_firmware_ver; /* Primary firmware */ int sc_sta_firmware_ver; /* Station firmware */ + unsigned int sc_nic_id; /* Type of NIC */ + char * sc_nic_name; int wi_bus_type; /* Bus attachment type */ struct resource * local; ==== //depot/projects/smpng/sys/kern/sched_4bsd.c#85 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.127 2008/07/28 15:52:02 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.128 2008/07/28 17:25:24 jhb Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_sched.h"