From owner-svn-src-all@freebsd.org Sat Oct 10 00:13:47 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 028019D1A6B; Sat, 10 Oct 2015 00:13:47 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6F0C76A2; Sat, 10 Oct 2015 00:13:46 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t9A0DjuV063413; Sat, 10 Oct 2015 00:13:45 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t9A0DjIb063411; Sat, 10 Oct 2015 00:13:45 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201510100013.t9A0DjIb063411@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Sat, 10 Oct 2015 00:13:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r289099 - in head/sys: contrib/dev/ath/ath_hal/ar9300 dev/ath/ath_hal/ar5416 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 10 Oct 2015 00:13:47 -0000 Author: adrian Date: Sat Oct 10 00:13:45 2015 New Revision: 289099 URL: https://svnweb.freebsd.org/changeset/base/289099 Log: Flip on fast frames support for AR5416 and AR9300 series NICs. This was off because the net80211 aggregation code was using the same state pointers for both fast frames and ampdu tx support which led to some pretty unfortunate panic-y behaviour. Now that net80211 doesn't panic, let's flip this back on. It doesn't (yet) do the horrific sounding thing of A-MPDU aggregates of fast frames; that'll come next. It's a pre-requisite to supporting AMSDU + AMPDU anyway, which actually speeds things up quite considerably (think packing lots of little ACK frames into a single AMSDU.) Tested: * QCA955x SoC, AP mode * AR5416, STA mode * AR9170, STA mode (with local fast frame patches) Modified: head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Modified: head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c ============================================================================== --- head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c Sat Oct 10 00:12:03 2015 (r289098) +++ head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c Sat Oct 10 00:13:45 2015 (r289099) @@ -2671,7 +2671,7 @@ ar9300_fill_capability_info(struct ath_h p_cap->halBurstSupport = AH_TRUE; p_cap->halChapTuningSupport = AH_TRUE; p_cap->halTurboPrimeSupport = AH_TRUE; - p_cap->halFastFramesSupport = AH_FALSE; + p_cap->halFastFramesSupport = AH_TRUE; p_cap->halTurboGSupport = p_cap->halWirelessModes & HAL_MODE_108G; Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Sat Oct 10 00:12:03 2015 (r289098) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Sat Oct 10 00:13:45 2015 (r289099) @@ -937,13 +937,7 @@ ar5416FillCapabilityInfo(struct ath_hal pCap->halCompressSupport = AH_FALSE; pCap->halBurstSupport = AH_TRUE; - /* - * This is disabled for now; the net80211 layer needs to be - * taught when it is and isn't appropriate to enable FF processing - * with 802.11n NICs (it tries to enable both A-MPDU and - * fast frames, with very tragic crash-y results.) - */ - pCap->halFastFramesSupport = AH_FALSE; + pCap->halFastFramesSupport = AH_TRUE; pCap->halChapTuningSupport = AH_TRUE; pCap->halTurboPrimeSupport = AH_TRUE;