aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-04-13 04:04:31 -0400
committerReinette Chatre <reinette.chatre@intel.com>2010-04-16 16:53:34 -0400
commit65b52bde687b609dc9cfc63eaf31da24b4f5663a (patch)
treefe9d55226d99be0fe561e3c2bb3d04d21c620dc9 /drivers/net/wireless/iwlwifi
parentf4388adc92464397bb08a62c62c98b3b654bccc2 (diff)
iwlwifi: make BT coex config a virtual method
Some future hardware will require a different command to be sent for bluetooth coexist, so make this a virtual method that can be changed on a per-device basis. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c7
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.h3
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c2
7 files changed, 11 insertions, 6 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c
index 51f18950f077..d10e59def53e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.c
@@ -2687,6 +2687,7 @@ IWL3945_UCODE_GET(boot_size);
2687static struct iwl_hcmd_ops iwl3945_hcmd = { 2687static struct iwl_hcmd_ops iwl3945_hcmd = {
2688 .rxon_assoc = iwl3945_send_rxon_assoc, 2688 .rxon_assoc = iwl3945_send_rxon_assoc,
2689 .commit_rxon = iwl3945_commit_rxon, 2689 .commit_rxon = iwl3945_commit_rxon,
2690 .send_bt_config = iwl_send_bt_config,
2690}; 2691};
2691 2692
2692static struct iwl_ucode_ops iwl3945_ucode = { 2693static struct iwl_ucode_ops iwl3945_ucode = {
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index 85672978cab1..2861819e56e3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -2144,6 +2144,7 @@ static struct iwl_hcmd_ops iwl4965_hcmd = {
2144 .rxon_assoc = iwl4965_send_rxon_assoc, 2144 .rxon_assoc = iwl4965_send_rxon_assoc,
2145 .commit_rxon = iwl_commit_rxon, 2145 .commit_rxon = iwl_commit_rxon,
2146 .set_rxon_chain = iwl_set_rxon_chain, 2146 .set_rxon_chain = iwl_set_rxon_chain,
2147 .send_bt_config = iwl_send_bt_config,
2147}; 2148};
2148 2149
2149static struct iwl_ucode_ops iwl4965_ucode = { 2150static struct iwl_ucode_ops iwl4965_ucode = {
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
index 231d0e67e6fc..44ef5d93befc 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
@@ -262,6 +262,7 @@ struct iwl_hcmd_ops iwlagn_hcmd = {
262 .commit_rxon = iwl_commit_rxon, 262 .commit_rxon = iwl_commit_rxon,
263 .set_rxon_chain = iwl_set_rxon_chain, 263 .set_rxon_chain = iwl_set_rxon_chain,
264 .set_tx_ant = iwlagn_send_tx_ant_config, 264 .set_tx_ant = iwlagn_send_tx_ant_config,
265 .send_bt_config = iwl_send_bt_config,
265}; 266};
266 267
267struct iwl_hcmd_utils_ops iwlagn_hcmd_utils = { 268struct iwl_hcmd_utils_ops iwlagn_hcmd_utils = {
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 1f3c5d5860a4..c22d3d8c440c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2173,7 +2173,7 @@ static void iwl_alive_start(struct iwl_priv *priv)
2173 } 2173 }
2174 2174
2175 /* Configure Bluetooth device coexistence support */ 2175 /* Configure Bluetooth device coexistence support */
2176 iwl_send_bt_config(priv); 2176 priv->cfg->ops->hcmd->send_bt_config(priv);
2177 2177
2178 iwl_reset_run_time_calib(priv); 2178 iwl_reset_run_time_calib(priv);
2179 2179
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 9d300b2d9fe3..aa86ef9fb426 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -1479,7 +1479,7 @@ irqreturn_t iwl_isr_legacy(int irq, void *data)
1479} 1479}
1480EXPORT_SYMBOL(iwl_isr_legacy); 1480EXPORT_SYMBOL(iwl_isr_legacy);
1481 1481
1482int iwl_send_bt_config(struct iwl_priv *priv) 1482void iwl_send_bt_config(struct iwl_priv *priv)
1483{ 1483{
1484 struct iwl_bt_cmd bt_cmd = { 1484 struct iwl_bt_cmd bt_cmd = {
1485 .lead_time = BT_LEAD_TIME_DEF, 1485 .lead_time = BT_LEAD_TIME_DEF,
@@ -1496,8 +1496,9 @@ int iwl_send_bt_config(struct iwl_priv *priv)
1496 IWL_DEBUG_INFO(priv, "BT coex %s\n", 1496 IWL_DEBUG_INFO(priv, "BT coex %s\n",
1497 (bt_cmd.flags == BT_COEX_DISABLE) ? "disable" : "active"); 1497 (bt_cmd.flags == BT_COEX_DISABLE) ? "disable" : "active");
1498 1498
1499 return iwl_send_cmd_pdu(priv, REPLY_BT_CONFIG, 1499 if (iwl_send_cmd_pdu(priv, REPLY_BT_CONFIG,
1500 sizeof(struct iwl_bt_cmd), &bt_cmd); 1500 sizeof(struct iwl_bt_cmd), &bt_cmd))
1501 IWL_ERR(priv, "failed to send BT Coex Config\n");
1501} 1502}
1502EXPORT_SYMBOL(iwl_send_bt_config); 1503EXPORT_SYMBOL(iwl_send_bt_config);
1503 1504
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index 2a3b173e4db0..d9ec0307220c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -90,6 +90,7 @@ struct iwl_hcmd_ops {
90 int (*commit_rxon)(struct iwl_priv *priv); 90 int (*commit_rxon)(struct iwl_priv *priv);
91 void (*set_rxon_chain)(struct iwl_priv *priv); 91 void (*set_rxon_chain)(struct iwl_priv *priv);
92 int (*set_tx_ant)(struct iwl_priv *priv, u8 valid_tx_ant); 92 int (*set_tx_ant)(struct iwl_priv *priv, u8 valid_tx_ant);
93 void (*send_bt_config)(struct iwl_priv *priv);
93}; 94};
94 95
95struct iwl_hcmd_utils_ops { 96struct iwl_hcmd_utils_ops {
@@ -677,7 +678,7 @@ static inline int iwl_is_ready_rf(struct iwl_priv *priv)
677} 678}
678 679
679extern void iwl_rf_kill_ct_config(struct iwl_priv *priv); 680extern void iwl_rf_kill_ct_config(struct iwl_priv *priv);
680extern int iwl_send_bt_config(struct iwl_priv *priv); 681extern void iwl_send_bt_config(struct iwl_priv *priv);
681extern int iwl_send_statistics_request(struct iwl_priv *priv, 682extern int iwl_send_statistics_request(struct iwl_priv *priv,
682 u8 flags, bool clear); 683 u8 flags, bool clear);
683extern int iwl_verify_ucode(struct iwl_priv *priv); 684extern int iwl_verify_ucode(struct iwl_priv *priv);
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 8da3375b603b..64b20e78376e 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -2526,7 +2526,7 @@ static void iwl3945_alive_start(struct iwl_priv *priv)
2526 } 2526 }
2527 2527
2528 /* Configure Bluetooth device coexistence support */ 2528 /* Configure Bluetooth device coexistence support */
2529 iwl_send_bt_config(priv); 2529 priv->cfg->ops->hcmd->send_bt_config(priv);
2530 2530
2531 /* Configure the adapter for unassociated operation */ 2531 /* Configure the adapter for unassociated operation */
2532 iwlcore_commit_rxon(priv); 2532 iwlcore_commit_rxon(priv);