aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2010-08-23 10:57:15 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-08-25 14:34:53 -0400
commitf78e545449bb07a28b419d888c4c558b13d9e5e1 (patch)
treeedc0398cc6e2048a82f8a43fe3e8b6d9fa1618ee /drivers
parentb6e116e8bf7d749b0743c167bd47930c22c77a82 (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.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-scan.c20
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 {
3013struct iwl_scancomplete_notification { 3013struct 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