X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/5e117632a05a6b90713f249fa2db0c7e2bd3ca55..838959f774265522597596d423570ab88ca1ba6f:/package/mac80211/patches/530-minstrel_ht.patch?ds=sidebyside diff --git a/package/mac80211/patches/530-minstrel_ht.patch b/package/mac80211/patches/530-minstrel_ht.patch index 2b40645f8..046e91b8c 100644 --- a/package/mac80211/patches/530-minstrel_ht.patch +++ b/package/mac80211/patches/530-minstrel_ht.patch @@ -13,7 +13,7 @@ mac80211-$(CONFIG_MAC80211_RC_MINSTREL) += $(rc80211_minstrel-y) --- a/net/mac80211/main.c +++ b/net/mac80211/main.c -@@ -714,6 +714,10 @@ static int __init ieee80211_init(void) +@@ -716,6 +716,10 @@ static int __init ieee80211_init(void) if (ret) return ret; @@ -24,7 +24,7 @@ ret = rc80211_pid_init(); if (ret) goto err_pid; -@@ -726,6 +730,8 @@ static int __init ieee80211_init(void) +@@ -728,6 +732,8 @@ static int __init ieee80211_init(void) err_netdev: rc80211_pid_exit(); err_pid: @@ -33,7 +33,7 @@ rc80211_minstrel_exit(); return ret; -@@ -734,6 +740,7 @@ static int __init ieee80211_init(void) +@@ -736,6 +742,7 @@ static int __init ieee80211_init(void) static void __exit ieee80211_exit(void) { rc80211_pid_exit(); @@ -68,7 +68,7 @@ --- /dev/null +++ b/net/mac80211/rc80211_minstrel_ht.c -@@ -0,0 +1,815 @@ +@@ -0,0 +1,822 @@ +/* + * Copyright (C) 2010 Felix Fietkau + * @@ -474,7 +474,7 @@ + mi->ampdu_len += info->status.ampdu_len; + + if (!mi->sample_wait && !mi->sample_tries && mi->sample_count > 0) { -+ mi->sample_wait = 4 + MINSTREL_TRUNC(mi->avg_ampdu_len); ++ mi->sample_wait = 4 + 2 * MINSTREL_TRUNC(mi->avg_ampdu_len); + mi->sample_tries = 3; + mi->sample_count--; + } @@ -660,6 +660,7 @@ + if (!msp->is_ht) + return mac80211_minstrel.get_rate(priv, sta, &msp->legacy, txrc); + ++ info->flags |= mi->tx_flags; + sample_idx = minstrel_get_sample_rate(mp, mi); + if (sample_idx >= 0) { + minstrel_ht_set_rate(mp, mi, &ar[0], sample_idx, @@ -733,6 +734,12 @@ + } + mi->sample_tries = 4; + ++ if (sta_cap & IEEE80211_HT_CAP_TX_STBC) ++ mi->tx_flags |= IEEE80211_TX_CTL_STBC; ++ ++ if (sta_cap & IEEE80211_HT_CAP_LDPC_CODING) ++ mi->tx_flags |= IEEE80211_TX_CTL_LDPC; ++ + if (oper_chan_type != NL80211_CHAN_HT40MINUS && + oper_chan_type != NL80211_CHAN_HT40PLUS) + sta_cap &= ~IEEE80211_HT_CAP_SUP_WIDTH_20_40; @@ -886,7 +893,7 @@ +} --- /dev/null +++ b/net/mac80211/rc80211_minstrel_ht.h -@@ -0,0 +1,125 @@ +@@ -0,0 +1,128 @@ +/* + * Copyright (C) 2010 Felix Fietkau + * @@ -983,6 +990,9 @@ + unsigned int total_packets; + unsigned int sample_packets; + ++ /* tx flags to add for frames for this sta */ ++ u32 tx_flags; ++ + u8 sample_wait; + u8 sample_tries; + u8 sample_count;