* [PATCH v2 1/4] brcmfmac: increase F2 watermark for BCM4329
2020-08-27 6:04 [PATCH v2 0/4] Fixes and improvements for brcmfmac driver Dmitry Osipenko
@ 2020-08-27 6:04 ` Dmitry Osipenko
2020-08-27 6:13 ` Dmitry Osipenko
2020-08-27 6:04 ` [PATCH v2 2/4] brcmfmac: drop unnecessary "fallthrough" comments Dmitry Osipenko
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: Dmitry Osipenko @ 2020-08-27 6:04 UTC (permalink / raw)
To: Arend van Spriel, Franky Lin, Hante Meuleman, Chi-Hsien Lin,
Wright Feng, Kalle Valo
Cc: linux-wireless, brcm80211-dev-list.pdl, brcm80211-dev-list,
netdev, linux-tegra, linux-kernel
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.
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 3c07d1bbe1c6..ac3ee93a2378 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);
--
2.27.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 1/4] brcmfmac: increase F2 watermark for BCM4329
2020-08-27 6:04 ` [PATCH v2 1/4] brcmfmac: increase F2 watermark for BCM4329 Dmitry Osipenko
@ 2020-08-27 6:13 ` Dmitry Osipenko
0 siblings, 0 replies; 8+ messages in thread
From: Dmitry Osipenko @ 2020-08-27 6:13 UTC (permalink / raw)
To: Arend van Spriel, Franky Lin, Hante Meuleman, Chi-Hsien Lin,
Wright Feng, Kalle Valo
Cc: linux-wireless, brcm80211-dev-list.pdl, brcm80211-dev-list,
netdev, linux-tegra, linux-kernel
27.08.2020 09:04, Dmitry Osipenko пишет:
> 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.
>
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
I accidentally missed to add the r-b from Arend that he gave to the v1:
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 2/4] brcmfmac: drop unnecessary "fallthrough" comments
2020-08-27 6:04 [PATCH v2 0/4] Fixes and improvements for brcmfmac driver Dmitry Osipenko
2020-08-27 6:04 ` [PATCH v2 1/4] brcmfmac: increase F2 watermark for BCM4329 Dmitry Osipenko
@ 2020-08-27 6:04 ` Dmitry Osipenko
2020-08-27 6:23 ` Gustavo A. R. Silva
2020-08-27 6:04 ` [PATCH v2 3/4] brcmfmac: drop chip id from debug messages Dmitry Osipenko
2020-08-27 6:04 ` [PATCH v2 4/4] brcmfmac: set F2 SDIO block size to 128 bytes for BCM4329 Dmitry Osipenko
3 siblings, 1 reply; 8+ messages in thread
From: Dmitry Osipenko @ 2020-08-27 6:04 UTC (permalink / raw)
To: Arend van Spriel, Franky Lin, Hante Meuleman, Chi-Hsien Lin,
Wright Feng, Kalle Valo
Cc: linux-wireless, brcm80211-dev-list.pdl, brcm80211-dev-list,
netdev, linux-tegra, linux-kernel
There is no need to insert the "fallthrough" comment if there is nothing
in-between of case switches. Hence let's remove the unnecessary comments
in order to make code cleaner a tad.
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 2 --
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 --
2 files changed, 4 deletions(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
index 1a7ab49295aa..0dc4de2fa9f6 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
@@ -916,9 +916,7 @@ int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev)
f2_blksz = SDIO_4373_FUNC2_BLOCKSIZE;
break;
case SDIO_DEVICE_ID_BROADCOM_4359:
- /* fallthrough */
case SDIO_DEVICE_ID_BROADCOM_4354:
- /* fallthrough */
case SDIO_DEVICE_ID_BROADCOM_4356:
f2_blksz = SDIO_435X_FUNC2_BLOCKSIZE;
break;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
index ac3ee93a2378..b16944a898f9 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -4306,9 +4306,7 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err,
CY_43455_MESBUSYCTRL, &err);
break;
case SDIO_DEVICE_ID_BROADCOM_4359:
- /* fallthrough */
case SDIO_DEVICE_ID_BROADCOM_4354:
- /* fallthrough */
case SDIO_DEVICE_ID_BROADCOM_4356:
brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes\n",
CY_435X_F2_WATERMARK);
--
2.27.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/4] brcmfmac: drop unnecessary "fallthrough" comments
2020-08-27 6:04 ` [PATCH v2 2/4] brcmfmac: drop unnecessary "fallthrough" comments Dmitry Osipenko
@ 2020-08-27 6:23 ` Gustavo A. R. Silva
2020-08-27 6:20 ` Dmitry Osipenko
0 siblings, 1 reply; 8+ messages in thread
From: Gustavo A. R. Silva @ 2020-08-27 6:23 UTC (permalink / raw)
To: Dmitry Osipenko, Arend van Spriel, Franky Lin, Hante Meuleman,
Chi-Hsien Lin, Wright Feng, Kalle Valo
Cc: linux-wireless, brcm80211-dev-list.pdl, brcm80211-dev-list,
netdev, linux-tegra, linux-kernel
Hi,
There is a patch that address this, already:
https://lore.kernel.org/lkml/20200821063758.GA17783@embeddedor/
Thanks
--
Gustavo
On 8/27/20 01:04, Dmitry Osipenko wrote:
> There is no need to insert the "fallthrough" comment if there is nothing
> in-between of case switches. Hence let's remove the unnecessary comments
> in order to make code cleaner a tad.
>
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 2 --
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 --
> 2 files changed, 4 deletions(-)
>
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
> index 1a7ab49295aa..0dc4de2fa9f6 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
> @@ -916,9 +916,7 @@ int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev)
> f2_blksz = SDIO_4373_FUNC2_BLOCKSIZE;
> break;
> case SDIO_DEVICE_ID_BROADCOM_4359:
> - /* fallthrough */
> case SDIO_DEVICE_ID_BROADCOM_4354:
> - /* fallthrough */
> case SDIO_DEVICE_ID_BROADCOM_4356:
> f2_blksz = SDIO_435X_FUNC2_BLOCKSIZE;
> break;
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
> index ac3ee93a2378..b16944a898f9 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
> @@ -4306,9 +4306,7 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err,
> CY_43455_MESBUSYCTRL, &err);
> break;
> case SDIO_DEVICE_ID_BROADCOM_4359:
> - /* fallthrough */
> case SDIO_DEVICE_ID_BROADCOM_4354:
> - /* fallthrough */
> case SDIO_DEVICE_ID_BROADCOM_4356:
> brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes\n",
> CY_435X_F2_WATERMARK);
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/4] brcmfmac: drop unnecessary "fallthrough" comments
2020-08-27 6:23 ` Gustavo A. R. Silva
@ 2020-08-27 6:20 ` Dmitry Osipenko
0 siblings, 0 replies; 8+ messages in thread
From: Dmitry Osipenko @ 2020-08-27 6:20 UTC (permalink / raw)
To: Gustavo A. R. Silva, Arend van Spriel, Franky Lin,
Hante Meuleman, Chi-Hsien Lin, Wright Feng, Kalle Valo
Cc: linux-wireless, brcm80211-dev-list.pdl, brcm80211-dev-list,
netdev, linux-tegra, linux-kernel
27.08.2020 09:23, Gustavo A. R. Silva пишет:
> Hi,
>
> There is a patch that address this, already:
>
> https://lore.kernel.org/lkml/20200821063758.GA17783@embeddedor/
>
> Thanks
Okay, then my patch is unnecessary. Thank you!
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 3/4] brcmfmac: drop chip id from debug messages
2020-08-27 6:04 [PATCH v2 0/4] Fixes and improvements for brcmfmac driver Dmitry Osipenko
2020-08-27 6:04 ` [PATCH v2 1/4] brcmfmac: increase F2 watermark for BCM4329 Dmitry Osipenko
2020-08-27 6:04 ` [PATCH v2 2/4] brcmfmac: drop unnecessary "fallthrough" comments Dmitry Osipenko
@ 2020-08-27 6:04 ` Dmitry Osipenko
2020-08-27 6:04 ` [PATCH v2 4/4] brcmfmac: set F2 SDIO block size to 128 bytes for BCM4329 Dmitry Osipenko
3 siblings, 0 replies; 8+ messages in thread
From: Dmitry Osipenko @ 2020-08-27 6:04 UTC (permalink / raw)
To: Arend van Spriel, Franky Lin, Hante Meuleman, Chi-Hsien Lin,
Wright Feng, Kalle Valo
Cc: linux-wireless, brcm80211-dev-list.pdl, brcm80211-dev-list,
netdev, linux-tegra, linux-kernel
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);
--
2.27.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 4/4] brcmfmac: set F2 SDIO block size to 128 bytes for BCM4329
2020-08-27 6:04 [PATCH v2 0/4] Fixes and improvements for brcmfmac driver Dmitry Osipenko
` (2 preceding siblings ...)
2020-08-27 6:04 ` [PATCH v2 3/4] brcmfmac: drop chip id from debug messages Dmitry Osipenko
@ 2020-08-27 6:04 ` Dmitry Osipenko
3 siblings, 0 replies; 8+ messages in thread
From: Dmitry Osipenko @ 2020-08-27 6:04 UTC (permalink / raw)
To: Arend van Spriel, Franky Lin, Hante Meuleman, Chi-Hsien Lin,
Wright Feng, Kalle Valo
Cc: linux-wireless, brcm80211-dev-list.pdl, brcm80211-dev-list,
netdev, linux-tegra, linux-kernel
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;
}
--
2.27.0
^ permalink raw reply related [flat|nested] 8+ messages in thread