diff options
author | Johannes Berg <johannes.berg@intel.com> | 2010-04-13 04:04:31 -0400 |
---|---|---|
committer | Reinette Chatre <reinette.chatre@intel.com> | 2010-04-16 16:53:34 -0400 |
commit | 65b52bde687b609dc9cfc63eaf31da24b4f5663a (patch) | |
tree | fe9d55226d99be0fe561e3c2bb3d04d21c620dc9 /drivers/net/wireless/iwlwifi | |
parent | f4388adc92464397bb08a62c62c98b3b654bccc2 (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.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.h | 3 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 2 |
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); | |||
2687 | static struct iwl_hcmd_ops iwl3945_hcmd = { | 2687 | static 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 | ||
2692 | static struct iwl_ucode_ops iwl3945_ucode = { | 2693 | static 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 | ||
2149 | static struct iwl_ucode_ops iwl4965_ucode = { | 2150 | static 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 | ||
267 | struct iwl_hcmd_utils_ops iwlagn_hcmd_utils = { | 268 | struct 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 | } |
1480 | EXPORT_SYMBOL(iwl_isr_legacy); | 1480 | EXPORT_SYMBOL(iwl_isr_legacy); |
1481 | 1481 | ||
1482 | int iwl_send_bt_config(struct iwl_priv *priv) | 1482 | void 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 | } |
1502 | EXPORT_SYMBOL(iwl_send_bt_config); | 1503 | EXPORT_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 | ||
95 | struct iwl_hcmd_utils_ops { | 96 | struct iwl_hcmd_utils_ops { |
@@ -677,7 +678,7 @@ static inline int iwl_is_ready_rf(struct iwl_priv *priv) | |||
677 | } | 678 | } |
678 | 679 | ||
679 | extern void iwl_rf_kill_ct_config(struct iwl_priv *priv); | 680 | extern void iwl_rf_kill_ct_config(struct iwl_priv *priv); |
680 | extern int iwl_send_bt_config(struct iwl_priv *priv); | 681 | extern void iwl_send_bt_config(struct iwl_priv *priv); |
681 | extern int iwl_send_statistics_request(struct iwl_priv *priv, | 682 | extern int iwl_send_statistics_request(struct iwl_priv *priv, |
682 | u8 flags, bool clear); | 683 | u8 flags, bool clear); |
683 | extern int iwl_verify_ucode(struct iwl_priv *priv); | 684 | extern 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); |