Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d7d312ca authored by Antonio Quartulli's avatar Antonio Quartulli Committed by John W. Linville
Browse files

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: default avatarAntonio Quartulli <ordex@autistici.org>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 019c4fba
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -741,6 +741,8 @@ static void ath9k_set_hw_capab(struct ath9k_htc_priv *priv,


	hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT;
	hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT;


	hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN;

	hw->queues = 4;
	hw->queues = 4;
	hw->channel_change_time = 5000;
	hw->channel_change_time = 5000;
	hw->max_listen_interval = 10;
	hw->max_listen_interval = 10;
+15 −0
Original line number Original line Diff line number Diff line
@@ -1409,6 +1409,21 @@ static int ath9k_htc_set_key(struct ieee80211_hw *hw,
	if (htc_modparam_nohwcrypt)
	if (htc_modparam_nohwcrypt)
		return -ENOSPC;
		return -ENOSPC;


	if ((vif->type == NL80211_IFTYPE_ADHOC ||
	     vif->type == NL80211_IFTYPE_MESH_POINT) &&
	    (key->cipher == WLAN_CIPHER_SUITE_TKIP ||
	     key->cipher == WLAN_CIPHER_SUITE_CCMP) &&
	    !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) {
		/*
		 * For now, disable hw crypto for the RSN IBSS group keys. This
		 * could be optimized in the future to use a modified key cache
		 * design to support per-STA RX GTK, but until that gets
		 * implemented, use of software crypto for group addressed
		 * frames is a acceptable to allow RSN IBSS to be used.
		 */
		return -EOPNOTSUPP;
	}

	mutex_lock(&priv->mutex);
	mutex_lock(&priv->mutex);
	ath_dbg(common, CONFIG, "Set HW Key\n");
	ath_dbg(common, CONFIG, "Set HW Key\n");
	ath9k_htc_ps_wakeup(priv);
	ath9k_htc_ps_wakeup(priv);