linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Luca Coelho <luca@coelho.fi>
To: kvalo@codeaurora.org
Cc: linux-wireless@vger.kernel.org
Subject: [PATCH v5.7 3/8] iwlwifi: pcie: indicate correct RB size to device
Date: Fri,  3 Apr 2020 11:29:50 +0300	[thread overview]
Message-ID: <iwlwifi.20200403112332.e95201f80f1e.I0985c55223decf70182b9ef1d8edf4179f537853@changeid> (raw)
In-Reply-To: <20200403082955.1126339-1-luca@coelho.fi>

From: Johannes Berg <johannes.berg@intel.com>

In the context info, we need to indicate the correct RB size
to the device so that it will not think we have 4k when we
only use 2k. This seems to not have caused any issues right
now, likely because the hardware no longer supports putting
multiple entries into a single RB, and practically all of
the entries should be smaller than 2k.

Nevertheless, it's a bug, and we must advertise the right
size to the device.

Note that right now we can only tell it 2k vs. 4k, so for
the cases where we have more, still use 4k. This needs to
be fixed by the firmware first.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Fixes: cfdc20efebdc ("iwlwifi: pcie: use partial pages if applicable")
Cc: stable@vger.kernel.org # v5.6
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 .../intel/iwlwifi/pcie/ctxt-info-gen3.c        | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
index 01f248ba8fec..9d5b1e51b50d 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
@@ -129,6 +129,18 @@ int iwl_pcie_ctxt_info_gen3_init(struct iwl_trans *trans,
 	int cmdq_size = max_t(u32, IWL_CMD_QUEUE_SIZE,
 			      trans->cfg->min_txq_size);
 
+	switch (trans_pcie->rx_buf_size) {
+	case IWL_AMSDU_DEF:
+		return -EINVAL;
+	case IWL_AMSDU_2K:
+		break;
+	case IWL_AMSDU_4K:
+	case IWL_AMSDU_8K:
+	case IWL_AMSDU_12K:
+		control_flags |= IWL_PRPH_SCRATCH_RB_SIZE_4K;
+		break;
+	}
+
 	/* Allocate prph scratch */
 	prph_scratch = dma_alloc_coherent(trans->dev, sizeof(*prph_scratch),
 					  &trans_pcie->prph_scratch_dma_addr,
@@ -143,10 +155,8 @@ int iwl_pcie_ctxt_info_gen3_init(struct iwl_trans *trans,
 		cpu_to_le16((u16)iwl_read32(trans, CSR_HW_REV));
 	prph_sc_ctrl->version.size = cpu_to_le16(sizeof(*prph_scratch) / 4);
 
-	control_flags = IWL_PRPH_SCRATCH_RB_SIZE_4K |
-			IWL_PRPH_SCRATCH_MTR_MODE |
-			(IWL_PRPH_MTR_FORMAT_256B &
-			 IWL_PRPH_SCRATCH_MTR_FORMAT);
+	control_flags |= IWL_PRPH_SCRATCH_MTR_MODE;
+	control_flags |= IWL_PRPH_MTR_FORMAT_256B & IWL_PRPH_SCRATCH_MTR_FORMAT;
 
 	/* initialize RX default queue */
 	prph_sc_ctrl->rbd_cfg.free_rbd_addr =
-- 
2.25.1


  parent reply	other threads:[~2020-04-03  8:30 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-03  8:29 [PATCH v5.7 0/8] iwlwifi: fixes intended for v5.7 2020-04-03 Luca Coelho
2020-04-03  8:29 ` [PATCH v5.7 1/8] iwlwifi: pcie: actually release queue memory in TVQM Luca Coelho
2020-04-03  8:29 ` [PATCH v5.7 2/8] iwlwifi: mvm: beacon statistics shouldn't go backwards Luca Coelho
2020-04-03  8:29 ` Luca Coelho [this message]
2020-04-03  8:29 ` [PATCH v5.7 4/8] iwlwifi: mvm: limit maximum queue appropriately Luca Coelho
2020-04-03 14:38   ` Mark Asselstine
2020-04-03 17:10     ` Mark Asselstine
2020-04-04 23:17       ` Mark Asselstine
2020-04-14 11:29       ` Johannes Berg
2020-04-17  6:33         ` Luca Coelho
2020-04-03  8:29 ` [PATCH v5.7 5/8] iwlwifi: mvm: Do not declare support for ACK Enabled Aggregation Luca Coelho
2020-04-03  8:29 ` [PATCH v5.7 6/8] iwlwifi: msix: limit max RX queues for 9000 family Luca Coelho
2020-04-17  6:36   ` Luca Coelho
2020-04-03  8:29 ` [PATCH v5.7 7/8] iwlwifi: mvm: fix inactive TID removal return value usage Luca Coelho
2020-04-03 14:46   ` Mark Asselstine
2020-04-03 18:58     ` Johannes Berg
2020-04-03 19:08       ` Luca Coelho
2020-04-03 21:26         ` Mark Asselstine
2020-04-03  8:29 ` [PATCH v5.7 8/8] iwlwifi: mvm: don't call iwl_mvm_free_inactive_queue() under RCU Luca Coelho
2020-04-03 14:28   ` Mark Asselstine
2020-04-17  6:42     ` Luca Coelho
2020-04-17  7:52     ` Johannes Berg
2020-06-15 14:10   ` Kalle Valo
2020-06-23  8:25   ` Kalle Valo

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=iwlwifi.20200403112332.e95201f80f1e.I0985c55223decf70182b9ef1d8edf4179f537853@changeid \
    --to=luca@coelho.fi \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).