diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2008-04-15 00:16:07 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-04-16 15:59:58 -0400 |
commit | 0211ddda9deb681a804572936cd49e466a1aa88b (patch) | |
tree | a9bb069458364ba40c8c7024352f9ac36a8bdfcf /drivers/net/wireless/iwlwifi/iwl4965-base.c | |
parent | 6974e36356524fa856435cb1be40aaffbac9601a (diff) |
iwlwifi: add 1X HW WEP support
This patch adds support for HW encryption/decryption in 1X WEP.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl4965-base.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c index dfd2b75492e..37ab1c565ce 100644 --- a/drivers/net/wireless/iwlwifi/iwl4965-base.c +++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c | |||
@@ -1214,7 +1214,7 @@ static int iwl4965_set_dynamic_key(struct iwl_priv *priv, | |||
1214 | ret = iwl4965_set_tkip_dynamic_key_info(priv, key, sta_id); | 1214 | ret = iwl4965_set_tkip_dynamic_key_info(priv, key, sta_id); |
1215 | break; | 1215 | break; |
1216 | case ALG_WEP: | 1216 | case ALG_WEP: |
1217 | ret = -EOPNOTSUPP; | 1217 | ret = iwl_set_wep_dynamic_key_info(priv, key, sta_id); |
1218 | break; | 1218 | break; |
1219 | default: | 1219 | default: |
1220 | IWL_ERROR("Unknown alg: %s alg = %d\n", __func__, key->alg); | 1220 | IWL_ERROR("Unknown alg: %s alg = %d\n", __func__, key->alg); |
@@ -2138,7 +2138,12 @@ static void iwl4965_build_tx_cmd_hwcrypto(struct iwl_priv *priv, | |||
2138 | if (wepkey->key_size == WEP_KEY_LEN_128) | 2138 | if (wepkey->key_size == WEP_KEY_LEN_128) |
2139 | cmd->cmd.tx.sec_ctl |= TX_CMD_SEC_KEY128; | 2139 | cmd->cmd.tx.sec_ctl |= TX_CMD_SEC_KEY128; |
2140 | } else { | 2140 | } else { |
2141 | IWL_ERROR("No support for WEP key mappings key\n"); | 2141 | /* the WEP key was sent as dynamic */ |
2142 | keyidx = keyinfo->keyidx; | ||
2143 | memcpy(&cmd->cmd.tx.key[3], keyinfo->key, | ||
2144 | keyinfo->keylen); | ||
2145 | if (keyinfo->keylen == WEP_KEY_LEN_128) | ||
2146 | cmd->cmd.tx.sec_ctl |= TX_CMD_SEC_KEY128; | ||
2142 | } | 2147 | } |
2143 | 2148 | ||
2144 | cmd->cmd.tx.sec_ctl |= (TX_CMD_SEC_WEP | | 2149 | cmd->cmd.tx.sec_ctl |= (TX_CMD_SEC_WEP | |