Skip to contentSkip to conversation

rt2x00: rt2800lib: disable HT40 for now as it causes reception problems

PATCH In review Helmut Schaa 3 participants 3 messages Apr 23, 2010 Networking drivers (wireless)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 rt2x00: rt2800lib: disable HT40 for now as it causes reception problems

Disable HT40 support for now as it causes rx problems with HT40 capable 11n APs (when mac80211 enables HT40, rx is completely disfunctional).

Once the rt2800 HT code is capable of using HT40 we should enable the flag again.

I only tested this patch with a rt305x SoC device, nevertheless the patch disables HT40 also on PCI and USB rt2800 devices.

---

Using this patch I was able to associate a rt305x SoC device with my 11n capable AP using WPA and the connection basically works although I see lots of retried frames when sniffing the wireless traffic.

If someone already had success with rt2800 and HT40 capable APs we should consider to only conditionally unset the HT40 flag for 305x SoC devices.

 drivers/net/wireless/rt2x00/rt2800lib.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
drivers/net/wireless/rt2x00/rt2800lib.c +4 -1
index 2648f31..aa02ff6 100644
@@ -2318,8 +2318,11 @@ int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
 	else
 		spec->ht.ht_supported = false;
 
+	/*
+	 * Don't set IEEE80211_HT_CAP_SUP_WIDTH_20_40 for now as it causes
+	 * reception problems with HT40 capable 11n APs
+	 */
 	spec->ht.cap =
-	    IEEE80211_HT_CAP_SUP_WIDTH_20_40 |
 	    IEEE80211_HT_CAP_GRN_FLD |
 	    IEEE80211_HT_CAP_SGI_20 |
 	    IEEE80211_HT_CAP_SGI_40 |
Signature · 1 line
1.6.4.2
Acked-by on v1 1/1
#1 lore raw
Quoted 10 lines · Helmut Schaa

Disable HT40 support for now as it causes rx problems with HT40 capable 11n APs (when mac80211 enables HT40, rx is completely disfunctional).

Once the rt2800 HT code is capable of using HT40 we should enable the flag again.

I only tested this patch with a rt305x SoC device, nevertheless the patch disables HT40 also on PCI and USB rt2800 devices.

I can confirm that this also helps for PCI and USB devices.
With this patch applied all my rt28xx and rt30xx based devices starting working correctly.

So, definately,

Quoted 29 lines

---

Using this patch I was able to associate a rt305x SoC device with my 11n capable AP using WPA and the connection basically works although I see lots of retried frames when sniffing the wireless traffic.

If someone already had success with rt2800 and HT40 capable APs we should consider to only conditionally unset the HT40 flag for 305x SoC devices.

 drivers/net/wireless/rt2x00/rt2800lib.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
drivers/net/wireless/rt2x00/rt2800lib.c +4 -1
index 2648f31..aa02ff6 100644
@@ -2318,8 +2318,11 @@ int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
 	else
 		spec->ht.ht_supported = false;
 
+	/*
+	 * Don't set IEEE80211_HT_CAP_SUP_WIDTH_20_40 for now as it causes
+	 * reception problems with HT40 capable 11n APs
+	 */
 	spec->ht.cap =
-	    IEEE80211_HT_CAP_SUP_WIDTH_20_40 |
 	    IEEE80211_HT_CAP_GRN_FLD |
 	    IEEE80211_HT_CAP_SGI_20 |
 	    IEEE80211_HT_CAP_SGI_40 |
Acked-by
#2 lore raw
Quoted 10 lines · Gertjan van Wingerde
Quoted 9 lines · Helmut Schaa

Disable HT40 support for now as it causes rx problems with HT40 capable 11n APs (when mac80211 enables HT40, rx is completely disfunctional).

Once the rt2800 HT code is capable of using HT40 we should enable the flag again.

I only tested this patch with a rt305x SoC device, nevertheless the patch disables HT40 also on PCI and USB rt2800 devices.

Quoted 8 lines
Quoted 1 line

I can confirm that this also helps for PCI and USB devices.
With this patch applied all my rt28xx and rt30xx based devices starting working correctly.

So, definately,

And also thanks for figuring this out, this at least gives a good starting point for investigation for resolving the last issues. :)

Quoted 31 lines
Quoted 29 lines

---

Using this patch I was able to associate a rt305x SoC device with my 11n capable AP using WPA and the connection basically works although I see lots of retried frames when sniffing the wireless traffic.

If someone already had success with rt2800 and HT40 capable APs we should consider to only conditionally unset the HT40 flag for 305x SoC devices.

 drivers/net/wireless/rt2x00/rt2800lib.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
drivers/net/wireless/rt2x00/rt2800lib.c +4 -1
index 2648f31..aa02ff6 100644
@@ -2318,8 +2318,11 @@ int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
 	else
 		spec->ht.ht_supported = false;
 
+	/*
+	 * Don't set IEEE80211_HT_CAP_SUP_WIDTH_20_40 for now as it causes
+	 * reception problems with HT40 capable 11n APs
+	 */
 	spec->ht.cap =
-	    IEEE80211_HT_CAP_SUP_WIDTH_20_40 |
 	    IEEE80211_HT_CAP_GRN_FLD |
 	    IEEE80211_HT_CAP_SGI_20 |
 	    IEEE80211_HT_CAP_SGI_40 |