Commit cbb6ab94 authored by Abhijeet Kolekar's avatar Abhijeet Kolekar Committed by John W. Linville

iwl3945: use iwl_mac_add_interface from iwlwifi

Signed-off-by: default avatarAbhijeet Kolekar <abhijeet.kolekar@intel.com>
Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 727882d6
...@@ -2036,42 +2036,6 @@ static int iwl_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb) ...@@ -2036,42 +2036,6 @@ static int iwl_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
return NETDEV_TX_OK; return NETDEV_TX_OK;
} }
static int iwl_mac_add_interface(struct ieee80211_hw *hw,
struct ieee80211_if_init_conf *conf)
{
struct iwl_priv *priv = hw->priv;
unsigned long flags;
IWL_DEBUG_MAC80211(priv, "enter: type %d\n", conf->type);
if (priv->vif) {
IWL_DEBUG_MAC80211(priv, "leave - vif != NULL\n");
return -EOPNOTSUPP;
}
spin_lock_irqsave(&priv->lock, flags);
priv->vif = conf->vif;
priv->iw_mode = conf->type;
spin_unlock_irqrestore(&priv->lock, flags);
mutex_lock(&priv->mutex);
if (conf->mac_addr) {
IWL_DEBUG_MAC80211(priv, "Set %pM\n", conf->mac_addr);
memcpy(priv->mac_addr, conf->mac_addr, ETH_ALEN);
}
if (iwl_set_mode(priv, conf->type) == -EAGAIN)
/* we are not ready, will run again when ready */
set_bit(STATUS_MODE_PENDING, &priv->status);
mutex_unlock(&priv->mutex);
IWL_DEBUG_MAC80211(priv, "leave\n");
return 0;
}
/** /**
* iwl_mac_config - mac80211 config callback * iwl_mac_config - mac80211 config callback
* *
......
...@@ -2381,6 +2381,43 @@ int iwl_set_mode(struct iwl_priv *priv, int mode) ...@@ -2381,6 +2381,43 @@ int iwl_set_mode(struct iwl_priv *priv, int mode)
} }
EXPORT_SYMBOL(iwl_set_mode); EXPORT_SYMBOL(iwl_set_mode);
int iwl_mac_add_interface(struct ieee80211_hw *hw,
struct ieee80211_if_init_conf *conf)
{
struct iwl_priv *priv = hw->priv;
unsigned long flags;
IWL_DEBUG_MAC80211(priv, "enter: type %d\n", conf->type);
if (priv->vif) {
IWL_DEBUG_MAC80211(priv, "leave - vif != NULL\n");
return -EOPNOTSUPP;
}
spin_lock_irqsave(&priv->lock, flags);
priv->vif = conf->vif;
priv->iw_mode = conf->type;
spin_unlock_irqrestore(&priv->lock, flags);
mutex_lock(&priv->mutex);
if (conf->mac_addr) {
IWL_DEBUG_MAC80211(priv, "Set %pM\n", conf->mac_addr);
memcpy(priv->mac_addr, conf->mac_addr, ETH_ALEN);
}
if (iwl_set_mode(priv, conf->type) == -EAGAIN)
/* we are not ready, will run again when ready */
set_bit(STATUS_MODE_PENDING, &priv->status);
mutex_unlock(&priv->mutex);
IWL_DEBUG_MAC80211(priv, "leave\n");
return 0;
}
EXPORT_SYMBOL(iwl_mac_add_interface);
#ifdef CONFIG_PM #ifdef CONFIG_PM
int iwl_pci_suspend(struct pci_dev *pdev, pm_message_t state) int iwl_pci_suspend(struct pci_dev *pdev, pm_message_t state)
......
...@@ -274,6 +274,8 @@ void iwl_bss_info_changed(struct ieee80211_hw *hw, ...@@ -274,6 +274,8 @@ void iwl_bss_info_changed(struct ieee80211_hw *hw,
int iwl_mac_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb); int iwl_mac_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb);
int iwl_commit_rxon(struct iwl_priv *priv); int iwl_commit_rxon(struct iwl_priv *priv);
int iwl_set_mode(struct iwl_priv *priv, int mode); int iwl_set_mode(struct iwl_priv *priv, int mode);
int iwl_mac_add_interface(struct ieee80211_hw *hw,
struct ieee80211_if_init_conf *conf);
/***************************************************** /*****************************************************
* RX handlers. * RX handlers.
......
...@@ -3380,41 +3380,6 @@ static int iwl3945_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb) ...@@ -3380,41 +3380,6 @@ static int iwl3945_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
return NETDEV_TX_OK; return NETDEV_TX_OK;
} }
static int iwl3945_mac_add_interface(struct ieee80211_hw *hw,
struct ieee80211_if_init_conf *conf)
{
struct iwl_priv *priv = hw->priv;
unsigned long flags;
IWL_DEBUG_MAC80211(priv, "enter: type %d\n", conf->type);
if (priv->vif) {
IWL_DEBUG_MAC80211(priv, "leave - vif != NULL\n");
return -EOPNOTSUPP;
}
spin_lock_irqsave(&priv->lock, flags);
priv->vif = conf->vif;
priv->iw_mode = conf->type;
spin_unlock_irqrestore(&priv->lock, flags);
mutex_lock(&priv->mutex);
if (conf->mac_addr) {
IWL_DEBUG_MAC80211(priv, "Set: %pM\n", conf->mac_addr);
memcpy(priv->mac_addr, conf->mac_addr, ETH_ALEN);
}
if (iwl_set_mode(priv, conf->type) == -EAGAIN)
set_bit(STATUS_MODE_PENDING, &priv->status);
mutex_unlock(&priv->mutex);
IWL_DEBUG_MAC80211(priv, "leave\n");
return 0;
}
/** /**
* iwl3945_mac_config - mac80211 config callback * iwl3945_mac_config - mac80211 config callback
* *
...@@ -4372,7 +4337,7 @@ static struct ieee80211_ops iwl3945_hw_ops = { ...@@ -4372,7 +4337,7 @@ static struct ieee80211_ops iwl3945_hw_ops = {
.tx = iwl3945_mac_tx, .tx = iwl3945_mac_tx,
.start = iwl3945_mac_start, .start = iwl3945_mac_start,
.stop = iwl3945_mac_stop, .stop = iwl3945_mac_stop,
.add_interface = iwl3945_mac_add_interface, .add_interface = iwl_mac_add_interface,
.remove_interface = iwl3945_mac_remove_interface, .remove_interface = iwl3945_mac_remove_interface,
.config = iwl3945_mac_config, .config = iwl3945_mac_config,
.config_interface = iwl3945_mac_config_interface, .config_interface = iwl3945_mac_config_interface,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment