From owner-p4-projects@FreeBSD.ORG Mon Jun 2 01:31:16 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AD7B51065676; Mon, 2 Jun 2008 01:31:15 +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 6FC921065672 for ; Mon, 2 Jun 2008 01:31:15 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4EE528FC16 for ; Mon, 2 Jun 2008 01:31:15 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m521VFAv048045 for ; Mon, 2 Jun 2008 01:31:15 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m521VFOU048043 for perforce@freebsd.org; Mon, 2 Jun 2008 01:31:15 GMT (envelope-from sam@freebsd.org) Date: Mon, 2 Jun 2008 01:31:15 GMT Message-Id: <200806020131.m521VFOU048043@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 142727 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, 02 Jun 2008 01:31:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=142727 Change 142727 by sam@sam_ebb on 2008/06/02 01:31:13 IFC Affected files ... .. //depot/projects/vap/sys/dev/ath/if_ath.c#82 integrate Differences ... ==== //depot/projects/vap/sys/dev/ath/if_ath.c#82 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.186 2008/05/12 00:15:27 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.190 2008/05/29 00:14:35 sam Exp $"); /* * Driver for the Atheros Wireless LAN controller. @@ -3860,7 +3860,10 @@ ath_rx_tap(struct ifnet *ifp, struct mbuf *m, const struct ath_rx_status *rs, u_int64_t tsf, int16_t nf) { -#define CHANNEL_HT (CHANNEL_HT20|CHANNEL_HT40PLUS|CHANNEL_HT40MINUS) +#define CHAN_HT htole32(CHANNEL_HT20|CHANNEL_HT40PLUS|CHANNEL_HT40MINUS) +#define CHAN_HT20 htole32(IEEE80211_CHAN_HT20) +#define CHAN_HT40U htole32(IEEE80211_CHAN_HT40U) +#define CHAN_HT40D htole32(IEEE80211_CHAN_HT40D) struct ath_softc *sc = ifp->if_softc; uint8_t rxrate; @@ -3877,23 +3880,16 @@ sc->sc_rx_th.wr_rate = sc->sc_hwmap[rxrate].ieeerate; sc->sc_rx_th.wr_flags = sc->sc_hwmap[rxrate].rxflags; #if HAL_ABI_VERSION >= 0x07050400 - if (sc->sc_curchan.channelFlags & CHANNEL_HT) { - /* - * For HT operation we must specify the channel - * attributes for each packet since they vary. - * We deduce this by from HT40 bit in the rx - * status and the MCS/legacy rate bit. - */ - sc->sc_rx_th.wr_chan_flags &= ~IEEE80211_CHAN_HT; - if (sc->sc_rx_th.wr_rate & 0x80) { /* HT rate */ - /* XXX 40U/40D */ - sc->sc_rx_th.wr_chan_flags |= - (rs->rs_flags & HAL_RX_2040) ? - IEEE80211_CHAN_HT40U : IEEE80211_CHAN_HT20; - if ((rs->rs_flags & HAL_RX_GI) == 0) - sc->sc_rx_th.wr_flags |= - IEEE80211_RADIOTAP_F_SHORTGI; - } + sc->sc_rx_th.wr_chan_flags &= ~CHAN_HT; + if (sc->sc_rx_th.wr_rate & 0x80) { /* HT rate */ + if ((rs->rs_flags & HAL_RX_2040) == 0) + sc->sc_rx_th.wr_chan_flags |= CHAN_HT20; + else if (sc->sc_curchan.channelFlags & CHANNEL_HT40PLUS) + sc->sc_rx_th.wr_chan_flags |= CHAN_HT40U; + else + sc->sc_rx_th.wr_chan_flags |= CHAN_HT40D; + if ((rs->rs_flags & HAL_RX_GI) == 0) + sc->sc_rx_th.wr_flags |= IEEE80211_RADIOTAP_F_SHORTGI; } #endif sc->sc_rx_th.wr_tsf = htole64(ath_extend_tsf(rs->rs_tstamp, tsf)); @@ -3907,7 +3903,10 @@ bpf_mtap2(ifp->if_bpf, &sc->sc_rx_th, sc->sc_rx_th_len, m); return 1; -#undef CHANNEL_HT +#undef CHAN_HT20 +#undef CHAN_HT40U +#undef CHAN_HT40D +#undef CHAN_HT } static void