aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2010-08-23 10:57:09 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-08-25 14:34:20 -0400
commit5d297d50653ba0c498e0b1e7b72b6611651357aa (patch)
tree3e8e3bd0ebde5bbefd85ca0ba012ed6e0a82fe50 /drivers
parenta4b96cc4e3fa99d5d6d8ad38c5b0aa4c3aa8a828 (diff)
iwlagn: add bt prio_boost to .cfg
Use .cfg to configure the default bt priority boost value; the default bt priority boost is 0xf0 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')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-6000.c11
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-commands.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.h2
3 files changed, 13 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index 396d80c0ef38..54b59dadf2a8 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -219,7 +219,6 @@ static const __le32 iwl6000g2b_concurrent_lookup[12] = {
219static void iwl6000g2b_send_bt_config(struct iwl_priv *priv) 219static void iwl6000g2b_send_bt_config(struct iwl_priv *priv)
220{ 220{
221 struct iwl6000g2b_bt_cmd bt_cmd = { 221 struct iwl6000g2b_bt_cmd bt_cmd = {
222 .prio_boost = IWL6000G2B_BT_PRIO_BOOST_DEFAULT,
223 .max_kill = IWL6000G2B_BT_MAX_KILL_DEFAULT, 222 .max_kill = IWL6000G2B_BT_MAX_KILL_DEFAULT,
224 .bt3_timer_t7_value = IWL6000G2B_BT3_T7_DEFAULT, 223 .bt3_timer_t7_value = IWL6000G2B_BT3_T7_DEFAULT,
225 .kill_ack_mask = IWL6000G2B_BT_KILL_ACK_MASK_DEFAULT, 224 .kill_ack_mask = IWL6000G2B_BT_KILL_ACK_MASK_DEFAULT,
@@ -232,6 +231,8 @@ static void iwl6000g2b_send_bt_config(struct iwl_priv *priv)
232 BUILD_BUG_ON(sizeof(iwl6000g2b_def_3w_lookup) != 231 BUILD_BUG_ON(sizeof(iwl6000g2b_def_3w_lookup) !=
233 sizeof(bt_cmd.bt3_lookup_table)); 232 sizeof(bt_cmd.bt3_lookup_table));
234 233
234 bt_cmd.prio_boost = priv->cfg->bt_prio_boost;
235
235 /* 236 /*
236 * Configure BT coex mode to "no coexistence" when the 237 * Configure BT coex mode to "no coexistence" when the
237 * user disabled BT coexistence, we have no interface 238 * user disabled BT coexistence, we have no interface
@@ -488,6 +489,8 @@ static void iwl6000g2b_bt_coex_profile_notif(struct iwl_priv *priv,
488 sizeof(sco_cmd), &sco_cmd, NULL); 489 sizeof(sco_cmd), &sco_cmd, NULL);
489 } 490 }
490 491
492 /* FIXME: based on notification, adjust the prio_boost */
493
491 spin_lock_irqsave(&priv->lock, flags); 494 spin_lock_irqsave(&priv->lock, flags);
492 priv->bt_ci_compliance = coex->bt_ci_compliance; 495 priv->bt_ci_compliance = coex->bt_ci_compliance;
493 spin_unlock_irqrestore(&priv->lock, flags); 496 spin_unlock_irqrestore(&priv->lock, flags);
@@ -833,6 +836,7 @@ struct iwl_cfg iwl6000g2b_2agn_cfg = {
833 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, 836 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
834 .advanced_bt_coexist = true, 837 .advanced_bt_coexist = true,
835 .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE, 838 .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE,
839 .bt_prio_boost = IWL6000G2B_BT_PRIO_BOOST_DEFAULT,
836}; 840};
837 841
838struct iwl_cfg iwl6000g2b_2abg_cfg = { 842struct iwl_cfg iwl6000g2b_2abg_cfg = {
@@ -873,6 +877,7 @@ struct iwl_cfg iwl6000g2b_2abg_cfg = {
873 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, 877 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
874 .advanced_bt_coexist = true, 878 .advanced_bt_coexist = true,
875 .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE, 879 .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE,
880 .bt_prio_boost = IWL6000G2B_BT_PRIO_BOOST_DEFAULT,
876}; 881};
877 882
878struct iwl_cfg iwl6000g2b_2bgn_cfg = { 883struct iwl_cfg iwl6000g2b_2bgn_cfg = {
@@ -915,6 +920,7 @@ struct iwl_cfg iwl6000g2b_2bgn_cfg = {
915 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, 920 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
916 .advanced_bt_coexist = true, 921 .advanced_bt_coexist = true,
917 .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE, 922 .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE,
923 .bt_prio_boost = IWL6000G2B_BT_PRIO_BOOST_DEFAULT,
918}; 924};
919 925
920struct iwl_cfg iwl6000g2b_2bg_cfg = { 926struct iwl_cfg iwl6000g2b_2bg_cfg = {
@@ -955,6 +961,7 @@ struct iwl_cfg iwl6000g2b_2bg_cfg = {
955 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, 961 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
956 .advanced_bt_coexist = true, 962 .advanced_bt_coexist = true,
957 .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE, 963 .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE,
964 .bt_prio_boost = IWL6000G2B_BT_PRIO_BOOST_DEFAULT,
958}; 965};
959 966
960struct iwl_cfg iwl6000g2b_bgn_cfg = { 967struct iwl_cfg iwl6000g2b_bgn_cfg = {
@@ -997,6 +1004,7 @@ struct iwl_cfg iwl6000g2b_bgn_cfg = {
997 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, 1004 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
998 .advanced_bt_coexist = true, 1005 .advanced_bt_coexist = true,
999 .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE, 1006 .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE,
1007 .bt_prio_boost = IWL6000G2B_BT_PRIO_BOOST_DEFAULT,
1000}; 1008};
1001 1009
1002struct iwl_cfg iwl6000g2b_bg_cfg = { 1010struct iwl_cfg iwl6000g2b_bg_cfg = {
@@ -1037,6 +1045,7 @@ struct iwl_cfg iwl6000g2b_bg_cfg = {
1037 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, 1045 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
1038 .advanced_bt_coexist = true, 1046 .advanced_bt_coexist = true,
1039 .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE, 1047 .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE,
1048 .bt_prio_boost = IWL6000G2B_BT_PRIO_BOOST_DEFAULT,
1040}; 1049};
1041 1050
1042/* 1051/*
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
index b45882aa68fe..e742f994ff82 100644
--- a/drivers/net/wireless/iwlwifi/iwl-commands.h
+++ b/drivers/net/wireless/iwlwifi/iwl-commands.h
@@ -2409,7 +2409,7 @@ struct iwl_bt_cmd {
2409 2409
2410#define IWL6000G2B_BT_PRIO_BOOST_MAX 0xFF 2410#define IWL6000G2B_BT_PRIO_BOOST_MAX 0xFF
2411#define IWL6000G2B_BT_PRIO_BOOST_MIN 0x00 2411#define IWL6000G2B_BT_PRIO_BOOST_MIN 0x00
2412#define IWL6000G2B_BT_PRIO_BOOST_DEFAULT 0x00 2412#define IWL6000G2B_BT_PRIO_BOOST_DEFAULT 0xF0
2413 2413
2414#define IWL6000G2B_BT_MAX_KILL_DEFAULT 5 2414#define IWL6000G2B_BT_MAX_KILL_DEFAULT 5
2415 2415
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index d5dacaf0d09f..de2e39f36c25 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -280,6 +280,7 @@ struct iwl_mod_params {
280 * @scan_antennas: available antenna for scan operation 280 * @scan_antennas: available antenna for scan operation
281 * @advanced_bt_coexist: support advanced bt coexist 281 * @advanced_bt_coexist: support advanced bt coexist
282 * @bt_init_traffic_load: specify initial bt traffic load 282 * @bt_init_traffic_load: specify initial bt traffic load
283 * @bt_prio_boost: default bt priority boost value
283 * @need_dc_calib: need to perform init dc calibration 284 * @need_dc_calib: need to perform init dc calibration
284 * @bt_statistics: use BT version of statistics notification 285 * @bt_statistics: use BT version of statistics notification
285 * @agg_time_limit: maximum number of uSec in aggregation 286 * @agg_time_limit: maximum number of uSec in aggregation
@@ -355,6 +356,7 @@ struct iwl_cfg {
355 u8 scan_tx_antennas[IEEE80211_NUM_BANDS]; 356 u8 scan_tx_antennas[IEEE80211_NUM_BANDS];
356 bool advanced_bt_coexist; 357 bool advanced_bt_coexist;
357 u8 bt_init_traffic_load; 358 u8 bt_init_traffic_load;
359 u8 bt_prio_boost;
358 const bool need_dc_calib; 360 const bool need_dc_calib;
359 const bool bt_statistics; 361 const bool bt_statistics;
360 u16 agg_time_limit; 362 u16 agg_time_limit;