diff options
author | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2010-08-23 10:57:15 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-08-25 14:34:53 -0400 |
commit | f78e545449bb07a28b419d888c4c558b13d9e5e1 (patch) | |
tree | edc0398cc6e2048a82f8a43fe3e8b6d9fa1618ee /drivers | |
parent | b6e116e8bf7d749b0743c167bd47930c22c77a82 (diff) |
iwlagn: update bt status upon scan complete
Update bt status upon receive scan complete notification
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-commands.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-scan.c | 20 |
2 files changed, 21 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h index 8ed2412862d..9b535832f11 100644 --- a/drivers/net/wireless/iwlwifi/iwl-commands.h +++ b/drivers/net/wireless/iwlwifi/iwl-commands.h | |||
@@ -3013,7 +3013,7 @@ struct iwl_scanresults_notification { | |||
3013 | struct iwl_scancomplete_notification { | 3013 | struct iwl_scancomplete_notification { |
3014 | u8 scanned_channels; | 3014 | u8 scanned_channels; |
3015 | u8 status; | 3015 | u8 status; |
3016 | u8 reserved; | 3016 | u8 bt_status; /* BT On/Off status */ |
3017 | u8 last_channel; | 3017 | u8 last_channel; |
3018 | __le32 tsf_low; | 3018 | __le32 tsf_low; |
3019 | __le32 tsf_high; | 3019 | __le32 tsf_high; |
diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c index 8d7fa59364f..33aa7a5eea8 100644 --- a/drivers/net/wireless/iwlwifi/iwl-scan.c +++ b/drivers/net/wireless/iwlwifi/iwl-scan.c | |||
@@ -236,6 +236,26 @@ static void iwl_rx_scan_complete_notif(struct iwl_priv *priv, | |||
236 | 236 | ||
237 | clear_bit(STATUS_SCANNING, &priv->status); | 237 | clear_bit(STATUS_SCANNING, &priv->status); |
238 | 238 | ||
239 | if (priv->iw_mode != NL80211_IFTYPE_ADHOC && | ||
240 | priv->cfg->advanced_bt_coexist && priv->bt_status != | ||
241 | scan_notif->bt_status) { | ||
242 | if (scan_notif->bt_status) { | ||
243 | /* BT on */ | ||
244 | if (!priv->bt_ch_announce) | ||
245 | priv->bt_traffic_load = | ||
246 | IWL_BT_COEX_TRAFFIC_LOAD_HIGH; | ||
247 | /* | ||
248 | * otherwise, no traffic load information provided | ||
249 | * no changes made | ||
250 | */ | ||
251 | } else { | ||
252 | /* BT off */ | ||
253 | priv->bt_traffic_load = | ||
254 | IWL_BT_COEX_TRAFFIC_LOAD_NONE; | ||
255 | } | ||
256 | priv->bt_status = scan_notif->bt_status; | ||
257 | queue_work(priv->workqueue, &priv->bt_traffic_change_work); | ||
258 | } | ||
239 | queue_work(priv->workqueue, &priv->scan_completed); | 259 | queue_work(priv->workqueue, &priv->scan_completed); |
240 | } | 260 | } |
241 | 261 | ||