Larry Finger wrote:
I have successfully connected my Linksys WPC54G to my AP using WPA-PSK
encryption using the bcm43xx/softmac software.
To be able to do this, it was necessary to patch ieee80211softmac_wx.c
and bcm43xx_wx.c using the two attached patches.
Johannes changed my patch to add the necessary routines to ieee80211 rather than ieee80211softmac.
As a result, I am submitting a revised patch for bcm43xx_wx.c (patch attached) to allow WPA-PSK to
work with wpa_supplicant.
Larry
Index: bcm43xx_wx.c
===================================================================
--- bcm43xx_wx.c (revision 1051)
+++ bcm43xx_wx.c (working copy)
@@ -554,6 +554,21 @@
return err;
}
+static int bcm43xx_wx_set_encodingext(struct net_device *net_dev,
+ struct iw_request_info *info,
+ union iwreq_data *data,
+ char *extra)
+{
+ struct bcm43xx_private *bcm = bcm43xx_priv(net_dev);
+ int err;
+
+ wx_enter();
+
+ err = ieee80211_wx_set_encodeext(bcm->ieee, info, data, extra);
+
+ return err;
+}
+
static int bcm43xx_wx_get_encoding(struct net_device *net_dev,
struct iw_request_info *info,
union iwreq_data *data,
@@ -569,6 +584,21 @@
return err;
}
+static int bcm43xx_wx_get_encodingext(struct net_device *net_dev,
+ struct iw_request_info *info,
+ union iwreq_data *data,
+ char *extra)
+{
+ struct bcm43xx_private *bcm = bcm43xx_priv(net_dev);
+ int err;
+
+ wx_enter();
+
+ err = ieee80211_wx_get_encodeext(bcm->ieee, info, data, extra);
+
+ return err;
+}
+
static int bcm43xx_wx_set_power(struct net_device *net_dev,
struct iw_request_info *info,
union iwreq_data *data,
@@ -970,11 +1000,15 @@
/* Encoding */
WX(SIOCSIWENCODE) = bcm43xx_wx_set_encoding,
WX(SIOCGIWENCODE) = bcm43xx_wx_get_encoding,
+ WX(SIOCSIWENCODEEXT) = bcm43xx_wx_set_encodingext,
+ WX(SIOCGIWENCODEEXT) = bcm43xx_wx_get_encodingext,
/* Power saving */
//TODO WX(SIOCSIWPOWER) = bcm43xx_wx_set_power,
//TODO WX(SIOCGIWPOWER) = bcm43xx_wx_get_power,
WX(SIOCSIWGENIE) = ieee80211softmac_wx_set_genie,
WX(SIOCGIWGENIE) = ieee80211softmac_wx_get_genie,
+ WX(SIOCSIWAUTH) = ieee80211_wx_set_auth,
+ WX(SIOCGIWAUTH) = ieee80211_wx_get_auth,
};
#undef WX