diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945.c | 10 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-5000.c | 8 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-6000.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.h | 13 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 1 |
6 files changed, 40 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c index 9a0fb80023ab..fb08295417f0 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.c +++ b/drivers/net/wireless/iwlwifi/iwl-3945.c | |||
@@ -2954,6 +2954,15 @@ static struct iwl_lib_ops iwl3945_lib = { | |||
2954 | .post_associate = iwl3945_post_associate, | 2954 | .post_associate = iwl3945_post_associate, |
2955 | }; | 2955 | }; |
2956 | 2956 | ||
2957 | static struct iwl_station_mgmt_ops iwl3945_station_mgmt = { | ||
2958 | .add_station = iwl3945_add_station, | ||
2959 | #if 0 | ||
2960 | .remove_station = iwl3945_remove_station, | ||
2961 | #endif | ||
2962 | .find_station = iwl3945_hw_find_station, | ||
2963 | .clear_station_table = iwl3945_clear_stations_table, | ||
2964 | }; | ||
2965 | |||
2957 | static struct iwl_hcmd_utils_ops iwl3945_hcmd_utils = { | 2966 | static struct iwl_hcmd_utils_ops iwl3945_hcmd_utils = { |
2958 | .get_hcmd_size = iwl3945_get_hcmd_size, | 2967 | .get_hcmd_size = iwl3945_get_hcmd_size, |
2959 | .build_addsta_hcmd = iwl3945_build_addsta_hcmd, | 2968 | .build_addsta_hcmd = iwl3945_build_addsta_hcmd, |
@@ -2963,6 +2972,7 @@ static struct iwl_ops iwl3945_ops = { | |||
2963 | .lib = &iwl3945_lib, | 2972 | .lib = &iwl3945_lib, |
2964 | .hcmd = &iwl3945_hcmd, | 2973 | .hcmd = &iwl3945_hcmd, |
2965 | .utils = &iwl3945_hcmd_utils, | 2974 | .utils = &iwl3945_hcmd_utils, |
2975 | .smgmt = &iwl3945_station_mgmt, | ||
2966 | }; | 2976 | }; |
2967 | 2977 | ||
2968 | static struct iwl_cfg iwl3945_bg_cfg = { | 2978 | static struct iwl_cfg iwl3945_bg_cfg = { |
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c index 053e42091124..e3d1e30e62b5 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965.c | |||
@@ -2268,6 +2268,12 @@ static void iwl4965_cancel_deferred_work(struct iwl_priv *priv) | |||
2268 | cancel_work_sync(&priv->txpower_work); | 2268 | cancel_work_sync(&priv->txpower_work); |
2269 | } | 2269 | } |
2270 | 2270 | ||
2271 | static struct iwl_station_mgmt_ops iwl4965_station_mgmt = { | ||
2272 | .add_station_ht = iwl_add_station_flags, | ||
2273 | .remove_station = iwl_remove_station, | ||
2274 | .find_station = iwl_find_station, | ||
2275 | .clear_station_table = iwl_clear_stations_table, | ||
2276 | }; | ||
2271 | 2277 | ||
2272 | static struct iwl_hcmd_ops iwl4965_hcmd = { | 2278 | static struct iwl_hcmd_ops iwl4965_hcmd = { |
2273 | .rxon_assoc = iwl4965_send_rxon_assoc, | 2279 | .rxon_assoc = iwl4965_send_rxon_assoc, |
@@ -2332,6 +2338,7 @@ static struct iwl_ops iwl4965_ops = { | |||
2332 | .lib = &iwl4965_lib, | 2338 | .lib = &iwl4965_lib, |
2333 | .hcmd = &iwl4965_hcmd, | 2339 | .hcmd = &iwl4965_hcmd, |
2334 | .utils = &iwl4965_hcmd_utils, | 2340 | .utils = &iwl4965_hcmd_utils, |
2341 | .smgmt = &iwl4965_station_mgmt, | ||
2335 | }; | 2342 | }; |
2336 | 2343 | ||
2337 | struct iwl_cfg iwl4965_agn_cfg = { | 2344 | struct iwl_cfg iwl4965_agn_cfg = { |
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c index 410cba221610..1344943a5f36 100644 --- a/drivers/net/wireless/iwlwifi/iwl-5000.c +++ b/drivers/net/wireless/iwlwifi/iwl-5000.c | |||
@@ -1472,6 +1472,13 @@ int iwl5000_calc_rssi(struct iwl_priv *priv, | |||
1472 | return max_rssi - agc - IWL49_RSSI_OFFSET; | 1472 | return max_rssi - agc - IWL49_RSSI_OFFSET; |
1473 | } | 1473 | } |
1474 | 1474 | ||
1475 | struct iwl_station_mgmt_ops iwl5000_station_mgmt = { | ||
1476 | .add_station_ht = iwl_add_station_flags, | ||
1477 | .remove_station = iwl_remove_station, | ||
1478 | .find_station = iwl_find_station, | ||
1479 | .clear_station_table = iwl_clear_stations_table, | ||
1480 | }; | ||
1481 | |||
1475 | struct iwl_hcmd_ops iwl5000_hcmd = { | 1482 | struct iwl_hcmd_ops iwl5000_hcmd = { |
1476 | .rxon_assoc = iwl5000_send_rxon_assoc, | 1483 | .rxon_assoc = iwl5000_send_rxon_assoc, |
1477 | .commit_rxon = iwl_commit_rxon, | 1484 | .commit_rxon = iwl_commit_rxon, |
@@ -1535,6 +1542,7 @@ struct iwl_ops iwl5000_ops = { | |||
1535 | .lib = &iwl5000_lib, | 1542 | .lib = &iwl5000_lib, |
1536 | .hcmd = &iwl5000_hcmd, | 1543 | .hcmd = &iwl5000_hcmd, |
1537 | .utils = &iwl5000_hcmd_utils, | 1544 | .utils = &iwl5000_hcmd_utils, |
1545 | .smgmt = &iwl5000_station_mgmt, | ||
1538 | }; | 1546 | }; |
1539 | 1547 | ||
1540 | struct iwl_mod_params iwl50_mod_params = { | 1548 | struct iwl_mod_params iwl50_mod_params = { |
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c index edfa5e149f71..ee271d7f6120 100644 --- a/drivers/net/wireless/iwlwifi/iwl-6000.c +++ b/drivers/net/wireless/iwlwifi/iwl-6000.c | |||
@@ -72,6 +72,7 @@ static struct iwl_ops iwl6000_ops = { | |||
72 | .lib = &iwl5000_lib, | 72 | .lib = &iwl5000_lib, |
73 | .hcmd = &iwl5000_hcmd, | 73 | .hcmd = &iwl5000_hcmd, |
74 | .utils = &iwl6000_hcmd_utils, | 74 | .utils = &iwl6000_hcmd_utils, |
75 | .smgmt = &iwl5000_station_mgmt, | ||
75 | }; | 76 | }; |
76 | 77 | ||
77 | struct iwl_cfg iwl6000_2ag_cfg = { | 78 | struct iwl_cfg iwl6000_2ag_cfg = { |
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h index c7e05953cb75..8b7f5bd2c8e3 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.h +++ b/drivers/net/wireless/iwlwifi/iwl-core.h | |||
@@ -83,10 +83,22 @@ struct iwl_cmd; | |||
83 | #define IWL_SKU_A 0x2 | 83 | #define IWL_SKU_A 0x2 |
84 | #define IWL_SKU_N 0x8 | 84 | #define IWL_SKU_N 0x8 |
85 | 85 | ||
86 | struct iwl_station_mgmt_ops { | ||
87 | u8 (*add_station_ht)(struct iwl_priv *priv, const u8 *addr, | ||
88 | int is_ap, u8 flags, struct ieee80211_sta_ht_cap *ht_info); | ||
89 | u8 (*add_station)(struct iwl_priv *priv, const u8 *addr, | ||
90 | int is_ap, u8 flags); | ||
91 | int (*remove_station)(struct iwl_priv *priv, const u8 *addr, | ||
92 | int is_ap); | ||
93 | u8 (*find_station)(struct iwl_priv *priv, const u8 *addr); | ||
94 | void (*clear_station_table)(struct iwl_priv *priv); | ||
95 | }; | ||
96 | |||
86 | struct iwl_hcmd_ops { | 97 | struct iwl_hcmd_ops { |
87 | int (*rxon_assoc)(struct iwl_priv *priv); | 98 | int (*rxon_assoc)(struct iwl_priv *priv); |
88 | int (*commit_rxon)(struct iwl_priv *priv); | 99 | int (*commit_rxon)(struct iwl_priv *priv); |
89 | }; | 100 | }; |
101 | |||
90 | struct iwl_hcmd_utils_ops { | 102 | struct iwl_hcmd_utils_ops { |
91 | u16 (*get_hcmd_size)(u8 cmd_id, u16 len); | 103 | u16 (*get_hcmd_size)(u8 cmd_id, u16 len); |
92 | u16 (*build_addsta_hcmd)(const struct iwl_addsta_cmd *cmd, u8 *data); | 104 | u16 (*build_addsta_hcmd)(const struct iwl_addsta_cmd *cmd, u8 *data); |
@@ -160,6 +172,7 @@ struct iwl_ops { | |||
160 | const struct iwl_lib_ops *lib; | 172 | const struct iwl_lib_ops *lib; |
161 | const struct iwl_hcmd_ops *hcmd; | 173 | const struct iwl_hcmd_ops *hcmd; |
162 | const struct iwl_hcmd_utils_ops *utils; | 174 | const struct iwl_hcmd_utils_ops *utils; |
175 | const struct iwl_station_mgmt_ops *smgmt; | ||
163 | }; | 176 | }; |
164 | 177 | ||
165 | struct iwl_mod_params { | 178 | struct iwl_mod_params { |
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index ec9a13846edd..59930f398f31 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h | |||
@@ -70,6 +70,7 @@ extern struct iwl_ops iwl5000_ops; | |||
70 | extern struct iwl_lib_ops iwl5000_lib; | 70 | extern struct iwl_lib_ops iwl5000_lib; |
71 | extern struct iwl_hcmd_ops iwl5000_hcmd; | 71 | extern struct iwl_hcmd_ops iwl5000_hcmd; |
72 | extern struct iwl_hcmd_utils_ops iwl5000_hcmd_utils; | 72 | extern struct iwl_hcmd_utils_ops iwl5000_hcmd_utils; |
73 | extern struct iwl_station_mgmt_ops iwl5000_station_mgmt; | ||
73 | 74 | ||
74 | /* shared functions from iwl-5000.c */ | 75 | /* shared functions from iwl-5000.c */ |
75 | extern u16 iwl5000_get_hcmd_size(u8 cmd_id, u16 len); | 76 | extern u16 iwl5000_get_hcmd_size(u8 cmd_id, u16 len); |