OSDN Git Service

ath6kl: Fix wrong regulatory domain disconnection.
authorPierre Le Magourou <plemagourou@aldebaran.com>
Mon, 18 Jul 2016 20:22:19 +0000 (23:22 +0300)
committerKalle Valo <kvalo@qca.qualcomm.com>
Tue, 19 Jul 2016 13:22:36 +0000 (16:22 +0300)
One minute after a successful connection, the kernel checks if the
frequency and the channel width are well configured for the country we
are in. (regulatory domain)

ath6kl driver was setting the NL80211_CHAN_HT20 channel without checking
for the HT capabilities. (we should have NL80211_CHAN_NO_HT in our
case because the firmware did not support HT)

This patch adds a check on ht_cap.ht_supported in order to create the
channel corresponding to the firmware capabilities.

Signed-off-by: Pierre Le Magourou <plemagourou@aldebaran.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath6kl/cfg80211.c

index ef5b40e..07dcb82 100644 (file)
@@ -1111,7 +1111,8 @@ void ath6kl_cfg80211_ch_switch_notify(struct ath6kl_vif *vif, int freq,
 
        cfg80211_chandef_create(&chandef,
                                ieee80211_get_channel(vif->ar->wiphy, freq),
-                               (mode == WMI_11G_HT20) ?
+                               (mode == WMI_11G_HT20 &&
+                                ath6kl_band_2ghz.ht_cap.ht_supported) ?
                                        NL80211_CHAN_HT20 : NL80211_CHAN_NO_HT);
 
        mutex_lock(&vif->wdev.mtx);