From owner-svn-src-head@FreeBSD.ORG Mon Oct 27 18:30:33 2008 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 865B11065673; Mon, 27 Oct 2008 18:30:33 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 743238FC17; Mon, 27 Oct 2008 18:30:33 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id m9RIUXZe049560; Mon, 27 Oct 2008 18:30:33 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id m9RIUXvn049557; Mon, 27 Oct 2008 18:30:33 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200810271830.m9RIUXvn049557@svn.freebsd.org> From: Sam Leffler Date: Mon, 27 Oct 2008 18:30:33 +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: r184369 - head/sys/dev/ath X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Oct 2008 18:30:33 -0000 Author: sam Date: Mon Oct 27 18:30:33 2008 New Revision: 184369 URL: http://svn.freebsd.org/changeset/base/184369 Log: prepare for a new hal Modified: head/sys/dev/ath/ah_osdep.c head/sys/dev/ath/if_ath.c head/sys/dev/ath/if_athvar.h Modified: head/sys/dev/ath/ah_osdep.c ============================================================================== --- head/sys/dev/ath/ah_osdep.c Mon Oct 27 18:22:44 2008 (r184368) +++ head/sys/dev/ath/ah_osdep.c Mon Oct 27 18:30:33 2008 (r184369) @@ -71,8 +71,12 @@ extern void ath_hal_assert_failed(const int lineno, const char* msg); #endif #ifdef AH_DEBUG +#if HAL_ABI_VERSION >= 0x08090101 +extern void HALDEBUG(struct ath_hal *ah, u_int mask, const char* fmt, ...); +#else extern void HALDEBUG(struct ath_hal *ah, const char* fmt, ...); extern void HALDEBUGn(struct ath_hal *ah, u_int level, const char* fmt, ...); +#endif #endif /* AH_DEBUG */ /* NB: put this here instead of the driver to avoid circular references */ @@ -139,6 +143,18 @@ ath_hal_ether_sprintf(const u_int8_t *ma } #ifdef AH_DEBUG +#if HAL_ABI_VERSION >= 0x08090101 +void +HALDEBUG(struct ath_hal *ah, u_int mask, const char* fmt, ...) +{ + if (ath_hal_debug & mask) { + __va_list ap; + va_start(ap, fmt); + ath_hal_vprintf(ah, fmt, ap); + va_end(ap); + } +} +#else void HALDEBUG(struct ath_hal *ah, const char* fmt, ...) { @@ -160,6 +176,7 @@ HALDEBUGn(struct ath_hal *ah, u_int leve va_end(ap); } } +#endif #endif /* AH_DEBUG */ #ifdef AH_DEBUG_ALQ Modified: head/sys/dev/ath/if_ath.c ============================================================================== --- head/sys/dev/ath/if_ath.c Mon Oct 27 18:22:44 2008 (r184368) +++ head/sys/dev/ath/if_ath.c Mon Oct 27 18:30:33 2008 (r184369) @@ -298,6 +298,7 @@ ath_attach(u_int16_t devid, struct ath_s struct ath_hal *ah = NULL; HAL_STATUS status; int error = 0, i; + u_int wmodes; DPRINTF(sc, ATH_DEBUG_ANY, "%s: devid 0x%x\n", __func__, devid); @@ -605,7 +606,8 @@ ath_attach(u_int16_t devid, struct ath_s sc->sc_hastsfadd = ath_hal_hastsfadjust(ah); if (ath_hal_hasfastframes(ah)) ic->ic_caps |= IEEE80211_C_FF; - if (ath_hal_getwirelessmodes(ah, ic->ic_regdomain.country) & (HAL_MODE_108G|HAL_MODE_TURBO)) + wmodes = ath_hal_getwirelessmodes(ah, ic->ic_regdomain.country); + if (wmodes & (HAL_MODE_108G|HAL_MODE_TURBO)) ic->ic_caps |= IEEE80211_C_TURBOP; /* @@ -2550,10 +2552,10 @@ ath_key_update_end(struct ieee80211vap * * * o always accept unicast, broadcast, and multicast traffic * o accept PHY error frames when hardware doesn't have MIB support - * to count and we need them for ANI (sta mode only at the moment) + * to count and we need them for ANI (sta mode only until recently) * and we are not scanning (ANI is disabled) - * NB: only with recent hal's; older hal's add rx filter bits out - * of sight and we need to blindly preserve them + * NB: older hal's add rx filter bits out of sight and we need to + * blindly preserve them * o probe request frames are accepted only when operating in * hostap, adhoc, or monitor modes * o enable promiscuous mode @@ -2580,15 +2582,17 @@ ath_calcrxfilter(struct ath_softc *sc) struct ieee80211com *ic = ifp->if_l2com; u_int32_t rfilt; -#if HAL_ABI_VERSION < 0x08011600 - rfilt = (ath_hal_getrxfilter(sc->sc_ah) & - (HAL_RX_FILTER_PHYRADAR | HAL_RX_FILTER_PHYERR)) - | HAL_RX_FILTER_UCAST | HAL_RX_FILTER_BCAST | HAL_RX_FILTER_MCAST; -#else rfilt = HAL_RX_FILTER_UCAST | HAL_RX_FILTER_BCAST | HAL_RX_FILTER_MCAST; +#if HAL_ABI_VERSION < 0x08011600 + rfilt |= (ath_hal_getrxfilter(sc->sc_ah) & + (HAL_RX_FILTER_PHYRADAR | HAL_RX_FILTER_PHYERR)); +#elif HAL_ABI_VERSION < 0x08060100 if (ic->ic_opmode == IEEE80211_M_STA && !sc->sc_needmib && !sc->sc_scanning) rfilt |= HAL_RX_FILTER_PHYERR; +#else + if (!sc->sc_needmib && !sc->sc_scanning) + rfilt |= HAL_RX_FILTER_PHYERR; #endif if (ic->ic_opmode != IEEE80211_M_STA) rfilt |= HAL_RX_FILTER_PROBEREQ; Modified: head/sys/dev/ath/if_athvar.h ============================================================================== --- head/sys/dev/ath/if_athvar.h Mon Oct 27 18:22:44 2008 (r184368) +++ head/sys/dev/ath/if_athvar.h Mon Oct 27 18:30:33 2008 (r184369) @@ -506,6 +506,8 @@ void ath_intr(void *); (ath_hal_getcapability(_ah, HAL_CAP_CIPHER, _cipher, NULL) == HAL_OK) #define ath_hal_getregdomain(_ah, _prd) \ (ath_hal_getcapability(_ah, HAL_CAP_REG_DMN, 0, (_prd)) == HAL_OK) +#if HAL_ABI_VERSION < 0x08090100 +/* XXX wrong for anything but amd64 and i386 */ #if defined(__LP64__) #define ath_hal_setregdomain(_ah, _rd) \ (*(uint16_t *)(((uint8_t *)&(_ah)[1]) + 176) = (_rd)) @@ -513,6 +515,10 @@ void ath_intr(void *); #define ath_hal_setregdomain(_ah, _rd) \ (*(uint16_t *)(((uint8_t *)&(_ah)[1]) + 128) = (_rd)) #endif +#else +#define ath_hal_setregdomain(_ah, _rd) \ + ath_hal_setcapability(_ah, HAL_CAP_REG_DMN, 0, _rd, NULL) +#endif #define ath_hal_getcountrycode(_ah, _pcc) \ (*(_pcc) = (_ah)->ah_countryCode) #define ath_hal_gettkipmic(_ah) \