aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl3945-base.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl3945-base.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c28
1 files changed, 23 insertions, 5 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 44f983b6d39b..8acda640df25 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -6870,7 +6870,7 @@ static void iwl_bg_scan_completed(struct work_struct *work)
6870 * 6870 *
6871 *****************************************************************************/ 6871 *****************************************************************************/
6872 6872
6873static int iwl_mac_open(struct ieee80211_hw *hw) 6873static int iwl_mac_start(struct ieee80211_hw *hw)
6874{ 6874{
6875 struct iwl_priv *priv = hw->priv; 6875 struct iwl_priv *priv = hw->priv;
6876 6876
@@ -6889,7 +6889,7 @@ static int iwl_mac_open(struct ieee80211_hw *hw)
6889 return 0; 6889 return 0;
6890} 6890}
6891 6891
6892static int iwl_mac_stop(struct ieee80211_hw *hw) 6892static void iwl_mac_stop(struct ieee80211_hw *hw)
6893{ 6893{
6894 struct iwl_priv *priv = hw->priv; 6894 struct iwl_priv *priv = hw->priv;
6895 6895
@@ -6898,8 +6898,6 @@ static int iwl_mac_stop(struct ieee80211_hw *hw)
6898 /*netif_stop_queue(dev); */ 6898 /*netif_stop_queue(dev); */
6899 flush_workqueue(priv->workqueue); 6899 flush_workqueue(priv->workqueue);
6900 IWL_DEBUG_MAC80211("leave\n"); 6900 IWL_DEBUG_MAC80211("leave\n");
6901
6902 return 0;
6903} 6901}
6904 6902
6905static int iwl_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb, 6903static int iwl_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb,
@@ -7115,6 +7113,8 @@ static int iwl_mac_config_interface(struct ieee80211_hw *hw, int if_id,
7115 if (conf == NULL) 7113 if (conf == NULL)
7116 return -EIO; 7114 return -EIO;
7117 7115
7116 /* XXX: this MUST use conf->mac_addr */
7117
7118 if ((priv->iw_mode == IEEE80211_IF_TYPE_AP) && 7118 if ((priv->iw_mode == IEEE80211_IF_TYPE_AP) &&
7119 (!conf->beacon || !conf->ssid_len)) { 7119 (!conf->beacon || !conf->ssid_len)) {
7120 IWL_DEBUG_MAC80211 7120 IWL_DEBUG_MAC80211
@@ -7129,8 +7129,13 @@ static int iwl_mac_config_interface(struct ieee80211_hw *hw, int if_id,
7129 IWL_DEBUG_MAC80211("bssid: %s\n", 7129 IWL_DEBUG_MAC80211("bssid: %s\n",
7130 print_mac(mac, conf->bssid)); 7130 print_mac(mac, conf->bssid));
7131 7131
7132/*
7133 * very dubious code was here; the probe filtering flag is never set:
7134 *
7132 if (unlikely(test_bit(STATUS_SCANNING, &priv->status)) && 7135 if (unlikely(test_bit(STATUS_SCANNING, &priv->status)) &&
7133 !(priv->hw->flags & IEEE80211_HW_NO_PROBE_FILTERING)) { 7136 !(priv->hw->flags & IEEE80211_HW_NO_PROBE_FILTERING)) {
7137 */
7138 if (unlikely(test_bit(STATUS_SCANNING, &priv->status))) {
7134 IWL_DEBUG_MAC80211("leave - scanning\n"); 7139 IWL_DEBUG_MAC80211("leave - scanning\n");
7135 mutex_unlock(&priv->mutex); 7140 mutex_unlock(&priv->mutex);
7136 return 0; 7141 return 0;
@@ -7205,6 +7210,18 @@ static int iwl_mac_config_interface(struct ieee80211_hw *hw, int if_id,
7205 return 0; 7210 return 0;
7206} 7211}
7207 7212
7213static void iwl_configure_filter(struct ieee80211_hw *hw,
7214 unsigned int changed_flags,
7215 unsigned int *total_flags,
7216 int mc_count, struct dev_addr_list *mc_list)
7217{
7218 /*
7219 * XXX: dummy
7220 * see also iwl_connection_init_rx_config
7221 */
7222 *total_flags = 0;
7223}
7224
7208static void iwl_mac_remove_interface(struct ieee80211_hw *hw, 7225static void iwl_mac_remove_interface(struct ieee80211_hw *hw,
7209 struct ieee80211_if_init_conf *conf) 7226 struct ieee80211_if_init_conf *conf)
7210{ 7227{
@@ -8265,12 +8282,13 @@ static struct attribute_group iwl_attribute_group = {
8265 8282
8266static struct ieee80211_ops iwl_hw_ops = { 8283static struct ieee80211_ops iwl_hw_ops = {
8267 .tx = iwl_mac_tx, 8284 .tx = iwl_mac_tx,
8268 .open = iwl_mac_open, 8285 .start = iwl_mac_start,
8269 .stop = iwl_mac_stop, 8286 .stop = iwl_mac_stop,
8270 .add_interface = iwl_mac_add_interface, 8287 .add_interface = iwl_mac_add_interface,
8271 .remove_interface = iwl_mac_remove_interface, 8288 .remove_interface = iwl_mac_remove_interface,
8272 .config = iwl_mac_config, 8289 .config = iwl_mac_config,
8273 .config_interface = iwl_mac_config_interface, 8290 .config_interface = iwl_mac_config_interface,
8291 .configure_filter = iwl_configure_filter,
8274 .set_key = iwl_mac_set_key, 8292 .set_key = iwl_mac_set_key,
8275 .get_stats = iwl_mac_get_stats, 8293 .get_stats = iwl_mac_get_stats,
8276 .get_tx_stats = iwl_mac_get_tx_stats, 8294 .get_tx_stats = iwl_mac_get_tx_stats,