diff options
author | Reinette Chatre <reinette.chatre@intel.com> | 2008-04-15 00:16:11 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-04-16 15:59:59 -0400 |
commit | 51dbfd1d59b0f55aef2105e06f770f3a97fc4e3a (patch) | |
tree | 5a274668c8cfc1533df26df69d85ac579c540c36 | |
parent | e2a722eba1b3aa504ae177353d100287398881c3 (diff) |
iwl4965: make iwl4965_send_rxon_assoc asynchronous
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 27 |
1 files changed, 6 insertions, 21 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c index 60c0b8375f24..9fb985770fd2 100644 --- a/drivers/net/wireless/iwlwifi/iwl4965-base.c +++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c | |||
@@ -758,15 +758,8 @@ static int iwl4965_full_rxon_required(struct iwl_priv *priv) | |||
758 | 758 | ||
759 | static int iwl4965_send_rxon_assoc(struct iwl_priv *priv) | 759 | static int iwl4965_send_rxon_assoc(struct iwl_priv *priv) |
760 | { | 760 | { |
761 | int rc = 0; | 761 | int ret = 0; |
762 | struct iwl4965_rx_packet *res = NULL; | ||
763 | struct iwl4965_rxon_assoc_cmd rxon_assoc; | 762 | struct iwl4965_rxon_assoc_cmd rxon_assoc; |
764 | struct iwl_host_cmd cmd = { | ||
765 | .id = REPLY_RXON_ASSOC, | ||
766 | .len = sizeof(rxon_assoc), | ||
767 | .meta.flags = CMD_WANT_SKB, | ||
768 | .data = &rxon_assoc, | ||
769 | }; | ||
770 | const struct iwl4965_rxon_cmd *rxon1 = &priv->staging_rxon; | 763 | const struct iwl4965_rxon_cmd *rxon1 = &priv->staging_rxon; |
771 | const struct iwl4965_rxon_cmd *rxon2 = &priv->active_rxon; | 764 | const struct iwl4965_rxon_cmd *rxon2 = &priv->active_rxon; |
772 | 765 | ||
@@ -794,20 +787,12 @@ static int iwl4965_send_rxon_assoc(struct iwl_priv *priv) | |||
794 | priv->staging_rxon.ofdm_ht_dual_stream_basic_rates; | 787 | priv->staging_rxon.ofdm_ht_dual_stream_basic_rates; |
795 | rxon_assoc.rx_chain_select_flags = priv->staging_rxon.rx_chain; | 788 | rxon_assoc.rx_chain_select_flags = priv->staging_rxon.rx_chain; |
796 | 789 | ||
797 | rc = iwl_send_cmd_sync(priv, &cmd); | 790 | ret = iwl_send_cmd_pdu_async(priv, REPLY_RXON_ASSOC, |
798 | if (rc) | 791 | sizeof(rxon_assoc), &rxon_assoc, NULL); |
799 | return rc; | 792 | if (ret) |
800 | 793 | return ret; | |
801 | res = (struct iwl4965_rx_packet *)cmd.meta.u.skb->data; | ||
802 | if (res->hdr.flags & IWL_CMD_FAILED_MSK) { | ||
803 | IWL_ERROR("Bad return from REPLY_RXON_ASSOC command\n"); | ||
804 | rc = -EIO; | ||
805 | } | ||
806 | |||
807 | priv->alloc_rxb_skb--; | ||
808 | dev_kfree_skb_any(cmd.meta.u.skb); | ||
809 | 794 | ||
810 | return rc; | 795 | return ret; |
811 | } | 796 | } |
812 | 797 | ||
813 | /** | 798 | /** |