Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp255154ybz; Fri, 17 Apr 2020 00:10:22 -0700 (PDT) X-Google-Smtp-Source: APiQypJDHDXJHOHOZlGq+jmtgsGTTy3gwymz+Jyut7Inz4cz5JCTUVfW5jUuilKenkt+e9vCRR5L X-Received: by 2002:a17:906:6944:: with SMTP id c4mr1706990ejs.96.1587107422322; Fri, 17 Apr 2020 00:10:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587107422; cv=none; d=google.com; s=arc-20160816; b=GCE5PBSpoqW8cOcCaFKC3xIVU2Llo4J5nlsMZwrHNbhEiZAduFZ4XxEdY7LDQaFrbD miKjgmDzD6DwDkJD9/IRqLSpb4K6Bb3DQdwBXUVsbXTaYqu+rW1s5vICvDgYls5nsBCv YB8BKdCW5sfhyHp26i+FA4XpaRW3astjFdI8E4Z85mvO2wlwwxMHkr+4Yj0JtmxeVNSA 6I30Xo69r3p6/YZ9ytH//ScofWQsEBKBg0ewuEzfMM/sIo1g3vY/UboQWhhIV3RhA4Fl VRirhUOs8t+fG1LW6KjGTy5OjOhM/PtErshbT7Haunx+dOEtloI+GzzCxC4IZoO+xoE8 urjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:subject:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:cc:to:from; bh=fLV4TFjOgAhX0bTjC9w87uKxVndyUYBPGitzqATVvZo=; b=JcvsYVJxsPw5rOxGQwCBKlTQ68uQjDVJLcCG0w+A/34dgiNWkSq1Y7GL3kj4VYR4Y4 m3MZSSA+21/wSnYyYnIu7Bjb7f/orecAs7v1MltaRyoeOjw0HeA4rI/cEmRnxzmg+laj Pw4m5xKyPJxOfq6HHghAQVowRqBPQfTK2+EaCLSA9SsdwdASOdhUQA61E2SKaskiImxr R/cbVDet3/LLBMqllJTwHBeFA6emCEIu3NPNsLzk2yt3MMl6POK8hjKnVRkVM+V6exov CQgLxa3bwGb3Cxo9ZJn+MZk5HaJL5iLmGDH8PGqDXjEe7w+zK8t08yVP52U1IJTp8s3F md5Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bs1si5451151edb.200.2020.04.17.00.09.58; Fri, 17 Apr 2020 00:10:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728750AbgDQHI1 (ORCPT + 99 others); Fri, 17 Apr 2020 03:08:27 -0400 Received: from paleale.coelho.fi ([176.9.41.70]:56382 "EHLO farmhouse.coelho.fi" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728738AbgDQHI1 (ORCPT ); Fri, 17 Apr 2020 03:08:27 -0400 Received: from 91-156-6-193.elisa-laajakaista.fi ([91.156.6.193] helo=redipa.ger.corp.intel.com) by farmhouse.coelho.fi with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1jPL6u-000KNJ-Tb; Fri, 17 Apr 2020 10:08:25 +0300 From: Luca Coelho To: kvalo@codeaurora.org Cc: linux-wireless@vger.kernel.org Date: Fri, 17 Apr 2020 10:08:11 +0300 Message-Id: X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200417070814.2044774-1-luca@coelho.fi> References: <20200417070814.2044774-1-luca@coelho.fi> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on farmhouse.coelho.fi X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00, TVD_RCVD_IP autolearn=ham autolearn_force=no version=3.4.4 Subject: [PATCH v2 v5.7 3/6] iwlwifi: pcie: indicate correct RB size to device Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Johannes Berg 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 Fixes: cfdc20efebdc ("iwlwifi: pcie: use partial pages if applicable") Cc: stable@vger.kernel.org # v5.6 Signed-off-by: Luca Coelho --- .../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