aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReinette Chatre <reinette.chatre@intel.com>2008-04-15 00:16:11 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-04-16 15:59:59 -0400
commit51dbfd1d59b0f55aef2105e06f770f3a97fc4e3a (patch)
tree5a274668c8cfc1533df26df69d85ac579c540c36
parente2a722eba1b3aa504ae177353d100287398881c3 (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.c27
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
759static int iwl4965_send_rxon_assoc(struct iwl_priv *priv) 759static 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/**