diff options
author | Johannes Berg <johannes.berg@intel.com> | 2012-03-06 16:30:39 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-03-07 13:51:48 -0500 |
commit | e10a0533a9172471b52bd9512838d766420a3baf (patch) | |
tree | 872217005f1eb2e223fc1fc5b6799785e5a90691 /drivers/net/wireless/iwlwifi/iwl-agn-lib.c | |
parent | 965974a631756ab2729469b9ecadfe61ee44dfc5 (diff) |
iwlwifi: add wrappers for command sending
Add wrappers to send commands from the DVM
op-mode (which essentially consists of the
current driver). This will allow us to move
specific sanity checks there.
Also, this removes iwl_trans_send_cmd_pdu()
since that can now be taken care of in the
DVM-specific wrapper.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn-lib.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c index b06283282283..4c777dfc0db0 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c | |||
@@ -81,7 +81,7 @@ int iwlagn_send_tx_power(struct iwl_priv *priv) | |||
81 | else | 81 | else |
82 | tx_ant_cfg_cmd = REPLY_TX_POWER_DBM_CMD; | 82 | tx_ant_cfg_cmd = REPLY_TX_POWER_DBM_CMD; |
83 | 83 | ||
84 | return iwl_trans_send_cmd_pdu(trans(priv), tx_ant_cfg_cmd, CMD_SYNC, | 84 | return iwl_dvm_send_cmd_pdu(priv, tx_ant_cfg_cmd, CMD_SYNC, |
85 | sizeof(tx_power_cmd), &tx_power_cmd); | 85 | sizeof(tx_power_cmd), &tx_power_cmd); |
86 | } | 86 | } |
87 | 87 | ||
@@ -241,7 +241,7 @@ int iwlagn_txfifo_flush(struct iwl_priv *priv, u16 flush_control) | |||
241 | flush_cmd.fifo_control); | 241 | flush_cmd.fifo_control); |
242 | flush_cmd.flush_control = cpu_to_le16(flush_control); | 242 | flush_cmd.flush_control = cpu_to_le16(flush_control); |
243 | 243 | ||
244 | return iwl_trans_send_cmd(trans(priv), &cmd); | 244 | return iwl_dvm_send_cmd(priv, &cmd); |
245 | } | 245 | } |
246 | 246 | ||
247 | void iwlagn_dev_txfifo_flush(struct iwl_priv *priv, u16 flush_control) | 247 | void iwlagn_dev_txfifo_flush(struct iwl_priv *priv, u16 flush_control) |
@@ -435,12 +435,12 @@ void iwlagn_send_advance_bt_config(struct iwl_priv *priv) | |||
435 | if (cfg(priv)->bt_params->bt_session_2) { | 435 | if (cfg(priv)->bt_params->bt_session_2) { |
436 | memcpy(&bt_cmd_2000.basic, &basic, | 436 | memcpy(&bt_cmd_2000.basic, &basic, |
437 | sizeof(basic)); | 437 | sizeof(basic)); |
438 | ret = iwl_trans_send_cmd_pdu(trans(priv), REPLY_BT_CONFIG, | 438 | ret = iwl_dvm_send_cmd_pdu(priv, REPLY_BT_CONFIG, |
439 | CMD_SYNC, sizeof(bt_cmd_2000), &bt_cmd_2000); | 439 | CMD_SYNC, sizeof(bt_cmd_2000), &bt_cmd_2000); |
440 | } else { | 440 | } else { |
441 | memcpy(&bt_cmd_6000.basic, &basic, | 441 | memcpy(&bt_cmd_6000.basic, &basic, |
442 | sizeof(basic)); | 442 | sizeof(basic)); |
443 | ret = iwl_trans_send_cmd_pdu(trans(priv), REPLY_BT_CONFIG, | 443 | ret = iwl_dvm_send_cmd_pdu(priv, REPLY_BT_CONFIG, |
444 | CMD_SYNC, sizeof(bt_cmd_6000), &bt_cmd_6000); | 444 | CMD_SYNC, sizeof(bt_cmd_6000), &bt_cmd_6000); |
445 | } | 445 | } |
446 | if (ret) | 446 | if (ret) |
@@ -1115,7 +1115,7 @@ int iwlagn_send_patterns(struct iwl_priv *priv, | |||
1115 | } | 1115 | } |
1116 | 1116 | ||
1117 | cmd.data[0] = pattern_cmd; | 1117 | cmd.data[0] = pattern_cmd; |
1118 | err = iwl_trans_send_cmd(trans(priv), &cmd); | 1118 | err = iwl_dvm_send_cmd(priv, &cmd); |
1119 | kfree(pattern_cmd); | 1119 | kfree(pattern_cmd); |
1120 | return err; | 1120 | return err; |
1121 | } | 1121 | } |
@@ -1241,13 +1241,13 @@ int iwlagn_suspend(struct iwl_priv *priv, | |||
1241 | .len[0] = sizeof(key_data.rsc_tsc), | 1241 | .len[0] = sizeof(key_data.rsc_tsc), |
1242 | }; | 1242 | }; |
1243 | 1243 | ||
1244 | ret = iwl_trans_send_cmd(trans(priv), &rsc_tsc_cmd); | 1244 | ret = iwl_dvm_send_cmd(priv, &rsc_tsc_cmd); |
1245 | if (ret) | 1245 | if (ret) |
1246 | goto out; | 1246 | goto out; |
1247 | } | 1247 | } |
1248 | 1248 | ||
1249 | if (key_data.use_tkip) { | 1249 | if (key_data.use_tkip) { |
1250 | ret = iwl_trans_send_cmd_pdu(trans(priv), | 1250 | ret = iwl_dvm_send_cmd_pdu(priv, |
1251 | REPLY_WOWLAN_TKIP_PARAMS, | 1251 | REPLY_WOWLAN_TKIP_PARAMS, |
1252 | CMD_SYNC, sizeof(tkip_cmd), | 1252 | CMD_SYNC, sizeof(tkip_cmd), |
1253 | &tkip_cmd); | 1253 | &tkip_cmd); |
@@ -1263,7 +1263,7 @@ int iwlagn_suspend(struct iwl_priv *priv, | |||
1263 | kek_kck_cmd.kek_len = cpu_to_le16(NL80211_KEK_LEN); | 1263 | kek_kck_cmd.kek_len = cpu_to_le16(NL80211_KEK_LEN); |
1264 | kek_kck_cmd.replay_ctr = priv->replay_ctr; | 1264 | kek_kck_cmd.replay_ctr = priv->replay_ctr; |
1265 | 1265 | ||
1266 | ret = iwl_trans_send_cmd_pdu(trans(priv), | 1266 | ret = iwl_dvm_send_cmd_pdu(priv, |
1267 | REPLY_WOWLAN_KEK_KCK_MATERIAL, | 1267 | REPLY_WOWLAN_KEK_KCK_MATERIAL, |
1268 | CMD_SYNC, sizeof(kek_kck_cmd), | 1268 | CMD_SYNC, sizeof(kek_kck_cmd), |
1269 | &kek_kck_cmd); | 1269 | &kek_kck_cmd); |
@@ -1272,12 +1272,12 @@ int iwlagn_suspend(struct iwl_priv *priv, | |||
1272 | } | 1272 | } |
1273 | } | 1273 | } |
1274 | 1274 | ||
1275 | ret = iwl_trans_send_cmd_pdu(trans(priv), REPLY_D3_CONFIG, CMD_SYNC, | 1275 | ret = iwl_dvm_send_cmd_pdu(priv, REPLY_D3_CONFIG, CMD_SYNC, |
1276 | sizeof(d3_cfg_cmd), &d3_cfg_cmd); | 1276 | sizeof(d3_cfg_cmd), &d3_cfg_cmd); |
1277 | if (ret) | 1277 | if (ret) |
1278 | goto out; | 1278 | goto out; |
1279 | 1279 | ||
1280 | ret = iwl_trans_send_cmd_pdu(trans(priv), REPLY_WOWLAN_WAKEUP_FILTER, | 1280 | ret = iwl_dvm_send_cmd_pdu(priv, REPLY_WOWLAN_WAKEUP_FILTER, |
1281 | CMD_SYNC, sizeof(wakeup_filter_cmd), | 1281 | CMD_SYNC, sizeof(wakeup_filter_cmd), |
1282 | &wakeup_filter_cmd); | 1282 | &wakeup_filter_cmd); |
1283 | if (ret) | 1283 | if (ret) |
@@ -1289,3 +1289,21 @@ int iwlagn_suspend(struct iwl_priv *priv, | |||
1289 | return ret; | 1289 | return ret; |
1290 | } | 1290 | } |
1291 | #endif | 1291 | #endif |
1292 | |||
1293 | int iwl_dvm_send_cmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd) | ||
1294 | { | ||
1295 | return iwl_trans_send_cmd(trans(priv), cmd); | ||
1296 | } | ||
1297 | |||
1298 | int iwl_dvm_send_cmd_pdu(struct iwl_priv *priv, u8 id, | ||
1299 | u32 flags, u16 len, const void *data) | ||
1300 | { | ||
1301 | struct iwl_host_cmd cmd = { | ||
1302 | .id = id, | ||
1303 | .len = { len, }, | ||
1304 | .data = { data, }, | ||
1305 | .flags = flags, | ||
1306 | }; | ||
1307 | |||
1308 | return iwl_dvm_send_cmd(priv, &cmd); | ||
1309 | } | ||