iwlwifi: add config_ap lib op
authorAbhijeet Kolekar <abhijeet.kolekar@intel.com>
Wed, 8 Apr 2009 18:26:49 +0000 (11:26 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 22 Apr 2009 20:54:43 +0000 (16:54 -0400)
add config_ap lib op to iwlwifi and iwl3945 in preparation
of future 3945 porting actions.

Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-3945.c
drivers/net/wireless/iwlwifi/iwl-3945.h
drivers/net/wireless/iwlwifi/iwl-4965.c
drivers/net/wireless/iwlwifi/iwl-5000.c
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-core.h
drivers/net/wireless/iwlwifi/iwl3945-base.c

index a854feba82c813df0b41ead1737ca04902491472..edc0cb38033dbe99201649af0beecd12a22e366b 100644 (file)
@@ -2952,6 +2952,7 @@ static struct iwl_lib_ops iwl3945_lib = {
        .send_tx_power  = iwl3945_send_tx_power,
        .is_valid_rtc_data_addr = iwl3945_hw_valid_rtc_data_addr,
        .post_associate = iwl3945_post_associate,
+       .config_ap = iwl3945_config_ap,
 };
 
 static struct iwl_station_mgmt_ops iwl3945_station_mgmt = {
index 88628b23efd98fb27d82ff1263bf20be744ae484..4f5473e01617129fa0103974d72e88c5ab3381a8 100644 (file)
@@ -278,6 +278,8 @@ extern void iwl3945_hw_rx_statistics(struct iwl_priv *priv,
 extern void iwl3945_disable_events(struct iwl_priv *priv);
 extern int iwl4965_get_temperature(const struct iwl_priv *priv);
 extern void iwl3945_post_associate(struct iwl_priv *priv);
+extern void iwl3945_config_ap(struct iwl_priv *priv);
+
 /**
  * iwl3945_hw_find_station - Find station id for a given BSSID
  * @bssid: MAC address of station ID to find
index ab25e6ab59d57a1a9555ec20165abcf7c9405a05..e4762e530345cccbbd66b25914b13c5556b69cba 100644 (file)
@@ -2333,6 +2333,7 @@ static struct iwl_lib_ops iwl4965_lib = {
        .update_chain_flags = iwl_update_chain_flags,
        .temperature = iwl4965_temperature_calib,
        .post_associate = iwl_post_associate,
+       .config_ap = iwl_config_ap,
 };
 
 static struct iwl_ops iwl4965_ops = {
index cf622a14bfe28d7425e6dedd6e0cbb5509ab911c..5bbb4f953364898ea186435d4d709fab03a789d0 100644 (file)
@@ -1537,6 +1537,7 @@ struct iwl_lib_ops iwl5000_lib = {
                .query_addr = iwl5000_eeprom_query_addr,
        },
        .post_associate = iwl_post_associate,
+       .config_ap = iwl_config_ap,
 };
 
 struct iwl_ops iwl5000_ops = {
index 4640996aa2988bfba400eccafcc7cd23a707c65d..97f8322e0661433466bc1e5d62f91410f796a8a3 100644 (file)
@@ -2036,7 +2036,7 @@ static int iwl_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
        return NETDEV_TX_OK;
 }
 
-static void iwl_config_ap(struct iwl_priv *priv)
+void iwl_config_ap(struct iwl_priv *priv)
 {
        int ret = 0;
        unsigned long flags;
@@ -2178,7 +2178,7 @@ static int iwl_mac_config_interface(struct ieee80211_hw *hw,
                memcpy(priv->bssid, conf->bssid, ETH_ALEN);
 
                if (priv->iw_mode == NL80211_IFTYPE_AP)
-                       iwl_config_ap(priv);
+                       iwlcore_config_ap(priv);
                else {
                        rc = iwlcore_commit_rxon(priv);
                        if ((priv->iw_mode == NL80211_IFTYPE_STATION) && rc)
index da8fae52a5d64da427611f84af84c0ab2e4f3293..af559b07cc8e0c927185648700e0de53162346e8 100644 (file)
@@ -162,6 +162,7 @@ struct iwl_lib_ops {
        void (*update_chain_flags)(struct iwl_priv *priv);
        void (*temperature) (struct iwl_priv *priv);
        void (*post_associate) (struct iwl_priv *priv);
+       void (*config_ap) (struct iwl_priv *priv);
 
        /* eeprom operations (as defined in iwl-eeprom.h) */
        struct iwl_eeprom_ops eeprom_ops;
@@ -279,6 +280,7 @@ int iwl_mac_add_interface(struct ieee80211_hw *hw,
 void iwl_mac_remove_interface(struct ieee80211_hw *hw,
                                 struct ieee80211_if_init_conf *conf);
 int iwl_mac_config(struct ieee80211_hw *hw, u32 changed);
+void iwl_config_ap(struct iwl_priv *priv);
 
 /*****************************************************
  * RX handlers.
@@ -565,7 +567,10 @@ static inline int iwlcore_commit_rxon(struct iwl_priv *priv)
 {
        return priv->cfg->ops->hcmd->commit_rxon(priv);
 }
-
+static inline void iwlcore_config_ap(struct iwl_priv *priv)
+{
+       priv->cfg->ops->lib->config_ap(priv);
+}
 static inline const struct ieee80211_supported_band *iwl_get_hw_mode(
                        struct iwl_priv *priv, enum ieee80211_band band)
 {
index c5644a5e50c9cacb9902bd6987eec2a4bb8e4788..ad6f5ebeaf7abec8b9a7c45cc1738995679c5dc7 100644 (file)
@@ -3378,7 +3378,7 @@ static int iwl3945_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
        return NETDEV_TX_OK;
 }
 
-static void iwl3945_config_ap(struct iwl_priv *priv)
+void iwl3945_config_ap(struct iwl_priv *priv)
 {
        int rc = 0;
 
@@ -3515,7 +3515,7 @@ static int iwl3945_mac_config_interface(struct ieee80211_hw *hw,
                memcpy(priv->bssid, conf->bssid, ETH_ALEN);
 
                if (priv->iw_mode == NL80211_IFTYPE_AP)
-                       iwl3945_config_ap(priv);
+                       iwlcore_config_ap(priv);
                else {
                        rc = iwlcore_commit_rxon(priv);
                        if ((priv->iw_mode == NL80211_IFTYPE_STATION) && rc)