aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2009-10-09 16:20:34 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-10-27 16:48:01 -0400
commite57f14895bf6bc7f16df760963427ac6ee6ff7e1 (patch)
treef314fcb2be3c2bc17fdfca3eaf5e0e6df4a23a77 /drivers/net/wireless/iwlwifi
parent768db9829d0d45d57204714f18b54f7fc0561ddf (diff)
iwlwifi: update channel switch command API
Channel switch host command has different data structure for different devices. Adding additional structures to support 5000 and 6000 NICs. unlike 4965, starting with 5000 series, the tx power is managed by uCode, there is no tx power db information need to be passing from driver to uCode; but the space needs to be reserved to match uCode expection. 1000 NIC do not support channel switch operation since it is 'bgn' device, there is no need to have data structure defined for it. 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')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-commands.h47
1 files changed, 46 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
index 2e8a55ed7de5..cc4e9122709e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-commands.h
+++ b/drivers/net/wireless/iwlwifi/iwl-commands.h
@@ -353,6 +353,9 @@ struct iwl3945_power_per_rate {
353#define POWER_TABLE_NUM_HT_OFDM_ENTRIES 32 353#define POWER_TABLE_NUM_HT_OFDM_ENTRIES 32
354#define POWER_TABLE_CCK_ENTRY 32 354#define POWER_TABLE_CCK_ENTRY 32
355 355
356#define IWL_PWR_NUM_HT_OFDM_ENTRIES 24
357#define IWL_PWR_CCK_ENTRIES 2
358
356/** 359/**
357 * union iwl4965_tx_power_dual_stream 360 * union iwl4965_tx_power_dual_stream
358 * 361 *
@@ -803,7 +806,7 @@ struct iwl3945_channel_switch_cmd {
803 struct iwl3945_power_per_rate power[IWL_MAX_RATES]; 806 struct iwl3945_power_per_rate power[IWL_MAX_RATES];
804} __attribute__ ((packed)); 807} __attribute__ ((packed));
805 808
806struct iwl_channel_switch_cmd { 809struct iwl4965_channel_switch_cmd {
807 u8 band; 810 u8 band;
808 u8 expect_beacon; 811 u8 expect_beacon;
809 __le16 channel; 812 __le16 channel;
@@ -813,6 +816,48 @@ struct iwl_channel_switch_cmd {
813 struct iwl4965_tx_power_db tx_power; 816 struct iwl4965_tx_power_db tx_power;
814} __attribute__ ((packed)); 817} __attribute__ ((packed));
815 818
819/**
820 * struct iwl5000_channel_switch_cmd
821 * @band: 0- 5.2GHz, 1- 2.4GHz
822 * @expect_beacon: 0- resume transmits after channel switch
823 * 1- wait for beacon to resume transmits
824 * @channel: new channel number
825 * @rxon_flags: Rx on flags
826 * @rxon_filter_flags: filtering parameters
827 * @switch_time: switch time in extended beacon format
828 * @reserved: reserved bytes
829 */
830struct iwl5000_channel_switch_cmd {
831 u8 band;
832 u8 expect_beacon;
833 __le16 channel;
834 __le32 rxon_flags;
835 __le32 rxon_filter_flags;
836 __le32 switch_time;
837 __le32 reserved[2][IWL_PWR_NUM_HT_OFDM_ENTRIES + IWL_PWR_CCK_ENTRIES];
838} __attribute__ ((packed));
839
840/**
841 * struct iwl6000_channel_switch_cmd
842 * @band: 0- 5.2GHz, 1- 2.4GHz
843 * @expect_beacon: 0- resume transmits after channel switch
844 * 1- wait for beacon to resume transmits
845 * @channel: new channel number
846 * @rxon_flags: Rx on flags
847 * @rxon_filter_flags: filtering parameters
848 * @switch_time: switch time in extended beacon format
849 * @reserved: reserved bytes
850 */
851struct iwl6000_channel_switch_cmd {
852 u8 band;
853 u8 expect_beacon;
854 __le16 channel;
855 __le32 rxon_flags;
856 __le32 rxon_filter_flags;
857 __le32 switch_time;
858 __le32 reserved[3][IWL_PWR_NUM_HT_OFDM_ENTRIES + IWL_PWR_CCK_ENTRIES];
859} __attribute__ ((packed));
860
816/* 861/*
817 * CHANNEL_SWITCH_NOTIFICATION = 0x73 (notification only, not a command) 862 * CHANNEL_SWITCH_NOTIFICATION = 0x73 (notification only, not a command)
818 */ 863 */