From: Luca Coelho <luca@coelho.fi>
To: kvalo@codeaurora.org
Cc: linux-wireless@vger.kernel.org,
Sara Sharon <sara.sharon@intel.com>,
Luca Coelho <luciano.coelho@intel.com>
Subject: [PATCH 02/17] iwlwifi: mvm: cleanup references to aggregation count limit
Date: Sun, 29 Oct 2017 14:28:01 +0200 [thread overview]
Message-ID: <20171029122816.8802-3-luca@coelho.fi> (raw)
In-Reply-To: <20171029122816.8802-1-luca@coelho.fi>
From: Sara Sharon <sara.sharon@intel.com>
Currently the code is mixing defines and is inconsistent.
When enabling a queue, we usually configure the scheduler
with IWL_FRAME_LIMIT - 64.
When sending to firmware the rate scaling, we limit aggregation
to LINK_QUAL_AGG_FRAME_LIMIT_DEF - 63, due to a scheduler bug.
Given that, clean up the following:
- Fix a stray queue enablement with LINK_QUAL_AGG_FRAME_LIMIT_DEF.
- Change the comparison that tests if queue needs to be reconfigured
to be compared directly to how it was configured.
This also saves the redundant round down of the buffer size just
for the sake of comparing it, making the code more readable.
- Better document gen2 logic
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
index 23787cc9c89e..c8febde2dffb 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
@@ -644,8 +644,7 @@ int iwl_mvm_scd_queue_redirect(struct iwl_mvm *mvm, int queue, int tid,
/* Redirect to lower AC */
iwl_mvm_reconfig_scd(mvm, queue, iwl_mvm_ac_to_tx_fifo[ac],
- cmd.sta_id, tid, LINK_QUAL_AGG_FRAME_LIMIT_DEF,
- ssn);
+ cmd.sta_id, tid, IWL_FRAME_LIMIT, ssn);
/* Update AC marking of the queue */
spin_lock_bh(&mvm->queue_info_lock);
@@ -2544,12 +2543,6 @@ int iwl_mvm_sta_tx_agg_oper(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
BUILD_BUG_ON((sizeof(mvmsta->agg_tids) * BITS_PER_BYTE)
!= IWL_MAX_TID_COUNT);
- if (!mvm->trans->cfg->gen2)
- buf_size = min_t(int, buf_size, LINK_QUAL_AGG_FRAME_LIMIT_DEF);
- else
- buf_size = min_t(int, buf_size,
- LINK_QUAL_AGG_FRAME_LIMIT_GEN2_DEF);
-
spin_lock_bh(&mvmsta->lock);
ssn = tid_data->ssn;
queue = tid_data->txq_id;
@@ -2561,10 +2554,17 @@ int iwl_mvm_sta_tx_agg_oper(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
if (iwl_mvm_has_new_tx_api(mvm)) {
/*
- * If no queue iwl_mvm_sta_tx_agg_start() would have failed so
- * no need to check queue's status
+ * If there is no queue for this tid, iwl_mvm_sta_tx_agg_start()
+ * would have failed, so if we are here there is no need to
+ * allocate a queue.
+ * However, if aggregation size is different than the default
+ * size, the scheduler should be reconfigured.
+ * We cannot do this with the new TX API, so return unsupported
+ * for now, until it will be offloaded to firmware..
+ * Note that if SCD default value changes - this condition
+ * should be updated as well.
*/
- if (buf_size < mvmsta->max_agg_bufsize)
+ if (buf_size < IWL_FRAME_LIMIT)
return -ENOTSUPP;
ret = iwl_mvm_sta_tx_agg(mvm, sta, tid, queue, true);
@@ -2587,7 +2587,7 @@ int iwl_mvm_sta_tx_agg_oper(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
* Only reconfig the SCD for the queue if the window size has
* changed from current (become smaller)
*/
- if (!alloc_queue && buf_size < mvmsta->max_agg_bufsize) {
+ if (!alloc_queue && buf_size < IWL_FRAME_LIMIT) {
/*
* If reconfiguring an existing queue, it first must be
* drained
--
2.14.2
next prev parent reply other threads:[~2017-10-29 12:28 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-29 12:27 [PATCH 00/17] iwlwifi: updates intended for v4.15 2017-10-29 Luca Coelho
2017-10-29 12:28 ` [PATCH 01/17] iwlwifi: mvm: use RS macro instead of duplicating the code Luca Coelho
2017-10-29 12:28 ` Luca Coelho [this message]
2017-10-29 12:28 ` [PATCH 03/17] iwlwifi: mvm: reset seq num after restart Luca Coelho
2017-10-29 12:28 ` [PATCH 04/17] iwlwifi: mvm: rs: remove the ANT C from the toogle antenna logic Luca Coelho
2017-10-29 12:28 ` [PATCH 05/17] iwlwifi: mvm: improve latency when there is a reorder timeout Luca Coelho
2017-10-29 12:28 ` [PATCH 06/17] iwlwifi: remove dead code for internal devices only Luca Coelho
2017-10-29 12:28 ` [PATCH 07/17] iwlwifi: remove host assisted paging Luca Coelho
2017-10-29 12:28 ` [PATCH 08/17] iwlwifi: Add more call-sites for pcie reg dumper Luca Coelho
2017-10-29 12:28 ` [PATCH 09/17] iwlwifi: fix multi queue notification for a000 devices Luca Coelho
2017-10-29 12:28 ` [PATCH 10/17] iwlwifi: mvm: refactor iwl_mvm_flush_no_vif Luca Coelho
2017-10-29 12:28 ` [PATCH 11/17] iwlwifi: mvm: add missing implementation of flush for a000 devices Luca Coelho
2017-10-29 12:28 ` [PATCH 12/17] iwlwifi: mvm: hold mutex when flushing in iwl_mvm_flush_no_vif() Luca Coelho
2017-10-29 12:28 ` [PATCH 13/17] iwlwifi: mvm: Convert timers to use timer_setup() Luca Coelho
2017-11-06 19:45 ` Kees Cook
2017-11-06 19:48 ` Luca Coelho
2017-11-06 20:40 ` Kees Cook
2017-10-29 12:28 ` [PATCH 14/17] iwlwifi: drop RX frames during hardware restart Luca Coelho
2017-10-29 12:28 ` [PATCH 15/17] iwlwifi: add new cards for 8260 series Luca Coelho
2017-10-29 12:28 ` [PATCH 16/17] iwlwifi: add new cards for 8265 series Luca Coelho
2017-10-29 12:28 ` [PATCH 17/17] iwlwifi: add new cards for a000 series Luca Coelho
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171029122816.8802-3-luca@coelho.fi \
--to=luca@coelho.fi \
--cc=kvalo@codeaurora.org \
--cc=linux-wireless@vger.kernel.org \
--cc=luciano.coelho@intel.com \
--cc=sara.sharon@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox