aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-4965.c
diff options
context:
space:
mode:
authorGregory Greenman <gregory.greenman@intel.com>2008-05-15 01:53:59 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-05-21 21:47:54 -0400
commitc1adf9fb31e31ee753d613bd5bc6aef9b762b747 (patch)
treec4f91af5ec9b24bee0833cf88b6379b1cf8fb993 /drivers/net/wireless/iwlwifi/iwl-4965.c
parent8567c63e3385688b95658fe31b3ac8f4436b1b0f (diff)
iwlwifi: get_hw_cmd_size
This patch introduces a new handler get_hw_cmd_size in hcmd_utils, which should adjust the size of the command sent to the microcode according to the current nic. It also changes the RXON flow to make usage of this new handler. The patch also adds iwl_rxon_cmd structure which is supperset for 5000 HW and 4965. Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-4965.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index 2bb0075a807f..83876a07fe2e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -1857,8 +1857,8 @@ static int iwl4965_send_rxon_assoc(struct iwl_priv *priv)
1857{ 1857{
1858 int ret = 0; 1858 int ret = 0;
1859 struct iwl4965_rxon_assoc_cmd rxon_assoc; 1859 struct iwl4965_rxon_assoc_cmd rxon_assoc;
1860 const struct iwl4965_rxon_cmd *rxon1 = &priv->staging_rxon; 1860 const struct iwl_rxon_cmd *rxon1 = &priv->staging_rxon;
1861 const struct iwl4965_rxon_cmd *rxon2 = &priv->active_rxon; 1861 const struct iwl_rxon_cmd *rxon2 = &priv->active_rxon;
1862 1862
1863 if ((rxon1->flags == rxon2->flags) && 1863 if ((rxon1->flags == rxon2->flags) &&
1864 (rxon1->filter_flags == rxon2->filter_flags) && 1864 (rxon1->filter_flags == rxon2->filter_flags) &&
@@ -3743,6 +3743,16 @@ int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw,
3743#endif /* CONFIG_IWL4965_HT */ 3743#endif /* CONFIG_IWL4965_HT */
3744 3744
3745 3745
3746static u16 iwl4965_get_hcmd_size(u8 cmd_id, u16 len)
3747{
3748 switch (cmd_id) {
3749 case REPLY_RXON:
3750 return (u16) sizeof(struct iwl4965_rxon_cmd);
3751 default:
3752 return len;
3753 }
3754}
3755
3746static u16 iwl4965_build_addsta_hcmd(const struct iwl_addsta_cmd *cmd, u8 *data) 3756static u16 iwl4965_build_addsta_hcmd(const struct iwl_addsta_cmd *cmd, u8 *data)
3747{ 3757{
3748 struct iwl4965_addsta_cmd *addsta = (struct iwl4965_addsta_cmd *)data; 3758 struct iwl4965_addsta_cmd *addsta = (struct iwl4965_addsta_cmd *)data;
@@ -3802,6 +3812,7 @@ static struct iwl_hcmd_ops iwl4965_hcmd = {
3802}; 3812};
3803 3813
3804static struct iwl_hcmd_utils_ops iwl4965_hcmd_utils = { 3814static struct iwl_hcmd_utils_ops iwl4965_hcmd_utils = {
3815 .get_hcmd_size = iwl4965_get_hcmd_size,
3805 .enqueue_hcmd = iwl4965_enqueue_hcmd, 3816 .enqueue_hcmd = iwl4965_enqueue_hcmd,
3806 .build_addsta_hcmd = iwl4965_build_addsta_hcmd, 3817 .build_addsta_hcmd = iwl4965_build_addsta_hcmd,
3807#ifdef CONFIG_IWL4965_RUN_TIME_CALIB 3818#ifdef CONFIG_IWL4965_RUN_TIME_CALIB