aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntonio Quartulli <ordex@autistici.org>2012-01-17 17:13:30 -0500
committerJohn W. Linville <linville@tuxdriver.com>2012-01-24 14:32:29 -0500
commitd7d312cab41b2c973951fcc7f752411cbaaf8338 (patch)
treec01198ce79cbb006687470dea8fbb2352dc4dc6b
parent019c4fbaa790e2b3f11dab0c8b7d9896d77db3e5 (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.c2
-rw-r--r--drivers/net/wireless/ath/ath9k/htc_drv_main.c15
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);