diff options
author | Ron Rindjunsky <ron.rindjunsky@intel.com> | 2008-05-04 22:22:42 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-05-14 16:29:45 -0400 |
commit | 5a676bbeaf9e534b75286f2294ec57a4c544f1d2 (patch) | |
tree | 9e3492448c2758d8bf18f816eac759ad57f26396 /drivers/net/wireless/iwlwifi/iwl-5000.c | |
parent | 47c5196e4a340667d8d92053380ecca24ed45a9b (diff) |
iwlwifi: create disable SCD Tx FIFOs handler
This patch moves disabeling Tx FIFOs in NIC SCD to seperate handlers
in 4965 and 5000 cards.
Signed-off-by: Ron Rindjunsky <ron.rindjunsky@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-5000.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-5000.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c index f9c227413086..feffcafe1495 100644 --- a/drivers/net/wireless/iwlwifi/iwl-5000.c +++ b/drivers/net/wireless/iwlwifi/iwl-5000.c | |||
@@ -430,6 +430,27 @@ static u16 iwl5000_build_addsta_hcmd(const struct iwl_addsta_cmd *cmd, u8 *data) | |||
430 | } | 430 | } |
431 | 431 | ||
432 | 432 | ||
433 | static int iwl5000_disable_tx_fifo(struct iwl_priv *priv) | ||
434 | { | ||
435 | unsigned long flags; | ||
436 | int ret; | ||
437 | |||
438 | spin_lock_irqsave(&priv->lock, flags); | ||
439 | |||
440 | ret = iwl_grab_nic_access(priv); | ||
441 | if (unlikely(ret)) { | ||
442 | IWL_ERROR("Tx fifo reset failed"); | ||
443 | spin_unlock_irqrestore(&priv->lock, flags); | ||
444 | return ret; | ||
445 | } | ||
446 | |||
447 | iwl_write_prph(priv, IWL50_SCD_TXFACT, 0); | ||
448 | iwl_release_nic_access(priv); | ||
449 | spin_unlock_irqrestore(&priv->lock, flags); | ||
450 | |||
451 | return 0; | ||
452 | } | ||
453 | |||
433 | static struct iwl_hcmd_ops iwl5000_hcmd = { | 454 | static struct iwl_hcmd_ops iwl5000_hcmd = { |
434 | }; | 455 | }; |
435 | 456 | ||
@@ -446,6 +467,7 @@ static struct iwl_lib_ops iwl5000_lib = { | |||
446 | .alloc_shared_mem = iwl5000_alloc_shared_mem, | 467 | .alloc_shared_mem = iwl5000_alloc_shared_mem, |
447 | .free_shared_mem = iwl5000_free_shared_mem, | 468 | .free_shared_mem = iwl5000_free_shared_mem, |
448 | .txq_update_byte_cnt_tbl = iwl5000_txq_update_byte_cnt_tbl, | 469 | .txq_update_byte_cnt_tbl = iwl5000_txq_update_byte_cnt_tbl, |
470 | .disable_tx_fifo = iwl5000_disable_tx_fifo, | ||
449 | .apm_ops = { | 471 | .apm_ops = { |
450 | .init = iwl5000_apm_init, | 472 | .init = iwl5000_apm_init, |
451 | .config = iwl5000_nic_config, | 473 | .config = iwl5000_nic_config, |