aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAbhijeet Kolekar <abhijeet.kolekar@intel.com>2009-04-08 14:26:46 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-04-22 16:54:43 -0400
commitcbb6ab94b66cfb7136e640191a9628c5a71220a3 (patch)
tree5ac6af3f75d86b005dd76de777b7e2f7c67f6f48 /drivers
parent727882d62477ed45d248e8cd6d53cf794537b073 (diff)
iwl3945: use iwl_mac_add_interface from iwlwifi
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c36
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c37
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c37
4 files changed, 40 insertions, 72 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 479fcf14270..7e7b584ec25 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2036,42 +2036,6 @@ static int iwl_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
2036 return NETDEV_TX_OK; 2036 return NETDEV_TX_OK;
2037} 2037}
2038 2038
2039static int iwl_mac_add_interface(struct ieee80211_hw *hw,
2040 struct ieee80211_if_init_conf *conf)
2041{
2042 struct iwl_priv *priv = hw->priv;
2043 unsigned long flags;
2044
2045 IWL_DEBUG_MAC80211(priv, "enter: type %d\n", conf->type);
2046
2047 if (priv->vif) {
2048 IWL_DEBUG_MAC80211(priv, "leave - vif != NULL\n");
2049 return -EOPNOTSUPP;
2050 }
2051
2052 spin_lock_irqsave(&priv->lock, flags);
2053 priv->vif = conf->vif;
2054 priv->iw_mode = conf->type;
2055
2056 spin_unlock_irqrestore(&priv->lock, flags);
2057
2058 mutex_lock(&priv->mutex);
2059
2060 if (conf->mac_addr) {
2061 IWL_DEBUG_MAC80211(priv, "Set %pM\n", conf->mac_addr);
2062 memcpy(priv->mac_addr, conf->mac_addr, ETH_ALEN);
2063 }
2064
2065 if (iwl_set_mode(priv, conf->type) == -EAGAIN)
2066 /* we are not ready, will run again when ready */
2067 set_bit(STATUS_MODE_PENDING, &priv->status);
2068
2069 mutex_unlock(&priv->mutex);
2070
2071 IWL_DEBUG_MAC80211(priv, "leave\n");
2072 return 0;
2073}
2074
2075/** 2039/**
2076 * iwl_mac_config - mac80211 config callback 2040 * iwl_mac_config - mac80211 config callback
2077 * 2041 *
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 01e7604bf33..e08aee9b2b8 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -2381,6 +2381,43 @@ int iwl_set_mode(struct iwl_priv *priv, int mode)
2381} 2381}
2382EXPORT_SYMBOL(iwl_set_mode); 2382EXPORT_SYMBOL(iwl_set_mode);
2383 2383
2384int iwl_mac_add_interface(struct ieee80211_hw *hw,
2385 struct ieee80211_if_init_conf *conf)
2386{
2387 struct iwl_priv *priv = hw->priv;
2388 unsigned long flags;
2389
2390 IWL_DEBUG_MAC80211(priv, "enter: type %d\n", conf->type);
2391
2392 if (priv->vif) {
2393 IWL_DEBUG_MAC80211(priv, "leave - vif != NULL\n");
2394 return -EOPNOTSUPP;
2395 }
2396
2397 spin_lock_irqsave(&priv->lock, flags);
2398 priv->vif = conf->vif;
2399 priv->iw_mode = conf->type;
2400
2401 spin_unlock_irqrestore(&priv->lock, flags);
2402
2403 mutex_lock(&priv->mutex);
2404
2405 if (conf->mac_addr) {
2406 IWL_DEBUG_MAC80211(priv, "Set %pM\n", conf->mac_addr);
2407 memcpy(priv->mac_addr, conf->mac_addr, ETH_ALEN);
2408 }
2409
2410 if (iwl_set_mode(priv, conf->type) == -EAGAIN)
2411 /* we are not ready, will run again when ready */
2412 set_bit(STATUS_MODE_PENDING, &priv->status);
2413
2414 mutex_unlock(&priv->mutex);
2415
2416 IWL_DEBUG_MAC80211(priv, "leave\n");
2417 return 0;
2418}
2419EXPORT_SYMBOL(iwl_mac_add_interface);
2420
2384#ifdef CONFIG_PM 2421#ifdef CONFIG_PM
2385 2422
2386int iwl_pci_suspend(struct pci_dev *pdev, pm_message_t state) 2423int iwl_pci_suspend(struct pci_dev *pdev, pm_message_t state)
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index 49df47a53b5..7df54405bef 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -274,6 +274,8 @@ void iwl_bss_info_changed(struct ieee80211_hw *hw,
274int iwl_mac_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb); 274int iwl_mac_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb);
275int iwl_commit_rxon(struct iwl_priv *priv); 275int iwl_commit_rxon(struct iwl_priv *priv);
276int iwl_set_mode(struct iwl_priv *priv, int mode); 276int iwl_set_mode(struct iwl_priv *priv, int mode);
277int iwl_mac_add_interface(struct ieee80211_hw *hw,
278 struct ieee80211_if_init_conf *conf);
277 279
278/***************************************************** 280/*****************************************************
279 * RX handlers. 281 * RX handlers.
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 666c1fff62b..955e50a124b 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -3380,41 +3380,6 @@ static int iwl3945_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
3380 return NETDEV_TX_OK; 3380 return NETDEV_TX_OK;
3381} 3381}
3382 3382
3383static int iwl3945_mac_add_interface(struct ieee80211_hw *hw,
3384 struct ieee80211_if_init_conf *conf)
3385{
3386 struct iwl_priv *priv = hw->priv;
3387 unsigned long flags;
3388
3389 IWL_DEBUG_MAC80211(priv, "enter: type %d\n", conf->type);
3390
3391 if (priv->vif) {
3392 IWL_DEBUG_MAC80211(priv, "leave - vif != NULL\n");
3393 return -EOPNOTSUPP;
3394 }
3395
3396 spin_lock_irqsave(&priv->lock, flags);
3397 priv->vif = conf->vif;
3398 priv->iw_mode = conf->type;
3399
3400 spin_unlock_irqrestore(&priv->lock, flags);
3401
3402 mutex_lock(&priv->mutex);
3403
3404 if (conf->mac_addr) {
3405 IWL_DEBUG_MAC80211(priv, "Set: %pM\n", conf->mac_addr);
3406 memcpy(priv->mac_addr, conf->mac_addr, ETH_ALEN);
3407 }
3408
3409 if (iwl_set_mode(priv, conf->type) == -EAGAIN)
3410 set_bit(STATUS_MODE_PENDING, &priv->status);
3411
3412 mutex_unlock(&priv->mutex);
3413
3414 IWL_DEBUG_MAC80211(priv, "leave\n");
3415 return 0;
3416}
3417
3418/** 3383/**
3419 * iwl3945_mac_config - mac80211 config callback 3384 * iwl3945_mac_config - mac80211 config callback
3420 * 3385 *
@@ -4372,7 +4337,7 @@ static struct ieee80211_ops iwl3945_hw_ops = {
4372 .tx = iwl3945_mac_tx, 4337 .tx = iwl3945_mac_tx,
4373 .start = iwl3945_mac_start, 4338 .start = iwl3945_mac_start,
4374 .stop = iwl3945_mac_stop, 4339 .stop = iwl3945_mac_stop,
4375 .add_interface = iwl3945_mac_add_interface, 4340 .add_interface = iwl_mac_add_interface,
4376 .remove_interface = iwl3945_mac_remove_interface, 4341 .remove_interface = iwl3945_mac_remove_interface,
4377 .config = iwl3945_mac_config, 4342 .config = iwl3945_mac_config,
4378 .config_interface = iwl3945_mac_config_interface, 4343 .config_interface = iwl3945_mac_config_interface,