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>
This commit is contained in:
parent
768db9829d
commit
e57f14895b
1 changed files with 46 additions and 1 deletions
|
@ -353,6 +353,9 @@ struct iwl3945_power_per_rate {
|
|||
#define POWER_TABLE_NUM_HT_OFDM_ENTRIES 32
|
||||
#define POWER_TABLE_CCK_ENTRY 32
|
||||
|
||||
#define IWL_PWR_NUM_HT_OFDM_ENTRIES 24
|
||||
#define IWL_PWR_CCK_ENTRIES 2
|
||||
|
||||
/**
|
||||
* union iwl4965_tx_power_dual_stream
|
||||
*
|
||||
|
@ -803,7 +806,7 @@ struct iwl3945_channel_switch_cmd {
|
|||
struct iwl3945_power_per_rate power[IWL_MAX_RATES];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct iwl_channel_switch_cmd {
|
||||
struct iwl4965_channel_switch_cmd {
|
||||
u8 band;
|
||||
u8 expect_beacon;
|
||||
__le16 channel;
|
||||
|
@ -813,6 +816,48 @@ struct iwl_channel_switch_cmd {
|
|||
struct iwl4965_tx_power_db tx_power;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/**
|
||||
* struct iwl5000_channel_switch_cmd
|
||||
* @band: 0- 5.2GHz, 1- 2.4GHz
|
||||
* @expect_beacon: 0- resume transmits after channel switch
|
||||
* 1- wait for beacon to resume transmits
|
||||
* @channel: new channel number
|
||||
* @rxon_flags: Rx on flags
|
||||
* @rxon_filter_flags: filtering parameters
|
||||
* @switch_time: switch time in extended beacon format
|
||||
* @reserved: reserved bytes
|
||||
*/
|
||||
struct iwl5000_channel_switch_cmd {
|
||||
u8 band;
|
||||
u8 expect_beacon;
|
||||
__le16 channel;
|
||||
__le32 rxon_flags;
|
||||
__le32 rxon_filter_flags;
|
||||
__le32 switch_time;
|
||||
__le32 reserved[2][IWL_PWR_NUM_HT_OFDM_ENTRIES + IWL_PWR_CCK_ENTRIES];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/**
|
||||
* struct iwl6000_channel_switch_cmd
|
||||
* @band: 0- 5.2GHz, 1- 2.4GHz
|
||||
* @expect_beacon: 0- resume transmits after channel switch
|
||||
* 1- wait for beacon to resume transmits
|
||||
* @channel: new channel number
|
||||
* @rxon_flags: Rx on flags
|
||||
* @rxon_filter_flags: filtering parameters
|
||||
* @switch_time: switch time in extended beacon format
|
||||
* @reserved: reserved bytes
|
||||
*/
|
||||
struct iwl6000_channel_switch_cmd {
|
||||
u8 band;
|
||||
u8 expect_beacon;
|
||||
__le16 channel;
|
||||
__le32 rxon_flags;
|
||||
__le32 rxon_filter_flags;
|
||||
__le32 switch_time;
|
||||
__le32 reserved[3][IWL_PWR_NUM_HT_OFDM_ENTRIES + IWL_PWR_CCK_ENTRIES];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/*
|
||||
* CHANNEL_SWITCH_NOTIFICATION = 0x73 (notification only, not a command)
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue