upstream fixes for SDIO speed issues, certain mSD cards on Raspberry Pi 4, older brcm sdio WiFi

This commit is contained in:
Peter Robinson 2020-09-12 13:23:31 +01:00
parent 11aa761191
commit 323978eed5
6 changed files with 641 additions and 4 deletions

View File

@ -98,4 +98,3 @@ index 4bc187a4eacdb..2b378fa06d19e 100644
pcie_ep@14160000 {
--
2.26.2

View File

@ -45,4 +45,3 @@ index 9bc52fdb393c8..ebaac57853138 100644
regulator-max-microvolt = <1320000>;
--
2.26.2

View File

@ -0,0 +1,372 @@
From patchwork Sun Aug 30 19:14:37 2020
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Dmitry Osipenko <digetx@gmail.com>
X-Patchwork-Id: 11745283
X-Patchwork-Delegate: kvalo@adurom.com
Return-Path: <SRS0=8jSp=CI=vger.kernel.org=linux-wireless-owner@kernel.org>
Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
[172.30.200.123])
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 02F8E722
for <patchwork-linux-wireless@patchwork.kernel.org>;
Sun, 30 Aug 2020 19:15:31 +0000 (UTC)
Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
by mail.kernel.org (Postfix) with ESMTP id D325020757
for <patchwork-linux-wireless@patchwork.kernel.org>;
Sun, 30 Aug 2020 19:15:30 +0000 (UTC)
Authentication-Results: mail.kernel.org;
dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
header.b="XOye4I75"
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1726492AbgH3TPQ (ORCPT
<rfc822;patchwork-linux-wireless@patchwork.kernel.org>);
Sun, 30 Aug 2020 15:15:16 -0400
Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36382 "EHLO
lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1726178AbgH3TPH (ORCPT
<rfc822;linux-wireless@vger.kernel.org>);
Sun, 30 Aug 2020 15:15:07 -0400
Received: from mail-lf1-x143.google.com (mail-lf1-x143.google.com
[IPv6:2a00:1450:4864:20::143])
by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7B885C061575;
Sun, 30 Aug 2020 12:15:06 -0700 (PDT)
Received: by mail-lf1-x143.google.com with SMTP id y2so951774lfy.10;
Sun, 30 Aug 2020 12:15:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20161025;
h=from:to:cc:subject:date:message-id:in-reply-to:references
:mime-version:content-transfer-encoding;
bh=hzL71nqb/6BZxUitP92QceAo8sdBLgT31i3ar+cwVk4=;
b=XOye4I75cIfJ4wkN4RaeluIx+/YAJsxlMpAnP498/xZTl1BTh8eSlfQif5JouocnSh
14l3fBQ+A+yleGcThqMh1IaJriMgqMbIE00NyGf7Vle0M2E7WLVo9PlrLCn9vtgowgLt
Lr4Mu7V/lWdptapsH5tCqMvP1g5ir1mEsMMokwajMTno6GR0SBVHl/7ypVl5YA3p4HoF
fFymnbrHgHbTrzQ/PoyTHfJ+z2cr7zsyoWJ2DNueWkIQjuS/8ueDks4amJJKs+KgB+yp
+XRynXf/t0fyF8u1wenwv3sbeaCt3sIPLNePGmjRYeaXo5pTqEUgNHd6MH2PGfsDTuU0
5MTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20161025;
h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
:references:mime-version:content-transfer-encoding;
bh=hzL71nqb/6BZxUitP92QceAo8sdBLgT31i3ar+cwVk4=;
b=j8AOqXUrl/hkYHnFrnNd2FRUeIHMr2dpaVrKcJBXuHajNJC8b3YN2G9F2K+lkC+ZxC
w1B7sH1DNxY8u4wIuHketyNteuSdFH9vC+VZhu5DY5Bz0snrsLK43fS/8InrBWMd9/OZ
3bt86DxIWv9szZELmV5sCnwAh5U9CKk95vI5k+mKJLfv8mmqgyJ2rbPBZO0xNWbyRMp3
Bu+B+ze0mY9xjnOSwXK8dUvlTpRNr9zOeXmzjtWsb3xFgFN1PZ5wiD3bQ5m7XoYqQEXb
Ah+zOiBL3P2mZUM54OyHP+HolPq8/V0zKDuw06na41SW1cJNuZUIG6W1m/x75S6hJO4D
2lJg==
X-Gm-Message-State: AOAM533MF2BJ56mP1JcVq45SsbuqEwSox1UmefQdmOHheDJSUx5w2LUC
ca86fl0ZnPg4zrXg3bFav48=
X-Google-Smtp-Source:
ABdhPJx6cYCkNqBsgfZJn1WvrwBAiI7kWYd9Yi9pQ5L2953d0O0W457Bcur/fqHaFOJeiOQAPpwzwg==
X-Received: by 2002:a19:f510:: with SMTP id j16mr337056lfb.169.1598814904892;
Sun, 30 Aug 2020 12:15:04 -0700 (PDT)
Received: from localhost.localdomain (109-252-170-211.dynamic.spd-mgts.ru.
[109.252.170.211])
by smtp.gmail.com with ESMTPSA id
e23sm1409709lfj.80.2020.08.30.12.15.04
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Sun, 30 Aug 2020 12:15:04 -0700 (PDT)
From: Dmitry Osipenko <digetx@gmail.com>
To: Arend van Spriel <arend.vanspriel@broadcom.com>,
Franky Lin <franky.lin@broadcom.com>,
Hante Meuleman <hante.meuleman@broadcom.com>,
Chi-Hsien Lin <chi-hsien.lin@cypress.com>,
Wright Feng <wright.feng@cypress.com>,
Kalle Valo <kvalo@codeaurora.org>
Cc: linux-wireless@vger.kernel.org,
brcm80211-dev-list.pdl@broadcom.com,
brcm80211-dev-list@cypress.com, netdev@vger.kernel.org,
linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v3 1/3] brcmfmac: increase F2 watermark for BCM4329
Date: Sun, 30 Aug 2020 22:14:37 +0300
Message-Id: <20200830191439.10017-2-digetx@gmail.com>
X-Mailer: git-send-email 2.27.0
In-Reply-To: <20200830191439.10017-1-digetx@gmail.com>
References: <20200830191439.10017-1-digetx@gmail.com>
MIME-Version: 1.0
Sender: linux-wireless-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-wireless.vger.kernel.org>
X-Mailing-List: linux-wireless@vger.kernel.org
This patch fixes SDHCI CRC errors during of RX throughput testing on
BCM4329 chip if SDIO BUS is clocked above 25MHz. In particular the
checksum problem is observed on NVIDIA Tegra20 SoCs. The good watermark
value is borrowed from downstream BCMDHD driver and it's matching to the
value that is already used for the BCM4339 chip, hence let's re-use it
for BCM4329.
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
index d1b96bad2718..b16944a898f9 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -4278,6 +4278,7 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err,
brcmf_sdiod_writeb(sdiod, SBSDIO_FUNC1_MESBUSYCTRL,
CY_43012_MESBUSYCTRL, &err);
break;
+ case SDIO_DEVICE_ID_BROADCOM_4329:
case SDIO_DEVICE_ID_BROADCOM_4339:
brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes for 4339\n",
CY_4339_F2_WATERMARK);
From patchwork Sun Aug 30 19:14:38 2020
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Dmitry Osipenko <digetx@gmail.com>
X-Patchwork-Id: 11745287
X-Patchwork-Delegate: kvalo@adurom.com
Return-Path: <SRS0=8jSp=CI=vger.kernel.org=linux-wireless-owner@kernel.org>
Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
[172.30.200.123])
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8D83D722
for <patchwork-linux-wireless@patchwork.kernel.org>;
Sun, 30 Aug 2020 19:18:07 +0000 (UTC)
Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
by mail.kernel.org (Postfix) with ESMTP id 74984206F0
for <patchwork-linux-wireless@patchwork.kernel.org>;
Sun, 30 Aug 2020 19:18:07 +0000 (UTC)
Authentication-Results: mail.kernel.org;
dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
header.b="nVMf6eR/"
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1727940AbgH3TRr (ORCPT
<rfc822;patchwork-linux-wireless@patchwork.kernel.org>);
Sun, 30 Aug 2020 15:17:47 -0400
Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36384 "EHLO
lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1726350AbgH3TPI (ORCPT
<rfc822;linux-wireless@vger.kernel.org>);
Sun, 30 Aug 2020 15:15:08 -0400
Received: from mail-lf1-x141.google.com (mail-lf1-x141.google.com
[IPv6:2a00:1450:4864:20::141])
by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6E897C061236;
Sun, 30 Aug 2020 12:15:07 -0700 (PDT)
Received: by mail-lf1-x141.google.com with SMTP id j15so2315573lfg.7;
Sun, 30 Aug 2020 12:15:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20161025;
h=from:to:cc:subject:date:message-id:in-reply-to:references
:mime-version:content-transfer-encoding;
bh=85fBH067dHvKQNq6ek+W6lpUInMb+ZStwZLTCqTuQ3g=;
b=nVMf6eR/tzJR9bU6YV5ktJWXhIRVVdwtYx5dR5sOF9HNUZJR1lw0R2eZ5yKGcbs3Ij
UCrio8mvGQhynAaPTXjMhm57mDu723ApUr0TiZXjmUoJrFQVIFl6VYZeCDu3dXXFGUw0
XasSLQZ6ak9UxEk4Xen3Q2U/Zr/P+/jB0QY1vR+MRsiIFzZXwQRQpM9IJzj4yIYopB5X
9XhWNhf2QWh9gH61eTumnKsNzptLg/c8atZt15ncup5uu1C2f/rwt/4dav6jO2dmbGAs
p9NeFTAyGXpQxrzCtfDUCTXvmsS6UEY3o15iWQaZopVbo0ypnts/6Vg8upR1VNQVxnM7
E7Zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20161025;
h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
:references:mime-version:content-transfer-encoding;
bh=85fBH067dHvKQNq6ek+W6lpUInMb+ZStwZLTCqTuQ3g=;
b=WwmOJDBXyk7Su9lj9yFvo0X22q549x/nNNUuUYCmUf8OjvUL6LwAkcQ7l+F6X41BtP
n1fYqGH6S7w68U3pIL2yyzR7YOl1NDYvZp3LRNGc6Y0dljwZbMMrbTXkdnimwrVneXLQ
CLjOSIYQkJgtWX9ZG/Uaq+hnaY7BX9EMntr7mXYbD+O8Xmr8/Zb/jUJSKiKIxAVW48JM
z2B7XRLEfmd8ELQoMhqtCw/23wbQ6tnT5tdtt+ngDJWh7aXnUaVgO8i/tQf0Th3JXBdj
dB5/P8FDMKrLNwxVYaaHyo/vs86AeUzj+J7Vu+jSQYbWobKSsN0h9FsVwsoEzud1cPlw
s9Tg==
X-Gm-Message-State: AOAM531EgBgv8kHi8OlvBWwXAThNCUT/1OO1iu8iU00rAeqI5Tb40pod
ZyIrbVjNZJe6MgLKqLMeZrw=
X-Google-Smtp-Source:
ABdhPJzI4lUuYNLpOO2XLO2AmkS9fShcfxSPyVOk6XVuyEYlvT5tmtBLoLVIApzOMF3Luuy0a5TW7Q==
X-Received: by 2002:ac2:5e2c:: with SMTP id o12mr3918764lfg.71.1598814905875;
Sun, 30 Aug 2020 12:15:05 -0700 (PDT)
Received: from localhost.localdomain (109-252-170-211.dynamic.spd-mgts.ru.
[109.252.170.211])
by smtp.gmail.com with ESMTPSA id
e23sm1409709lfj.80.2020.08.30.12.15.04
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Sun, 30 Aug 2020 12:15:05 -0700 (PDT)
From: Dmitry Osipenko <digetx@gmail.com>
To: Arend van Spriel <arend.vanspriel@broadcom.com>,
Franky Lin <franky.lin@broadcom.com>,
Hante Meuleman <hante.meuleman@broadcom.com>,
Chi-Hsien Lin <chi-hsien.lin@cypress.com>,
Wright Feng <wright.feng@cypress.com>,
Kalle Valo <kvalo@codeaurora.org>
Cc: linux-wireless@vger.kernel.org,
brcm80211-dev-list.pdl@broadcom.com,
brcm80211-dev-list@cypress.com, netdev@vger.kernel.org,
linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v3 2/3] brcmfmac: drop chip id from debug messages
Date: Sun, 30 Aug 2020 22:14:38 +0300
Message-Id: <20200830191439.10017-3-digetx@gmail.com>
X-Mailer: git-send-email 2.27.0
In-Reply-To: <20200830191439.10017-1-digetx@gmail.com>
References: <20200830191439.10017-1-digetx@gmail.com>
MIME-Version: 1.0
Sender: linux-wireless-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-wireless.vger.kernel.org>
X-Mailing-List: linux-wireless@vger.kernel.org
The chip ID was already printed out at the time when debug message about
the changed F2 watermark is printed, hence let's drop the unnecessary part
of the debug messages. This cleans code a tad and also allows to re-use
the F2 watermark debug messages by multiple chips.
Suggested-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
index b16944a898f9..d4989e0cd7be 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -4280,7 +4280,7 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err,
break;
case SDIO_DEVICE_ID_BROADCOM_4329:
case SDIO_DEVICE_ID_BROADCOM_4339:
- brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes for 4339\n",
+ brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes\n",
CY_4339_F2_WATERMARK);
brcmf_sdiod_writeb(sdiod, SBSDIO_WATERMARK,
CY_4339_F2_WATERMARK, &err);
@@ -4293,7 +4293,7 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err,
CY_4339_MESBUSYCTRL, &err);
break;
case SDIO_DEVICE_ID_BROADCOM_43455:
- brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes for 43455\n",
+ brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes\n",
CY_43455_F2_WATERMARK);
brcmf_sdiod_writeb(sdiod, SBSDIO_WATERMARK,
CY_43455_F2_WATERMARK, &err);
From patchwork Sun Aug 30 19:14:39 2020
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Dmitry Osipenko <digetx@gmail.com>
X-Patchwork-Id: 11745291
X-Patchwork-Delegate: kvalo@adurom.com
Return-Path: <SRS0=8jSp=CI=vger.kernel.org=linux-wireless-owner@kernel.org>
Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
[172.30.200.123])
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BC61D722
for <patchwork-linux-wireless@patchwork.kernel.org>;
Sun, 30 Aug 2020 19:18:14 +0000 (UTC)
Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
by mail.kernel.org (Postfix) with ESMTP id A440D20757
for <patchwork-linux-wireless@patchwork.kernel.org>;
Sun, 30 Aug 2020 19:18:14 +0000 (UTC)
Authentication-Results: mail.kernel.org;
dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
header.b="ADD6Kq4a"
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1727902AbgH3TRq (ORCPT
<rfc822;patchwork-linux-wireless@patchwork.kernel.org>);
Sun, 30 Aug 2020 15:17:46 -0400
Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36392 "EHLO
lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1726380AbgH3TPJ (ORCPT
<rfc822;linux-wireless@vger.kernel.org>);
Sun, 30 Aug 2020 15:15:09 -0400
Received: from mail-lf1-x142.google.com (mail-lf1-x142.google.com
[IPv6:2a00:1450:4864:20::142])
by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6439FC061239;
Sun, 30 Aug 2020 12:15:08 -0700 (PDT)
Received: by mail-lf1-x142.google.com with SMTP id j15so2315593lfg.7;
Sun, 30 Aug 2020 12:15:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20161025;
h=from:to:cc:subject:date:message-id:in-reply-to:references
:mime-version:content-transfer-encoding;
bh=WKk6KWPNkMHUCww/FbErLxUYYQtEUh3n/PTtmJB/IIQ=;
b=ADD6Kq4arZJOO7Z+X6dlbNFUKa2MGhu79OcOljRz3WAcc/N3H23SdadMXUusZl7Re7
mavcADGOOGjw4YPLh4Bd3AHe3Wf3GrR9xszVDjKeNWBVzpgfPFpbu+G5v/ZCc1IocLez
Tml2HhWF++QwC8/gg0QSMJMYiVTHYrz7Mfq31KkwcMzdX/uXIwpZBuRtIx3Vf6OfTE4I
gSfTcZ6mcSbFla2yJur9lviMamt/2uiHZG0/UTLDqfDQ0fXciUFWXW/wU1YYVwLxynkp
32H0oWWSihfW4LFt7gufNGgSOCh6YMorVxHCY3+a2JagEhMaXuLn853leokAN8VD3nsO
IjnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20161025;
h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
:references:mime-version:content-transfer-encoding;
bh=WKk6KWPNkMHUCww/FbErLxUYYQtEUh3n/PTtmJB/IIQ=;
b=P70ZXffe7IiriynRgLFOrgujg3zCp+qiQV2DtraBUnPXzHbxNDRH7MnRX8RyYwJZs7
MDwZwyOsryxbtpv/1lQfakB0pFKDzMAqpRhxIc4amXyIBz2g4uoZIDStNSODVhXtjG5H
h4uPuSz9neHI7vO4/7Yp1kvBCS29fbXLIKIFGR4QrwqWxGuaMhNyeXs2Eb3K/jkyfDjn
1HVDqw+yW5WX2R5Rq7xkjw05AMrqSVvecbX+WV/ksoCgYd3N9bS52B0rBA3Qd6uOADTj
82vYn1zNANhjSnTRMC0hOTZmzmnqZsyksYdQrpbyEsdpHaKbB6GkX7ylp3TM9XDpD9xK
+ROQ==
X-Gm-Message-State: AOAM532osjv7Nw1P0/HRBwzPySBJZh+vqXrZj/Ko6Yzt0eyt2qeOFDG3
JOT89QLhVftNg53aBYKa2p4=
X-Google-Smtp-Source:
ABdhPJzL0Cdo7AKGH5FiC2AREv1bSdtUCg+BEl1uu43NLTd1wRmGMfv3vj1BvcduUPeX7jN48VJ+7Q==
X-Received: by 2002:ac2:41cc:: with SMTP id d12mr4018561lfi.20.1598814906867;
Sun, 30 Aug 2020 12:15:06 -0700 (PDT)
Received: from localhost.localdomain (109-252-170-211.dynamic.spd-mgts.ru.
[109.252.170.211])
by smtp.gmail.com with ESMTPSA id
e23sm1409709lfj.80.2020.08.30.12.15.05
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Sun, 30 Aug 2020 12:15:06 -0700 (PDT)
From: Dmitry Osipenko <digetx@gmail.com>
To: Arend van Spriel <arend.vanspriel@broadcom.com>,
Franky Lin <franky.lin@broadcom.com>,
Hante Meuleman <hante.meuleman@broadcom.com>,
Chi-Hsien Lin <chi-hsien.lin@cypress.com>,
Wright Feng <wright.feng@cypress.com>,
Kalle Valo <kvalo@codeaurora.org>
Cc: linux-wireless@vger.kernel.org,
brcm80211-dev-list.pdl@broadcom.com,
brcm80211-dev-list@cypress.com, netdev@vger.kernel.org,
linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v3 3/3] brcmfmac: set F2 SDIO block size to 128 bytes for
BCM4329
Date: Sun, 30 Aug 2020 22:14:39 +0300
Message-Id: <20200830191439.10017-4-digetx@gmail.com>
X-Mailer: git-send-email 2.27.0
In-Reply-To: <20200830191439.10017-1-digetx@gmail.com>
References: <20200830191439.10017-1-digetx@gmail.com>
MIME-Version: 1.0
Sender: linux-wireless-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-wireless.vger.kernel.org>
X-Mailing-List: linux-wireless@vger.kernel.org
Setting F2 block size to 128 bytes for BCM4329 allows to significantly
improve RX throughput on NVIDIA Tegra20. Before this change the throughput
was capped to 30 Mbit/s on Tegra, now throughput is at 40 Mbit/s, which is
a maximum throughput for the BCM4329 chip. The F2 block size is borrowed
from the downstream BCMDHD driver. The comment in the BCMDHD driver says
that 128B improves throughput and turns out that it works for the brcmfmac
as well.
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
index 0dc4de2fa9f6..318bd00bf94f 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
@@ -45,6 +45,7 @@
#define SDIO_FUNC2_BLOCKSIZE 512
#define SDIO_4373_FUNC2_BLOCKSIZE 256
#define SDIO_435X_FUNC2_BLOCKSIZE 256
+#define SDIO_4329_FUNC2_BLOCKSIZE 128
/* Maximum milliseconds to wait for F2 to come up */
#define SDIO_WAIT_F2RDY 3000
@@ -920,6 +921,9 @@ int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev)
case SDIO_DEVICE_ID_BROADCOM_4356:
f2_blksz = SDIO_435X_FUNC2_BLOCKSIZE;
break;
+ case SDIO_DEVICE_ID_BROADCOM_4329:
+ f2_blksz = SDIO_4329_FUNC2_BLOCKSIZE;
+ break;
default:
break;
}

View File

@ -867,10 +867,18 @@ Patch105: 0001-platform-x86-thinkpad_acpi-lap-or-desk-mode-interfac.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1874117
Patch107: 0001-drivers-perf-xgene_pmu-Fix-uninitialized-resource-st.patch
Patch110: memory-tegra-Remove-GPU-from-DRM-IOMMU-group.patch
# https://patchwork.kernel.org/patch/11745283/
Patch108: brcmfmac-BCM4329-Fixes-and-improvement.patch
# https://patchwork.kernel.org/patch/11743769/
Patch109: mmc-sdhci-iproc-Enable-eMMC-DDR-3.3V-support-for-bcm2711.patch
# https://www.spinics.net/lists/linux-mmc/msg60653.html
Patch111: mmc-sdio-Use-mmc_pre_req-mmc_post_req.patch
Patch112: memory-tegra-Remove-GPU-from-DRM-IOMMU-group.patch
# CVE-2020-25211 rhbz 1877571 1877572
Patch111: netfilter-ctnetlink-add-range-check-for-l3-l4-protonum.patch
Patch113: netfilter-ctnetlink-add-range-check-for-l3-l4-protonum.patch
# END OF PATCH DEFINITIONS
@ -2976,6 +2984,11 @@ fi
#
#
%changelog
* Sat Sep 12 2020 Peter Robinson <pbrobinson@fedoraproject.org>
- Fix for SDIO speed issue
- Fix for certain mSD cards on Raspberry Pi 4
- Fix for older brcm sdio WiFi modules
* Thu Sep 10 2020 Justin M. Forbes <jforbes@fedoraproject.org>
- Fix CVE-2020-25211 (rhbz 1877571 1877572)

View File

@ -0,0 +1,98 @@
From patchwork Fri Aug 28 21:47:14 2020
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Stefan Wahren <stefan.wahren@i2se.com>
X-Patchwork-Id: 11743769
Return-Path: <SRS0=IgIp=CG=vger.kernel.org=linux-mmc-owner@kernel.org>
Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
[172.30.200.123])
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9294E913
for <patchwork-linux-mmc@patchwork.kernel.org>;
Fri, 28 Aug 2020 21:48:59 +0000 (UTC)
Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
by mail.kernel.org (Postfix) with ESMTP id 83F242078A
for <patchwork-linux-mmc@patchwork.kernel.org>;
Fri, 28 Aug 2020 21:48:59 +0000 (UTC)
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1726418AbgH1Vs7 (ORCPT
<rfc822;patchwork-linux-mmc@patchwork.kernel.org>);
Fri, 28 Aug 2020 17:48:59 -0400
Received: from mout.kundenserver.de ([217.72.192.73]:41343 "EHLO
mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1726379AbgH1Vs5 (ORCPT
<rfc822;linux-mmc@vger.kernel.org>); Fri, 28 Aug 2020 17:48:57 -0400
Received: from localhost.localdomain ([37.4.249.236]) by
mrelayeu.kundenserver.de (mreue107 [212.227.15.183]) with ESMTPSA (Nemesis)
id 1MzQTm-1kXpKC3Jq4-00vObT; Fri, 28 Aug 2020 23:48:40 +0200
From: Stefan Wahren <stefan.wahren@i2se.com>
To: Adrian Hunter <adrian.hunter@intel.com>,
Ulf Hansson <ulf.hansson@linaro.org>,
Ray Jui <rjui@broadcom.com>,
Scott Branden <sbranden@broadcom.com>
Cc: Florian Fainelli <f.fainelli@gmail.com>,
Nicolas Saenz Julienne <nsaenzjulienne@suse.de>,
Matthias Brugger <mbrugger@suse.com>,
bcm-kernel-feedback-list@broadcom.com, linux-mmc@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Stefan Wahren <stefan.wahren@i2se.com>
Subject: [PATCH] mmc: sdhci-iproc: Enable eMMC DDR 3.3V support for bcm2711
Date: Fri, 28 Aug 2020 23:47:14 +0200
Message-Id: <1598651234-29826-1-git-send-email-stefan.wahren@i2se.com>
X-Mailer: git-send-email 2.7.4
X-Provags-ID: V03:K1:kiziRvARXQvcShivifQ3e8jFQc5NDvS/jk5DcBO1+kY24pjuxcW
pNMzHbKjpwEkD+6H3B4dmClTpiU+4kjeXUo3zfO/VqTahci/RQgw2Jjg5ClfAO20vRj4cmp
eqHXUd9TKy5yr6xa9AzDep/tDWw/ZAMYe72C6NEC+QVodXdoe7JDC+duHvIEy7khM7PY+GF
NzqIu6pdSVbj1v16NZ+sA==
X-Spam-Flag: NO
X-UI-Out-Filterresults: notjunk:1;V03:K0:eelQECZEP/o=:AtkwbFez+YK2lUaKrnCAex
dIlTU0COpkkpKB5Qb0bMKrb8/w/SPJ2rMBPQOKwEd9/tUzoKWo+ZbAPQPpEnEcUM5QKbnzw+7
qB1kFvhlFgAjX6S2VYE4TsPxy/Dk93b1KLbB3TpK4iOUqvcYMDP11kGtwphrPqzjB+yWqwO6y
KgxT+VLe4SNkCYaD9JES6M1Hj770HNy3DMUeor3ZbWVQqJsm02Xd9jnX8ThCwNQM0x9NSolVQ
25RoD6I8fehNYcceOQKKGQTSKFw5NMv66cwKfnVYhvG9mj1Fix4xF1ssUx+PIaAKz9IPtf88l
ls9Dj7R5z6+Jfpg2yCxV8pPeg1/NewyDH1Bmv2XVIVVZa3o3Ffms2jaDcGuRIJzYvAGzwhj+z
G+spv31CNuWsBbUeimVwPoWruWAapA+EIOp57iNo95TYAamLRoBF+aIc4DiCyoVKiHvWl7mOh
iDs2nI+sgIn+GWEfuSGJNNmNXiOSRr8PyVRuQELwCvbnkr1JmZqzYOdiYlIdE60pjRs0VVnSZ
xYhbUBsbEC/lXnNUb5fF1o3qlK742HPj1nJQ3lQOdh1rcqOG20kRgACUeVAbq1NMG3DNsuHRS
xsYTKTMMWPPeSrsGrGwEWQurcjWiskZ8QvmiCkaJHzyxpEWZfmqH30xnyIVdeVakqbob0ddv6
VLEnvtryHj/lA4fHtioyBJ4A5CpKR2At7wnlKOICKyaHniUfMlssMuxexvZkbh5Tk/TR7aW7A
krPi5wigbGYz2Pf0BiIjJOix9EDYS3+e2oyn6oFZX2gJcfDBT48tMcVYK3IOk6vnwvvmszY/k
jexjMPuNFqHptYGNN/TyrXxKulWcZQdCYcksDfKHCrY0TIrxu44YkbhUl22nDy4LRXZQU6h
Sender: linux-mmc-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-mmc.vger.kernel.org>
X-Mailing-List: linux-mmc@vger.kernel.org
The emmc2 interface on the bcm2711 supports DDR modes for eMMC devices
running at 3.3V. This allows to run eMMC module with 3.3V signaling voltage
at DDR52 mode on the Raspberry Pi 4 using a SD adapter:
clock: 52000000 Hz
actual clock: 50000000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
chip select: 0 (don't care)
power mode: 2 (on)
bus width: 2 (4 bits)
timing spec: 8 (mmc DDR52)
signal voltage: 0 (3.30 V)
driver type: 0 (driver type B)
Link: https://github.com/raspberrypi/linux/issues/3802
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
---
drivers/mmc/host/sdhci-iproc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c
index e2d8dfe..b540aa6 100644
--- a/drivers/mmc/host/sdhci-iproc.c
+++ b/drivers/mmc/host/sdhci-iproc.c
@@ -283,6 +283,7 @@ static const struct sdhci_pltfm_data sdhci_bcm2711_pltfm_data = {
static const struct sdhci_iproc_data bcm2711_data = {
.pdata = &sdhci_bcm2711_pltfm_data,
+ .mmc_caps = MMC_CAP_3_3V_DDR,
};
static const struct of_device_id sdhci_iproc_of_match[] = {

View File

@ -0,0 +1,156 @@
From patchwork Thu Sep 3 08:20:07 2020
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Adrian Hunter <adrian.hunter@intel.com>
X-Patchwork-Id: 11752795
Return-Path: <SRS0=lwnd=CM=vger.kernel.org=linux-mmc-owner@kernel.org>
Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
[172.30.200.123])
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C9EBB14E5
for <patchwork-linux-mmc@patchwork.kernel.org>;
Thu, 3 Sep 2020 08:20:33 +0000 (UTC)
Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
by mail.kernel.org (Postfix) with ESMTP id BC26D2071B
for <patchwork-linux-mmc@patchwork.kernel.org>;
Thu, 3 Sep 2020 08:20:33 +0000 (UTC)
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1728222AbgICIUc (ORCPT
<rfc822;patchwork-linux-mmc@patchwork.kernel.org>);
Thu, 3 Sep 2020 04:20:32 -0400
Received: from mga05.intel.com ([192.55.52.43]:36764 "EHLO mga05.intel.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1726967AbgICIUc (ORCPT <rfc822;linux-mmc@vger.kernel.org>);
Thu, 3 Sep 2020 04:20:32 -0400
IronPort-SDR:
UAhQwI9nWr5N0Ssk91Enat0eUs15ciWos+Mpf9aZyd9VfUitB9WC+vPWh1uI8SDDj4GleLaAws
HrPm3i/171hQ==
X-IronPort-AV: E=McAfee;i="6000,8403,9732"; a="242356326"
X-IronPort-AV: E=Sophos;i="5.76,385,1592895600";
d="scan'208";a="242356326"
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from fmsmga002.fm.intel.com ([10.253.24.26])
by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
03 Sep 2020 01:20:31 -0700
IronPort-SDR:
us9vTGT33QbxjZoviJb7le3HTC8FOUlIec36VMhX5tXlhCcvcPW9B/SKFJcwEJiMvCa3zvNnDf
7Vbl3UaoRlmQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.76,385,1592895600";
d="scan'208";a="334396201"
Received: from slisovsk-lenovo-ideapad-720s-13ikb.fi.intel.com (HELO
ahunter-Desktop.fi.intel.com) ([10.237.72.190])
by fmsmga002.fm.intel.com with ESMTP; 03 Sep 2020 01:20:29 -0700
From: Adrian Hunter <adrian.hunter@intel.com>
To: Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-mmc <linux-mmc@vger.kernel.org>,
=?utf-8?q?Pali_Roh=C3=A1r?= <pali@kernel.org>,
Haibo Chen <haibo.chen@nxp.com>, Yue Hu <huyue2@yulong.com>,
Douglas Anderson <dianders@chromium.org>, Dmitry Osipenko <digetx@gmail.com>
Subject: [PATCH] mmc: sdio: Use mmc_pre_req() / mmc_post_req()
Date: Thu, 3 Sep 2020 11:20:07 +0300
Message-Id: <20200903082007.18715-1-adrian.hunter@intel.com>
X-Mailer: git-send-email 2.17.1
Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki,
Business Identity Code: 0357606 - 4, Domiciled in Helsinki
Sender: linux-mmc-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-mmc.vger.kernel.org>
X-Mailing-List: linux-mmc@vger.kernel.org
SDHCI changed from using a tasklet to finish requests, to using an IRQ
thread i.e. commit c07a48c2651965 ("mmc: sdhci: Remove finish_tasklet").
Because this increased the latency to complete requests, a preparatory
change was made to complete the request from the IRQ handler if
possible i.e. commit 19d2f695f4e827 ("mmc: sdhci: Call mmc_request_done()
from IRQ handler if possible"). That alleviated the situation for MMC
block devices because the MMC block driver makes use of mmc_pre_req()
and mmc_post_req() so that successful requests are completed in the IRQ
handler and any DMA unmapping is handled separately in mmc_post_req().
However SDIO was still affected, and an example has been reported with
up to 20% degradation in performance.
Looking at SDIO I/O helper functions, sdio_io_rw_ext_helper() appeared
to be a possible candidate for making use of asynchronous requests
within its I/O loops, but analysis revealed that these loops almost
never iterate more than once, so the complexity of the change would not
be warrented.
Instead, mmc_pre_req() and mmc_post_req() are added before and after I/O
submission (mmc_wait_for_req) in mmc_io_rw_extended(). This still has
the potential benefit of reducing the duration of interrupt handlers, as
well as addressing the latency issue for SDHCI. It also seems a more
reasonable solution than forcing drivers to do everything in the IRQ
handler.
Reported-by: Dmitry Osipenko <digetx@gmail.com>
Fixes: c07a48c2651965 ("mmc: sdhci: Remove finish_tasklet")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Tested-by: Dmitry Osipenko <digetx@gmail.com>
---
drivers/mmc/core/sdio_ops.c | 39 +++++++++++++++++++++----------------
1 file changed, 22 insertions(+), 17 deletions(-)
diff --git a/drivers/mmc/core/sdio_ops.c b/drivers/mmc/core/sdio_ops.c
index 93d346c01110..4c229dd2b6e5 100644
--- a/drivers/mmc/core/sdio_ops.c
+++ b/drivers/mmc/core/sdio_ops.c
@@ -121,6 +121,7 @@ int mmc_io_rw_extended(struct mmc_card *card, int write, unsigned fn,
struct sg_table sgtable;
unsigned int nents, left_size, i;
unsigned int seg_size = card->host->max_seg_size;
+ int err;
WARN_ON(blksz == 0);
@@ -170,28 +171,32 @@ int mmc_io_rw_extended(struct mmc_card *card, int write, unsigned fn,
mmc_set_data_timeout(&data, card);
- mmc_wait_for_req(card->host, &mrq);
+ mmc_pre_req(card->host, &mrq);
- if (nents > 1)
- sg_free_table(&sgtable);
+ mmc_wait_for_req(card->host, &mrq);
if (cmd.error)
- return cmd.error;
- if (data.error)
- return data.error;
-
- if (mmc_host_is_spi(card->host)) {
+ err = cmd.error;
+ else if (data.error)
+ err = data.error;
+ else if (mmc_host_is_spi(card->host))
/* host driver already reported errors */
- } else {
- if (cmd.resp[0] & R5_ERROR)
- return -EIO;
- if (cmd.resp[0] & R5_FUNCTION_NUMBER)
- return -EINVAL;
- if (cmd.resp[0] & R5_OUT_OF_RANGE)
- return -ERANGE;
- }
+ err = 0;
+ else if (cmd.resp[0] & R5_ERROR)
+ err = -EIO;
+ else if (cmd.resp[0] & R5_FUNCTION_NUMBER)
+ err = -EINVAL;
+ else if (cmd.resp[0] & R5_OUT_OF_RANGE)
+ err = -ERANGE;
+ else
+ err = 0;
- return 0;
+ mmc_post_req(card->host, &mrq, err);
+
+ if (nents > 1)
+ sg_free_table(&sgtable);
+
+ return err;
}
int sdio_reset(struct mmc_host *host)