From: Luis R. Rodriguez Date: Tue, 15 Jun 2010 21:06:27 +0000 (-0700) Subject: compat-wireless: add one pending patch for ath9k_hw for adhoc for AR9003 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=f5ba18658898894d06cde7a3abe04046f9da3524;p=openwrt%2Fstaging%2Fblogic.git compat-wireless: add one pending patch for ath9k_hw for adhoc for AR9003 This is not merged yet but required for testing. Signed-off-by: Luis R. Rodriguez --- diff --git a/linux-next-pending/0001-ath9k_hw-avoid-setting-cwmin-cwmax-to-0-for-IBSS-for.patch b/linux-next-pending/0001-ath9k_hw-avoid-setting-cwmin-cwmax-to-0-for-IBSS-for.patch new file mode 100644 index 000000000000..3d46ac7ed283 --- /dev/null +++ b/linux-next-pending/0001-ath9k_hw-avoid-setting-cwmin-cwmax-to-0-for-IBSS-for.patch @@ -0,0 +1,42 @@ +From 9f9720e76f635587e718e511b0b2871cf06ffa54 Mon Sep 17 00:00:00 2001 +From: Luis R. Rodriguez +Date: Mon, 14 Jun 2010 17:12:56 -0700 +Subject: [PATCH] ath9k_hw: avoid setting cwmin/cwmax to 0 for IBSS for AR9003 + +IBSS requires the cwmin and cwmax to be respected when +we reset the txqueues on AR9003 otherwise the distribution +of beacons will be balanced towards the AR9003 card first +preventing equal contention for air time for other peers +on the IBSS. + +Without this IBSS will work but only the AR9003 card will be +be issuing beacons on the IBSS. + +Signed-off-by: Luis R. Rodriguez +--- + drivers/net/wireless/ath/ath9k/mac.c | 9 +++++++-- + 1 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/wireless/ath/ath9k/mac.c b/drivers/net/wireless/ath/ath9k/mac.c +index 1550591..e955bb9 100644 +--- a/drivers/net/wireless/ath/ath9k/mac.c ++++ b/drivers/net/wireless/ath/ath9k/mac.c +@@ -555,8 +555,13 @@ bool ath9k_hw_resettxqueue(struct ath_hw *ah, u32 q) + REGWRITE_BUFFER_FLUSH(ah); + DISABLE_REGWRITE_BUFFER(ah); + +- /* cwmin and cwmax should be 0 for beacon queue */ +- if (AR_SREV_9300_20_OR_LATER(ah)) { ++ /* ++ * cwmin and cwmax should be 0 for beacon queue ++ * but not for IBSS as we would create an imbalance ++ * on beaconing fairness for participating nodes. ++ */ ++ if (AR_SREV_9300_20_OR_LATER(ah) && ++ ah->opmode != NL80211_IFTYPE_ADHOC) { + REG_WRITE(ah, AR_DLCL_IFS(q), SM(0, AR_D_LCL_IFS_CWMIN) + | SM(0, AR_D_LCL_IFS_CWMAX) + | SM(qi->tqi_aifs, AR_D_LCL_IFS_AIFS)); +-- +1.6.3.3 +