diff options
author | Antonio Quartulli <ordex@autistici.org> | 2012-01-17 17:13:30 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-01-24 14:32:29 -0500 |
commit | d7d312cab41b2c973951fcc7f752411cbaaf8338 (patch) | |
tree | c01198ce79cbb006687470dea8fbb2352dc4dc6b | |
parent | 019c4fbaa790e2b3f11dab0c8b7d9896d77db3e5 (diff) |
ath9k_htc: claim support for IBSS RSN
Skip group keys configuration in hardware in order to make IBSS RSN work.
Keys will be managed using software.
Signed-off-by: Antonio Quartulli <ordex@autistici.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc_drv_init.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc_drv_main.c | 15 |
2 files changed, 17 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_init.c b/drivers/net/wireless/ath/ath9k/htc_drv_init.c index 9be10a2da1c2..fc7519c93390 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c | |||
@@ -741,6 +741,8 @@ static void ath9k_set_hw_capab(struct ath9k_htc_priv *priv, | |||
741 | 741 | ||
742 | hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; | 742 | hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; |
743 | 743 | ||
744 | hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN; | ||
745 | |||
744 | hw->queues = 4; | 746 | hw->queues = 4; |
745 | hw->channel_change_time = 5000; | 747 | hw->channel_change_time = 5000; |
746 | hw->max_listen_interval = 10; | 748 | hw->max_listen_interval = 10; |
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c b/drivers/net/wireless/ath/ath9k/htc_drv_main.c index ef4c60661290..06101b6bdeac 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c | |||
@@ -1409,6 +1409,21 @@ static int ath9k_htc_set_key(struct ieee80211_hw *hw, | |||
1409 | if (htc_modparam_nohwcrypt) | 1409 | if (htc_modparam_nohwcrypt) |
1410 | return -ENOSPC; | 1410 | return -ENOSPC; |
1411 | 1411 | ||
1412 | if ((vif->type == NL80211_IFTYPE_ADHOC || | ||
1413 | vif->type == NL80211_IFTYPE_MESH_POINT) && | ||
1414 | (key->cipher == WLAN_CIPHER_SUITE_TKIP || | ||
1415 | key->cipher == WLAN_CIPHER_SUITE_CCMP) && | ||
1416 | !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) { | ||
1417 | /* | ||
1418 | * For now, disable hw crypto for the RSN IBSS group keys. This | ||
1419 | * could be optimized in the future to use a modified key cache | ||
1420 | * design to support per-STA RX GTK, but until that gets | ||
1421 | * implemented, use of software crypto for group addressed | ||
1422 | * frames is a acceptable to allow RSN IBSS to be used. | ||
1423 | */ | ||
1424 | return -EOPNOTSUPP; | ||
1425 | } | ||
1426 | |||
1412 | mutex_lock(&priv->mutex); | 1427 | mutex_lock(&priv->mutex); |
1413 | ath_dbg(common, CONFIG, "Set HW Key\n"); | 1428 | ath_dbg(common, CONFIG, "Set HW Key\n"); |
1414 | ath9k_htc_ps_wakeup(priv); | 1429 | ath9k_htc_ps_wakeup(priv); |