diff -Nru orinoco-0.13e/hermes_rid.h orinoco-0.13e-rjm/hermes_rid.h --- orinoco-0.13e/hermes_rid.h 2003-05-12 02:22:27.000000000 -0400 +++ orinoco-0.13e-rjm/hermes_rid.h 2003-07-27 16:02:29.000000000 -0400 @@ -28,6 +28,7 @@ #define HERMES_RID_CNFWDSADDRESS6 0xFC16 #define HERMES_RID_CNFMULTICASTPMBUFFERING 0xFC17 #define HERMES_RID_CNFWEPENABLED_AGERE 0xFC20 /* used */ +#define HERMES_RID_CNFAUTHENTICATION_AGERE 0xFC21 /* used */ #define HERMES_RID_CNFMANDATORYBSSID_SYMBOL 0xFC21 #define HERMES_RID_CNFWEPDEFAULTKEYID 0xFC23 /* used */ #define HERMES_RID_CNFDEFAULTKEY0 0xFC24 /* used */ diff -Nru orinoco-0.13e/orinoco.c orinoco-0.13e-rjm/orinoco.c --- orinoco-0.13e/orinoco.c 2003-05-12 02:22:27.000000000 -0400 +++ orinoco-0.13e-rjm/orinoco.c 2003-07-27 16:03:37.000000000 -0400 @@ -1129,6 +1129,15 @@ switch (priv->firmware_type) { case FIRMWARE_TYPE_AGERE: /* Agere style WEP */ if (priv->wep_on) { + /* Enable the shared-key authentication. */ + if (priv->wep_restrict) { + auth_flag = 0x2; + err = hermes_write_wordrec(hw, USER_BAP, + HERMES_RID_CNFAUTHENTICATION_AGERE, + auth_flag); + if (err) + return err; + } err = hermes_write_wordrec(hw, USER_BAP, HERMES_RID_CNFTXKEY_AGERE, priv->tx_key); @@ -2770,7 +2779,6 @@ if (erq->flags & IW_ENCODE_DISABLED) enable = 0; - /* Only for Prism2 & Symbol cards (so far) - Jean II */ if (erq->flags & IW_ENCODE_OPEN) restricted = 0; if (erq->flags & IW_ENCODE_RESTRICTED) @@ -2813,13 +2821,10 @@ erq->flags |= IW_ENCODE_DISABLED; erq->flags |= index + 1; - /* Only for symbol cards - Jean II */ - if (priv->firmware_type != FIRMWARE_TYPE_AGERE) { - if(priv->wep_restrict) - erq->flags |= IW_ENCODE_RESTRICTED; - else - erq->flags |= IW_ENCODE_OPEN; - } + if(priv->wep_restrict) + erq->flags |= IW_ENCODE_RESTRICTED; + else + erq->flags |= IW_ENCODE_OPEN; xlen = le16_to_cpu(priv->keys[index].len);