diff options
author | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2009-11-06 17:52:54 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-11-11 15:23:44 -0500 |
commit | 0924e519a3a18ffbfaa043f4a2c369140c5a235c (patch) | |
tree | 85bab606d81ae1959fec12d246ba19f1097eeacc /drivers/net/wireless/iwlwifi/iwl-dev.h | |
parent | 681988653ed46a14032ac5fe2ee84eaae314b72e (diff) |
iwlwifi: fix for channel switch
Different channel has different configuration, need to pass correct
configuration to uCode when send "channel switch" command to uCode.
Invalid configuration will cause sysassert in uCode and produce
un-expected result.
Even it is a very small windows, but we also need to consider and handle
the case if commit_rxon occurred before the "channel switch
announcement" notification received from uCode.
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-dev.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index 997564584c71..9a19a3d1f704 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h | |||
@@ -994,6 +994,17 @@ struct traffic_stats { | |||
994 | }; | 994 | }; |
995 | #endif | 995 | #endif |
996 | 996 | ||
997 | /* | ||
998 | * iwl_switch_rxon: "channel switch" structure | ||
999 | * | ||
1000 | * @ switch_in_progress: channel switch in progress | ||
1001 | * @ channel: new channel | ||
1002 | */ | ||
1003 | struct iwl_switch_rxon { | ||
1004 | bool switch_in_progress; | ||
1005 | __le16 channel; | ||
1006 | }; | ||
1007 | |||
997 | struct iwl_priv { | 1008 | struct iwl_priv { |
998 | 1009 | ||
999 | /* ieee device used by generic ieee processing code */ | 1010 | /* ieee device used by generic ieee processing code */ |
@@ -1087,6 +1098,8 @@ struct iwl_priv { | |||
1087 | const struct iwl_rxon_cmd active_rxon; | 1098 | const struct iwl_rxon_cmd active_rxon; |
1088 | struct iwl_rxon_cmd staging_rxon; | 1099 | struct iwl_rxon_cmd staging_rxon; |
1089 | 1100 | ||
1101 | struct iwl_switch_rxon switch_rxon; | ||
1102 | |||
1090 | /* 1st responses from initialize and runtime uCode images. | 1103 | /* 1st responses from initialize and runtime uCode images. |
1091 | * 4965's initialize alive response contains some calibration data. */ | 1104 | * 4965's initialize alive response contains some calibration data. */ |
1092 | struct iwl_init_alive_resp card_alive_init; | 1105 | struct iwl_init_alive_resp card_alive_init; |