Date: Wed, 13 Feb 2008 06:55:18 GMT From: Sepherosa Ziehau <sephe@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 135292 for review Message-ID: <200802130655.m1D6tIRE020450@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=135292 Change 135292 by sephe@sephe_zealot:sam_wifi on 2008/02/13 06:55:05 - Hook sysctl nodes - Add sysctl variable to disable software TX power calibration - Indentation Obtained from: DragonFly Affected files ... .. //depot/projects/wifi/sys/dev/bwi/bwimac.c#4 edit .. //depot/projects/wifi/sys/dev/bwi/if_bwi.c#11 edit .. //depot/projects/wifi/sys/dev/bwi/if_bwivar.h#7 edit Differences ... ==== //depot/projects/wifi/sys/dev/bwi/bwimac.c#4 (text+ko) ==== @@ -1779,6 +1779,9 @@ int error, i, ofdm_tssi; int txpwr_diff, rf_atten_adj, bbp_atten_adj; + if (!sc->sc_txpwr_calib) + return; + if (mac->mac_flags & BWI_MAC_F_TPCTL_ERROR) { DPRINTF(sc, BWI_DBG_MAC | BWI_DBG_TXPOWER, "%s\n", "tpctl error happened, can't set txpower"); ==== //depot/projects/wifi/sys/dev/bwi/if_bwi.c#11 (text+ko) ==== @@ -338,6 +338,7 @@ bwi_attach(struct bwi_softc *sc) { struct ieee80211com *ic = &sc->sc_ic; + device_t dev = sc->sc_dev; struct ifnet *ifp; struct bwi_mac *mac; struct bwi_phy *phy; @@ -351,6 +352,7 @@ sc->sc_fw_version = BWI_FW_VERSION3; sc->sc_led_idle = (2350 * hz) / 1000; sc->sc_led_blink = 1; + sc->sc_txpwr_calib = 1; sc->sc_debug = bwi_debug; bwi_power_on(sc, 1); @@ -417,18 +419,42 @@ ifp = sc->sc_ifp = if_alloc(IFT_ETHER); if (ifp == NULL) { - device_printf(sc->sc_dev, "can not if_alloc()\n"); + device_printf(dev, "can not if_alloc()\n"); error = ENOSPC; goto fail; } /* set these up early for if_printf use */ - if_initname(ifp, device_get_name(sc->sc_dev), - device_get_unit(sc->sc_dev)); + if_initname(ifp, device_get_name(dev), device_get_unit(dev)); callout_init(&sc->sc_calib_ch, CALLOUT_MPSAFE); callout_init(&sc->sc_amrr_ch, CALLOUT_MPSAFE); + /* + * Add sysctl nodes + */ + SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, + "fw_version", CTLFLAG_RD, &sc->sc_fw_version, 0, + "Firmware version"); + SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, + "led_idle", CTLFLAG_RW, &sc->sc_led_idle, 0, + "# ticks before LED enters idle state"); + SYSCTL_ADD_INT(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, + "led_blink", CTLFLAG_RW, &sc->sc_led_blink, 0, + "Allow LED to blink"); + SYSCTL_ADD_INT(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, + "txpwr_calib", CTLFLAG_RW, &sc->sc_txpwr_calib, 0, + "Enable software TX power calibration"); +#ifdef BWI_DEBUG + SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, + "debug", CTLFLAG_RW, &sc->sc_debug, 0, "Debug flags"); +#endif + ifp->if_softc = sc; ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_init = bwi_init; @@ -462,7 +488,7 @@ if (IEEE80211_IS_MULTICAST(ic->ic_myaddr)) { bwi_get_eaddr(sc, BWI_SPROM_11A_EADDR, ic->ic_myaddr); if (IEEE80211_IS_MULTICAST(ic->ic_myaddr)) { - device_printf(sc->sc_dev, + device_printf(dev, "invalid MAC address: %6D\n", ic->ic_myaddr, ":"); } @@ -1548,13 +1574,13 @@ bwi_enable_intrs(sc, BWI_INIT_INTRS); if (sc->sc_blink_led != NULL && sc->sc_led_blink) { - int evt = BWI_LED_EVENT_NONE; + int evt = BWI_LED_EVENT_NONE; - if (tx && rx_data > 0) { - if (sc->sc_rx_rate > sc->sc_tx_rate) - evt = BWI_LED_EVENT_RX; - else - evt = BWI_LED_EVENT_TX; + if (tx && rx_data > 0) { + if (sc->sc_rx_rate > sc->sc_tx_rate) + evt = BWI_LED_EVENT_RX; + else + evt = BWI_LED_EVENT_TX; } else if (tx) { evt = BWI_LED_EVENT_TX; } else if (rx_data > 0) { ==== //depot/projects/wifi/sys/dev/bwi/if_bwivar.h#7 (text+ko) ==== @@ -630,6 +630,7 @@ int sc_dwell_time; /* milliseconds */ int sc_led_idle; int sc_led_blink; + int sc_txpwr_calib; uint32_t sc_debug; /* BWI_DBG_ */ }; @@ -654,11 +655,11 @@ #define BWI_LOCK_INIT(sc) \ mtx_init(&(sc)->sc_mtx, device_get_nameunit((sc)->sc_dev), \ - MTX_NETWORK_LOCK, MTX_DEF | MTX_RECURSE); + MTX_NETWORK_LOCK, MTX_DEF | MTX_RECURSE) #define BWI_LOCK_DESTROY(sc) mtx_destroy(&(sc)->sc_mtx) -#define BWI_LOCK(sc) mtx_lock(&sc->sc_mtx) -#define BWI_UNLOCK(sc) mtx_unlock(&sc->sc_mtx) -#define BWI_LOCK_ASSERT(sc) mtx_assert(&sc->sc_mtx, MA_OWNED) +#define BWI_LOCK(sc) mtx_lock(&(sc)->sc_mtx) +#define BWI_UNLOCK(sc) mtx_unlock(&(sc)->sc_mtx) +#define BWI_LOCK_ASSERT(sc) mtx_assert(&(sc)->sc_mtx, MA_OWNED) int bwi_attach(struct bwi_softc *); int bwi_detach(struct bwi_softc *);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200802130655.m1D6tIRE020450>