aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-03-06 16:30:39 -0500
committerJohn W. Linville <linville@tuxdriver.com>2012-03-07 13:51:48 -0500
commite10a0533a9172471b52bd9512838d766420a3baf (patch)
tree872217005f1eb2e223fc1fc5b6799785e5a90691 /drivers/net/wireless/iwlwifi/iwl-agn-lib.c
parent965974a631756ab2729469b9ecadfe61ee44dfc5 (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.c38
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
247void iwlagn_dev_txfifo_flush(struct iwl_priv *priv, u16 flush_control) 247void 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
1293int 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
1298int 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}