diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/ops.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/ops.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/ops.c b/drivers/net/wireless/iwlwifi/mvm/ops.c index 610dbcb0dc27..87f278cc9b2c 100644 --- a/drivers/net/wireless/iwlwifi/mvm/ops.c +++ b/drivers/net/wireless/iwlwifi/mvm/ops.c | |||
@@ -6,6 +6,7 @@ | |||
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * Copyright(c) 2013 - 2014 Intel Mobile Communications GmbH | ||
9 | * | 10 | * |
10 | * This program is free software; you can redistribute it and/or modify | 11 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 12 | * it under the terms of version 2 of the GNU General Public License as |
@@ -31,6 +32,7 @@ | |||
31 | * BSD LICENSE | 32 | * BSD LICENSE |
32 | * | 33 | * |
33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. | 34 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
35 | * Copyright(c) 2013 - 2014 Intel Mobile Communications GmbH | ||
34 | * All rights reserved. | 36 | * All rights reserved. |
35 | * | 37 | * |
36 | * Redistribution and use in source and binary forms, with or without | 38 | * Redistribution and use in source and binary forms, with or without |
@@ -415,6 +417,7 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, | |||
415 | mvm->first_agg_queue = 12; | 417 | mvm->first_agg_queue = 12; |
416 | } | 418 | } |
417 | mvm->sf_state = SF_UNINIT; | 419 | mvm->sf_state = SF_UNINIT; |
420 | mvm->low_latency_agg_frame_limit = 1; | ||
418 | 421 | ||
419 | mutex_init(&mvm->mutex); | 422 | mutex_init(&mvm->mutex); |
420 | mutex_init(&mvm->d0i3_suspend_mutex); | 423 | mutex_init(&mvm->d0i3_suspend_mutex); |
@@ -456,7 +459,7 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, | |||
456 | trans_cfg.command_names = iwl_mvm_cmd_strings; | 459 | trans_cfg.command_names = iwl_mvm_cmd_strings; |
457 | 460 | ||
458 | trans_cfg.cmd_queue = IWL_MVM_CMD_QUEUE; | 461 | trans_cfg.cmd_queue = IWL_MVM_CMD_QUEUE; |
459 | trans_cfg.cmd_fifo = IWL_MVM_CMD_FIFO; | 462 | trans_cfg.cmd_fifo = IWL_MVM_TX_FIFO_CMD; |
460 | 463 | ||
461 | snprintf(mvm->hw->wiphy->fw_version, | 464 | snprintf(mvm->hw->wiphy->fw_version, |
462 | sizeof(mvm->hw->wiphy->fw_version), | 465 | sizeof(mvm->hw->wiphy->fw_version), |
@@ -494,7 +497,7 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, | |||
494 | goto out_free; | 497 | goto out_free; |
495 | 498 | ||
496 | /* | 499 | /* |
497 | * Even if nvm exists in the nvm_file driver should read agin the nvm | 500 | * Even if nvm exists in the nvm_file driver should read again the nvm |
498 | * from the nic because there might be entries that exist in the OTP | 501 | * from the nic because there might be entries that exist in the OTP |
499 | * and not in the file. | 502 | * and not in the file. |
500 | * for nics with no_power_up_nic_in_init: rely completley on nvm_file | 503 | * for nics with no_power_up_nic_in_init: rely completley on nvm_file |
@@ -700,14 +703,13 @@ static void iwl_mvm_stop_sw_queue(struct iwl_op_mode *op_mode, int queue) | |||
700 | if (WARN_ON_ONCE(mq == IWL_INVALID_MAC80211_QUEUE)) | 703 | if (WARN_ON_ONCE(mq == IWL_INVALID_MAC80211_QUEUE)) |
701 | return; | 704 | return; |
702 | 705 | ||
703 | if (atomic_inc_return(&mvm->queue_stop_count[mq]) > 1) { | 706 | if (atomic_inc_return(&mvm->mac80211_queue_stop_count[mq]) > 1) { |
704 | IWL_DEBUG_TX_QUEUES(mvm, | 707 | IWL_DEBUG_TX_QUEUES(mvm, |
705 | "queue %d (mac80211 %d) already stopped\n", | 708 | "queue %d (mac80211 %d) already stopped\n", |
706 | queue, mq); | 709 | queue, mq); |
707 | return; | 710 | return; |
708 | } | 711 | } |
709 | 712 | ||
710 | set_bit(mq, &mvm->transport_queue_stop); | ||
711 | ieee80211_stop_queue(mvm->hw, mq); | 713 | ieee80211_stop_queue(mvm->hw, mq); |
712 | } | 714 | } |
713 | 715 | ||
@@ -719,15 +721,13 @@ static void iwl_mvm_wake_sw_queue(struct iwl_op_mode *op_mode, int queue) | |||
719 | if (WARN_ON_ONCE(mq == IWL_INVALID_MAC80211_QUEUE)) | 721 | if (WARN_ON_ONCE(mq == IWL_INVALID_MAC80211_QUEUE)) |
720 | return; | 722 | return; |
721 | 723 | ||
722 | if (atomic_dec_return(&mvm->queue_stop_count[mq]) > 0) { | 724 | if (atomic_dec_return(&mvm->mac80211_queue_stop_count[mq]) > 0) { |
723 | IWL_DEBUG_TX_QUEUES(mvm, | 725 | IWL_DEBUG_TX_QUEUES(mvm, |
724 | "queue %d (mac80211 %d) already awake\n", | 726 | "queue %d (mac80211 %d) still stopped\n", |
725 | queue, mq); | 727 | queue, mq); |
726 | return; | 728 | return; |
727 | } | 729 | } |
728 | 730 | ||
729 | clear_bit(mq, &mvm->transport_queue_stop); | ||
730 | |||
731 | ieee80211_wake_queue(mvm->hw, mq); | 731 | ieee80211_wake_queue(mvm->hw, mq); |
732 | } | 732 | } |
733 | 733 | ||