From: Luis R. Rodriguez Date: Thu, 27 May 2010 00:27:05 +0000 (-0700) Subject: compat-wireless: remove two pending patches now upstream X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=7600a013c6487b1e448bc32067c122acac7674b8;p=openwrt%2Fstaging%2Fblogic.git compat-wireless: remove two pending patches now upstream These patches are now upstream: commit a65e4cb402b5f3e120570ba1faca4354d47e8f2f Author: Felix Fietkau Date: Thu May 13 20:37:25 2010 +0200 ath9k: remove VEOL support for ad-hoc With VEOL, Beacon transmission in ad-hoc does not currently work. I believe for larger ad-hoc networks, VEOL is too unreliable, as it can get beacon transmissions stuck during synchronization. Use SWBA based beacon trasmission similar to AP mode instead. Signed-off-by: Felix Fietkau Acked-by: Benoit Papillault Signed-off-by: John W. Linville commit 774610e4f26cb3d9da14a8b5974324c9e51017bd Author: Felix Fietkau Date: Thu May 13 20:37:24 2010 +0200 ath9k: change beacon allocation to prefer the first beacon slot This fixes IBSS beacon transmissions without VEOL enabled Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville This reduces the pending stuff: 7132 - Code changes posted but not yet merged 4449 - Code additions posted but not yet merged 2683 - Code deletions posted but not yet merged 1.45 - % of code not yet merged Signed-off-by: Luis R. Rodriguez --- diff --git a/linux-next-pending/0010-ath9k-change-beacon-allocation-to-prefer-the-first-b.patch b/linux-next-pending/0010-ath9k-change-beacon-allocation-to-prefer-the-first-b.patch deleted file mode 100644 index a2603da0611f..000000000000 --- a/linux-next-pending/0010-ath9k-change-beacon-allocation-to-prefer-the-first-b.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 4bf9998d15742540f538706e6a435535e4a2580b Mon Sep 17 00:00:00 2001 -From: Felix Fietkau -Date: Thu, 13 May 2010 20:37:24 +0200 -Subject: [PATCH 10/20] ath9k: change beacon allocation to prefer the first beacon slot - -This fixes IBSS beacon transmissions without VEOL enabled - -Signed-off-by: Felix Fietkau ---- - drivers/net/wireless/ath/ath9k/beacon.c | 12 +++--------- - 1 files changed, 3 insertions(+), 9 deletions(-) - -diff --git a/drivers/net/wireless/ath/ath9k/beacon.c b/drivers/net/wireless/ath/ath9k/beacon.c -index c8a4558..77face7 100644 ---- a/drivers/net/wireless/ath/ath9k/beacon.c -+++ b/drivers/net/wireless/ath/ath9k/beacon.c -@@ -274,17 +274,11 @@ int ath_beacon_alloc(struct ath_wiphy *aphy, struct ieee80211_vif *vif) - avp->av_bslot = 0; - for (slot = 0; slot < ATH_BCBUF; slot++) - if (sc->beacon.bslot[slot] == NULL) { -- /* -- * XXX hack, space out slots to better -- * deal with misses -- */ -- if (slot+1 < ATH_BCBUF && -- sc->beacon.bslot[slot+1] == NULL) { -- avp->av_bslot = slot+1; -- break; -- } - avp->av_bslot = slot; -+ - /* NB: keep looking for a double slot */ -+ if (slot == 0 || !sc->beacon.bslot[slot-1]) -+ break; - } - BUG_ON(sc->beacon.bslot[avp->av_bslot] != NULL); - sc->beacon.bslot[avp->av_bslot] = vif; --- -1.6.3.3 - diff --git a/linux-next-pending/0011-ath9k-remove-VEOL-support-for-ad-hoc.patch b/linux-next-pending/0011-ath9k-remove-VEOL-support-for-ad-hoc.patch deleted file mode 100644 index 8aca9fdf08a0..000000000000 --- a/linux-next-pending/0011-ath9k-remove-VEOL-support-for-ad-hoc.patch +++ /dev/null @@ -1,120 +0,0 @@ -From 6b0d6c3dd1cbc5508420115cc9401c3bccaa8f60 Mon Sep 17 00:00:00 2001 -From: Felix Fietkau -Date: Thu, 13 May 2010 20:37:25 +0200 -Subject: [PATCH 11/20] ath9k: remove VEOL support for ad-hoc - -With VEOL, Beacon transmission in ad-hoc does not currently work. -I believe for larger ad-hoc networks, VEOL is too unreliable, as -it can get beacon transmissions stuck during synchronization. -Use SWBA based beacon trasmission similar to AP mode instead. - -Signed-off-by: Felix Fietkau ---- - drivers/net/wireless/ath/ath9k/beacon.c | 63 +++++-------------------------- - 1 files changed, 10 insertions(+), 53 deletions(-) - -diff --git a/drivers/net/wireless/ath/ath9k/beacon.c b/drivers/net/wireless/ath/ath9k/beacon.c -index 77face7..f43d85a 100644 ---- a/drivers/net/wireless/ath/ath9k/beacon.c -+++ b/drivers/net/wireless/ath/ath9k/beacon.c -@@ -76,22 +76,13 @@ static void ath_beacon_setup(struct ath_softc *sc, struct ath_vif *avp, - ds = bf->bf_desc; - flags = ATH9K_TXDESC_NOACK; - -- if (((sc->sc_ah->opmode == NL80211_IFTYPE_ADHOC) || -- (sc->sc_ah->opmode == NL80211_IFTYPE_MESH_POINT)) && -- (ah->caps.hw_caps & ATH9K_HW_CAP_VEOL)) { -- ds->ds_link = bf->bf_daddr; /* self-linked */ -- flags |= ATH9K_TXDESC_VEOL; -- /* Let hardware handle antenna switching. */ -- antenna = 0; -- } else { -- ds->ds_link = 0; -- /* -- * Switch antenna every beacon. -- * Should only switch every beacon period, not for every SWBA -- * XXX assumes two antennae -- */ -- antenna = ((sc->beacon.ast_be_xmit / sc->nbcnvifs) & 1 ? 2 : 1); -- } -+ ds->ds_link = 0; -+ /* -+ * Switch antenna every beacon. -+ * Should only switch every beacon period, not for every SWBA -+ * XXX assumes two antennae -+ */ -+ antenna = ((sc->beacon.ast_be_xmit / sc->nbcnvifs) & 1 ? 2 : 1); - - sband = &sc->sbands[common->hw->conf.channel->band]; - rate = sband->bitrates[rateidx].hw_value; -@@ -215,36 +206,6 @@ static struct ath_buf *ath_beacon_generate(struct ieee80211_hw *hw, - return bf; - } - --/* -- * Startup beacon transmission for adhoc mode when they are sent entirely -- * by the hardware using the self-linked descriptor + veol trick. --*/ --static void ath_beacon_start_adhoc(struct ath_softc *sc, -- struct ieee80211_vif *vif) --{ -- struct ath_hw *ah = sc->sc_ah; -- struct ath_common *common = ath9k_hw_common(ah); -- struct ath_buf *bf; -- struct ath_vif *avp; -- struct sk_buff *skb; -- -- avp = (void *)vif->drv_priv; -- -- if (avp->av_bcbuf == NULL) -- return; -- -- bf = avp->av_bcbuf; -- skb = bf->bf_mpdu; -- -- ath_beacon_setup(sc, avp, bf, 0); -- -- /* NB: caller is known to have already stopped tx dma */ -- ath9k_hw_puttxbuf(ah, sc->beacon.beaconq, bf->bf_daddr); -- ath9k_hw_txstart(ah, sc->beacon.beaconq); -- ath_print(common, ATH_DBG_BEACON, "TXDP%u = %llx (%p)\n", -- sc->beacon.beaconq, ito64(bf->bf_daddr), bf->bf_desc); --} -- - int ath_beacon_alloc(struct ath_wiphy *aphy, struct ieee80211_vif *vif) - { - struct ath_softc *sc = aphy->sc; -@@ -265,7 +226,8 @@ int ath_beacon_alloc(struct ath_wiphy *aphy, struct ieee80211_vif *vif) - list_del(&avp->av_bcbuf->list); - - if (sc->sc_ah->opmode == NL80211_IFTYPE_AP || -- !(sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_VEOL)) { -+ sc->sc_ah->opmode == NL80211_IFTYPE_ADHOC || -+ sc->sc_ah->opmode == NL80211_IFTYPE_MESH_POINT) { - int slot; - /* - * Assign the vif to a beacon xmit slot. As -@@ -715,8 +677,7 @@ static void ath_beacon_config_adhoc(struct ath_softc *sc, - * self-linked tx descriptor and let the hardware deal with things. - */ - intval |= ATH9K_BEACON_ENA; -- if (!(ah->caps.hw_caps & ATH9K_HW_CAP_VEOL)) -- ah->imask |= ATH9K_INT_SWBA; -+ ah->imask |= ATH9K_INT_SWBA; - - ath_beaconq_config(sc); - -@@ -726,10 +687,6 @@ static void ath_beacon_config_adhoc(struct ath_softc *sc, - ath9k_beacon_init(sc, nexttbtt, intval); - sc->beacon.bmisscnt = 0; - ath9k_hw_set_interrupts(ah, ah->imask); -- -- /* FIXME: Handle properly when vif is NULL */ -- if (vif && ah->caps.hw_caps & ATH9K_HW_CAP_VEOL) -- ath_beacon_start_adhoc(sc, vif); - } - - void ath_beacon_config(struct ath_softc *sc, struct ieee80211_vif *vif) --- -1.6.3.3 -