From patchwork Mon Dec 9 22:38:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?S=C3=B6ren_Moch?= X-Patchwork-Id: 1206701 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=web.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=web.de header.i=@web.de header.b="rHPlgvWb"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47Wymd2KC5z9sNH for ; Tue, 10 Dec 2019 09:39:29 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727002AbfLIWig (ORCPT ); Mon, 9 Dec 2019 17:38:36 -0500 Received: from mout.web.de ([212.227.15.3]:51455 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726207AbfLIWif (ORCPT ); Mon, 9 Dec 2019 17:38:35 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1575931108; bh=hipcHuvDt9eDEE26o9CyI1wXasjR+ofQXYS0BLuJXas=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=rHPlgvWbhxhUejXaRk8saa7RjP1QPMIOGleFPpYq33v/HcFG/kqwrK1b02POQ1S6E qr05IPU6OM2m/PkPf7lBONO0ifNeO6Ph1/GUE8cOkjudKnTahwWjOIEWVAFCQiG6K3 aupBoQeoFxvciAStVZy1y3DXGSuiR032sZCo5+Xg= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from localhost.localdomain ([89.204.137.56]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MhOpG-1iQe9J3DDG-00MaZJ; Mon, 09 Dec 2019 23:38:28 +0100 From: Soeren Moch To: Kalle Valo Cc: Soeren Moch , Wright Feng , Arend van Spriel , Franky Lin , Hante Meuleman , Chi-Hsien Lin , linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com, brcm80211-dev-list@cypress.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/8] brcmfmac: reset two D11 cores if chip has two D11 cores Date: Mon, 9 Dec 2019 23:38:15 +0100 Message-Id: <20191209223822.27236-1-smoch@web.de> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 X-Provags-ID: V03:K1:nMh6JTYQgSoTNLi0I6d+FrTc32tAPA/d8LYaIo5bLuzoFr8EVbX 50FUXuYTk81yWWwn0OYXUMREg/zwoqjvZz943AaZtJfrWm1vedqiP+VbBuV5nCz3uopjFjc UglSbpTRW27/f28QeRqRe5kOzkvzn9yFr9FykLWx3vAqsWST6TQrpYzoacjrmFnXCkcMRRa w+tjNwWhxr4iH7OfgWlsA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:KV2RewuW+xc=:kyETITqTRSM7xyFhz4LSJ2 4bV5x0wwWvANPB7nRHyipSpS8FWhqwskj5sRxI+bwF8NKXjoUAfSDg/eXD1zCTwzG/IQQboCN UTMa1MQLLdd9heehcjoHlq3g/5NEnsEcZASFWBx092OG9ppgQ0f2m/fVEkTtlNIWgY8W/bkXa +cIq00xKeA/YRGQW1vDX4P6a6R0FKsyM6t4gA1lLgRZ04RRHYVXZBn3gvVygWJq0O7CI3mHuf aS2Dirsio2o51zX7Xc9c8EjC9qTloD2UCJcoSb2R7e3gnVMMa0c91jmgm+Kqmw07Mt5TzzUGv aX0bqThsF74uvXjLUnuq38yXw7n62T3Rh1w/dRE9+woVHb7myfHr9IQMCqFI+D4rCBN8M0deo k7ZaVgncBAnZVQd1gvvPcisKUitE6zuMaEkxnaxSlASKk7S1bTP+IDcC8qBAymPyYi3wg8R6P bocwovn9FIDVoQ0UuEC5wTszCsjkMrbF2lml5VoYDpXckSDr0yJoU9ed8whTBpOzBYmlExvZT TnlIkAL6qh9+1d0hYH/h13fAzJUyphfc29PvFkWcwopW5WxX4baVpriA2xtB4IJQqgwVJ/nxB GdXrd2bC2HAMGz4L2joWjdnVy7+iCjYUezUq+uCjuZi62mutDyJ1RpiMwI52t4e2fknnER0Kt FcYS7fIiN4wWDl0ASChSK3v0Zoejg5RaLMOZz5Tufj1D1PgBp+DplMpnIQB7sNrSp4VRMoFyD BI6Dz1POCvCJFAX8+/dvQpwuyqnPZvX5Nv9MZuKZ1rFbs4PZ9j1S/oguzAVJraplEe1QLPF2w hs3qRQcWDIn4svERK8SEe87RZc4BpbY1i+WEnZjovIOFzW5f0i4hxURtuNB6x3GfARikpsq13 NQWudv2hHXohFZSIIoU8qTacMF+G6ZWmeF2QPHW5jKdzUSE7rDX3EQQbJwmbI7mBrEDB0brF9 BtkIwKcU5dQ+oaFBV7WR4RD0dm6nEUoMdhPMuM7roCTyr+HLMuUVHo3jTsic39c41UfsgIBLS zC/6NeF6S1/G54v2xP6OMIo1uMhNwsfcc8TILa1+HG8KcdMPjJWaGI/VNmKwgvseI70JSU0Cs wwdcz+dUzxiKpcAlVpPzD8fJVWf9eQAKYV9GgP8yeOka8qDCmiHXRPFp4/gGLcHYJgX1u8xfN pShVwTNZ0bGCMBsn2UbNmg4XcVECgao9xdEekMlemqFGLdyXLxSh99RzfGzd6sYsRMVb1qZfD z3ZWlU1ilrq/EOHfJLFFccM4easMqond20lEJzQ== Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Wright Feng There are two D11 cores in RSDB chips like 4359. We have to reset two D11 cores simutaneously before firmware download, or the firmware may not be initialized correctly and cause "fw initialized failed" error. Signed-off-by: Wright Feng Reviewed-by: Chi-Hsien Lin --- Cc: Kalle Valo Cc: Arend van Spriel Cc: Franky Lin Cc: Hante Meuleman Cc: Chi-Hsien Lin Cc: Wright Feng Cc: linux-wireless@vger.kernel.org Cc: brcm80211-dev-list.pdl@broadcom.com Cc: brcm80211-dev-list@cypress.com Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- .../broadcom/brcm80211/brcmfmac/chip.c | 50 +++++++++++++++++++ .../broadcom/brcm80211/brcmfmac/chip.h | 1 + .../broadcom/brcm80211/brcmfmac/pcie.c | 2 +- 3 files changed, 52 insertions(+), 1 deletion(-) -- 2.17.1 diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c index a795d781b4c5..0b5fbe5d8270 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c @@ -433,11 +433,25 @@ static void brcmf_chip_ai_resetcore(struct brcmf_core_priv *core, u32 prereset, { struct brcmf_chip_priv *ci; int count; + struct brcmf_core *d11core2 = NULL; + struct brcmf_core_priv *d11priv2 = NULL; ci = core->chip; + /* special handle two D11 cores reset */ + if (core->pub.id == BCMA_CORE_80211) { + d11core2 = brcmf_chip_get_d11core(&ci->pub, 1); + if (d11core2) { + brcmf_dbg(INFO, "found two d11 cores, reset both\n"); + d11priv2 = container_of(d11core2, + struct brcmf_core_priv, pub); + } + } + /* must disable first to work for arbitrary current core state */ brcmf_chip_ai_coredisable(core, prereset, reset); + if (d11priv2) + brcmf_chip_ai_coredisable(d11priv2, prereset, reset); count = 0; while (ci->ops->read32(ci->ctx, core->wrapbase + BCMA_RESET_CTL) & @@ -449,9 +463,30 @@ static void brcmf_chip_ai_resetcore(struct brcmf_core_priv *core, u32 prereset, usleep_range(40, 60); } + if (d11priv2) { + count = 0; + while (ci->ops->read32(ci->ctx, + d11priv2->wrapbase + BCMA_RESET_CTL) & + BCMA_RESET_CTL_RESET) { + ci->ops->write32(ci->ctx, + d11priv2->wrapbase + BCMA_RESET_CTL, + 0); + count++; + if (count > 50) + break; + usleep_range(40, 60); + } + } + ci->ops->write32(ci->ctx, core->wrapbase + BCMA_IOCTL, postreset | BCMA_IOCTL_CLK); ci->ops->read32(ci->ctx, core->wrapbase + BCMA_IOCTL); + + if (d11priv2) { + ci->ops->write32(ci->ctx, d11priv2->wrapbase + BCMA_IOCTL, + postreset | BCMA_IOCTL_CLK); + ci->ops->read32(ci->ctx, d11priv2->wrapbase + BCMA_IOCTL); + } } char *brcmf_chip_name(u32 id, u32 rev, char *buf, uint len) @@ -1109,6 +1144,21 @@ void brcmf_chip_detach(struct brcmf_chip *pub) kfree(chip); } +struct brcmf_core *brcmf_chip_get_d11core(struct brcmf_chip *pub, u8 unit) +{ + struct brcmf_chip_priv *chip; + struct brcmf_core_priv *core; + + chip = container_of(pub, struct brcmf_chip_priv, pub); + list_for_each_entry(core, &chip->cores, list) { + if (core->pub.id == BCMA_CORE_80211) { + if (unit-- == 0) + return &core->pub; + } + } + return NULL; +} + struct brcmf_core *brcmf_chip_get_core(struct brcmf_chip *pub, u16 coreid) { struct brcmf_chip_priv *chip; diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.h index 7b00f6a59e89..8fa38658e727 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.h @@ -74,6 +74,7 @@ struct brcmf_chip *brcmf_chip_attach(void *ctx, const struct brcmf_buscore_ops *ops); void brcmf_chip_detach(struct brcmf_chip *chip); struct brcmf_core *brcmf_chip_get_core(struct brcmf_chip *chip, u16 coreid); +struct brcmf_core *brcmf_chip_get_d11core(struct brcmf_chip *pub, u8 unit); struct brcmf_core *brcmf_chip_get_chipcommon(struct brcmf_chip *chip); struct brcmf_core *brcmf_chip_get_pmu(struct brcmf_chip *pub); bool brcmf_chip_iscoreup(struct brcmf_core *core); diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c index f64ce5074a55..7ac72804e285 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c @@ -78,7 +78,7 @@ static const struct brcmf_firmware_mapping brcmf_pcie_fwnames[] = { BRCMF_FW_ENTRY(BRCM_CC_4371_CHIP_ID, 0xFFFFFFFF, 4371), }; -#define BRCMF_PCIE_FW_UP_TIMEOUT 2000 /* msec */ +#define BRCMF_PCIE_FW_UP_TIMEOUT 5000 /* msec */ #define BRCMF_PCIE_REG_MAP_SIZE (32 * 1024) From patchwork Mon Dec 9 22:38:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?S=C3=B6ren_Moch?= X-Patchwork-Id: 1206700 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=web.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=web.de header.i=@web.de header.b="pVYrtWSi"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47WymX49KVz9sP3 for ; Tue, 10 Dec 2019 09:39:24 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727056AbfLIWih (ORCPT ); Mon, 9 Dec 2019 17:38:37 -0500 Received: from mout.web.de ([212.227.15.3]:42269 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726230AbfLIWig (ORCPT ); Mon, 9 Dec 2019 17:38:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1575931109; bh=bFz6YX4yAHkZbnRoHqoZxSLwKz+LEOXF3fG6Kzxcs3A=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=pVYrtWSiqWoJ5K1UWcybSpGOrTuvnqMeRd4OrwpRHYN7jqQtBZ9dmqUfHZdr8H6BH dJYRJyb6EXskgNg6p63URUdBqo7gX6cRvwkSyBzP6/4vnwfAEJJz4g9VQdBLMzJyqO yvNDNyqfQWhSwyItqq+vNUU1PelkaIyqdApaDAxI= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from localhost.localdomain ([89.204.137.56]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0LxJVq-1hgKy703OU-016tjZ; Mon, 09 Dec 2019 23:38:29 +0100 From: Soeren Moch To: Kalle Valo Cc: Soeren Moch , Chung-Hsien Hsu , Arend van Spriel , Franky Lin , Hante Meuleman , Chi-Hsien Lin , Wright Feng , linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com, brcm80211-dev-list@cypress.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/8] brcmfmac: set F2 blocksize and watermark for 4359 Date: Mon, 9 Dec 2019 23:38:16 +0100 Message-Id: <20191209223822.27236-2-smoch@web.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191209223822.27236-1-smoch@web.de> References: <20191209223822.27236-1-smoch@web.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:+dzjQ0PK9kldwHz5RcI3u8wnAPujH07JS/ZQfOKkQokbZhaSCwm goEu3v+2WTWXhCF7e1w3A2tpARBI6qUsUZuWwztQjbDEszdS7zN2wXM08uiNW90FwUMvpC3 NkyIPFIfVUSyFQ+qeDeb2ABhnvN/skShYq29doi8Ye3R9uFj2Dp09AeoPurw0CUThD7c653 3Ylaf3BYSYTDNsP/1XBJQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:nEnfzQbeGnw=:SJ159rY3tN+qhzjK7Oe+am Ytdp9wi05rk4PWR8ztDfAUDILQi4N1o+jKXtamqUZ6aslRMMeSygK7kYEWegkcqCuEjorwdaW Ljvd032K+ipnf6K0Fe10Vd88VvZu26N24NnSnAbm97iwkwcbkO+iedX98MxVQnMxduTNEoMw8 DPQusTzNt2UBYRyhsjtkMiTZ2q1C58elVdeykSaUbKM/3I8COJXGI23iKUE5bfrFncx6Y+KfP PeFNZEMaRL23oDgOsKFwSU38sCYDMiO3O2hkJApTY4Mm8rwwrpXPBxwiIMfND9eTHra6N4wgF uNTqgxLSsNdbJqmPyf1AqDxm+/Ae1FpuafDxPbylDS6mo8w7APX/O1AX6XnVZq8TLcejLKP1n TEPaQD7JYQl4Xl+X4f1hJmEloaL4pVVxBds0kTJ6Syx21r+/LvPceXpfsuavUtu92M3damJiM l/71zgR+W9ADWsFb+6yicp5ndwl3KsddLXZWMzIK2SbS+2DUdcm7vejaEKzgscbNr0+e67On5 oxbJRBbH54D/grP9KWe+18GyZ96dbTr4lMMpo6f4J108ah6H/HwOmTVygRKMfhSchmOS1o26K Ivyq2JixGuS5FUzbJnYkcpTOK0DwlC8n4zxjC5GwVQZKu3G4BGWoyhSVNJu/8+V5YcIT2JMqv kWi3vmP8L05Emdk04c327932dtI1mK459uAvSBtI7js6+n5p/qZlAD7zAAnHitkhnfBZ2TSDq Cg+8NMJO8fEz6k+4glw+O7xKV7JkmjYuuJDLVeJgMvZhmCE0U+bHzgL5ief5MN3IxB54pWzld sBUvnHjcea3aVLenGHrJgxtgZa0tXDIFclWM8iqvEbVjPImjcdzP2ycYaPniH9a0t5qlJR7J2 /cgFLFtAjAHKiiZ0Fwsi2C841KW4cZfUN51jxwGk6SXzROMD3f2j6f02+1uTL7jt3HE7SsflA 070EoZ6wN4RWQ5INsbi71zJqdtRO/DDkAXlBs5nAcbH52CAlEKvujcXqZ/72L8i2706n/F31p 9biPxHiDi7sEm8WZA70ryO+R22qxZLwsUQnLzxz2go8P8N7a8iof+ATbiwJvh2BMRlEKkPo92 bTykF5mnGh5rWpguFpUaIo9GSTY/9kSyGGzLo00qS1xO4kKFcXHsNvOU4qFm+amnTyRmQYTlb VYROUHgZj9b9XfoZnSSvSw409Ejz4uDLUmPBJ7HgoynIL6BAZMg63Ws6nMAXsdRKiGImgO80r gO37RMZr6LRRuAshZYYWFogbdNPj5qnBaDDHFpw== Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Chung-Hsien Hsu Set F2 blocksize to 256 bytes and watermark to 0x40 for 4359. Also enable and configure F1 MesBusyCtrl. It fixes DMA error while having UDP bi-directional traffic. Signed-off-by: Chung-Hsien Hsu [slightly adapted for rebase on mainline linux] Signed-off-by: Soeren Moch Reviewed-by: Chi-Hsien Lin --- Cc: Kalle Valo Cc: Arend van Spriel Cc: Franky Lin Cc: Hante Meuleman Cc: Chi-Hsien Lin Cc: Wright Feng Cc: linux-wireless@vger.kernel.org Cc: brcm80211-dev-list.pdl@broadcom.com Cc: brcm80211-dev-list@cypress.com Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 6 +++++- .../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) -- 2.17.1 diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c index 96fd8e2bf773..68baf0189305 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c @@ -43,6 +43,7 @@ #define SDIO_FUNC1_BLOCKSIZE 64 #define SDIO_FUNC2_BLOCKSIZE 512 +#define SDIO_4359_FUNC2_BLOCKSIZE 256 /* Maximum milliseconds to wait for F2 to come up */ #define SDIO_WAIT_F2RDY 3000 @@ -903,6 +904,7 @@ static void brcmf_sdiod_host_fixup(struct mmc_host *host) static int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev) { int ret = 0; + unsigned int f2_blksz = SDIO_FUNC2_BLOCKSIZE; sdio_claim_host(sdiodev->func1); @@ -912,7 +914,9 @@ static int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev) sdio_release_host(sdiodev->func1); goto out; } - ret = sdio_set_block_size(sdiodev->func2, SDIO_FUNC2_BLOCKSIZE); + if (sdiodev->func2->device == SDIO_DEVICE_ID_BROADCOM_4359) + f2_blksz = SDIO_4359_FUNC2_BLOCKSIZE; + ret = sdio_set_block_size(sdiodev->func2, f2_blksz); if (ret) { brcmf_err("Failed to set F2 blocksize\n"); sdio_release_host(sdiodev->func1); diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c index 264ad63232f8..21e535072f3f 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -42,6 +42,8 @@ #define DEFAULT_F2_WATERMARK 0x8 #define CY_4373_F2_WATERMARK 0x40 #define CY_43012_F2_WATERMARK 0x60 +#define CY_4359_F2_WATERMARK 0x40 +#define CY_4359_F1_MESBUSYCTRL (CY_4359_F2_WATERMARK | SBSDIO_MESBUSYCTRL_ENAB) #ifdef DEBUG @@ -4205,6 +4207,19 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err, brcmf_sdiod_writeb(sdiod, SBSDIO_DEVICE_CTL, devctl, &err); break; + case SDIO_DEVICE_ID_BROADCOM_4359: + brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes\n", + CY_4359_F2_WATERMARK); + brcmf_sdiod_writeb(sdiod, SBSDIO_WATERMARK, + CY_4359_F2_WATERMARK, &err); + devctl = brcmf_sdiod_readb(sdiod, SBSDIO_DEVICE_CTL, + &err); + devctl |= SBSDIO_DEVCTL_F2WM_ENAB; + brcmf_sdiod_writeb(sdiod, SBSDIO_DEVICE_CTL, devctl, + &err); + brcmf_sdiod_writeb(sdiod, SBSDIO_FUNC1_MESBUSYCTRL, + CY_4359_F1_MESBUSYCTRL, &err); + break; default: brcmf_sdiod_writeb(sdiod, SBSDIO_WATERMARK, DEFAULT_F2_WATERMARK, &err); From patchwork Mon Dec 9 22:38:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?S=C3=B6ren_Moch?= X-Patchwork-Id: 1206697 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=web.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=web.de header.i=@web.de header.b="khXVzveH"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47Wym75Z8cz9sPL for ; Tue, 10 Dec 2019 09:39:03 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727128AbfLIWik (ORCPT ); Mon, 9 Dec 2019 17:38:40 -0500 Received: from mout.web.de ([212.227.15.3]:41699 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726207AbfLIWih (ORCPT ); Mon, 9 Dec 2019 17:38:37 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1575931110; bh=W4LHjRvuXjfeB5gbAQ5NHNwz+RRWi7P6JQFcyw+CKWc=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=khXVzveH20P2mf+qyMHw4IgvDga9IyY7JbQf2QU7NLvXnBQOklOCgIupgS9cqgfIP QHT/ceQH/N9xRiPxHlhiE/hUlGIcg8BqlujhglMcRX0QsdGTVj5/840J0Dmr/V/265 5U7S5DFHXaPvP5ZSPGqKMv4dF5nWgGAe3TVXnWic= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from localhost.localdomain ([89.204.137.56]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0LseoD-1hckCF1pft-012EuE; Mon, 09 Dec 2019 23:38:30 +0100 From: Soeren Moch To: Kalle Valo Cc: Soeren Moch , Arend van Spriel , Franky Lin , Hante Meuleman , Chi-Hsien Lin , Wright Feng , linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com, brcm80211-dev-list@cypress.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/8] brcmfmac: fix rambase for 4359/9 Date: Mon, 9 Dec 2019 23:38:17 +0100 Message-Id: <20191209223822.27236-3-smoch@web.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191209223822.27236-1-smoch@web.de> References: <20191209223822.27236-1-smoch@web.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:Yw1vY8NeKWXUDW5sWvr8IKQ9BMnrfLJRypFscSFc83drtcgl0wq 7jPbevr3iY+DSFn1DSTOhi6WrEl6i55g9aZJC3MCnPqikfdmFozNhetJ55Eu1abQartENQr 6wyHee8fyuRJI8hKWLT9IgthCKn5F73bdqkvtso9BFavhqUnEgMxjvXbdYxTEM+0R+Rlj8/ vinNr3LB5dl44UpcB4fqg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:S+pp4J6aXeQ=:LTO73lOC3YfAik5gAp/zLZ EMyGiDVAZLbSjN3P7UsqbYQVMZO1JgsEefOIh4WBEqV3wPnQYKw3fzHiYRgeMa4obtL1GI0qi 8TxMqhzq43D2AHp5JuLNeb9UQT0s0ggYunEw05fXZxUpMV9s50cESlXqHGn1mF/9wzQhmqhFM kt7GzTMO0rTPpgxjtmgIrANrLmvNrYgIWBEHyT9/ai50Z84KyWPNd0N948TKq/oiQwetNi3Qd yY4tUajVuqJl0NvkijDtvsgbWcJwhGF86T76Kyn/0UiFa6BRJICCOGPJVcGj8JMcnWgqiohFY xishsKRV4fQrAvt+UrYwLt/t6s9KIZ6JsvNuCen87H4BTR5iTrLUAjqQ6adP+MpDZqEnxkNpM Yp0tpEIK3Wt/oXtYNPB5HQqSQqyeuLrMrvwyHDa23hx0SLKdr1ELoJEaHGd6nb2/08fStvyWq 908B7HXzLiT3cHmM0ivZVpABtfbOVG7TP8v+CqNe9J7A3f+vZEy/sUyU40bN5eRQexxrjggB5 FsG8snFE0AbDtdyiPP3UbvrGMcZ6Qhi3owZ2xjzXdH2QDl3vVq5Jd+RpnCfrcqUkNDSo/UeSj HkgVrBOsQiHq6RkAmeAEydWCIveJbqmead7oSevDeCRv9V2bmQfLbfVTJXaNzspcvsQ6OKiZ+ YbAeI6n+M+eyA+v4BJcRJb+ZgBcV4Utv9HayEXvhJxohD5Sd2HoYwTGqvyA70sXyFPQxtbsgK E97mlavoXIg3NsAfWKkaSYHDQr/Y32WO4TQK58DM3u8oJP79KkmNTrWh/a5kJUlFYGbc5VLri VVe4TzD8WJXuwmVWXgMzAwKZMjpnB+NhK0pBeNIwSp9qfmGFI/UW6LZshrgtbXSPdha3NBeQd r/90rPCoUEL7ISWko1eTR4DsUqRLdKAq5llbvSZfkpv3dQ3c8hS503LGT8iP7XIiZM4xkDnBh TCjmOMepMa9jDThFzQncQCiMBiWR8WZ6t5ILlQj3KSgEsuY2BPIsBgAy9SwfZM+gu/+JY26K0 20ey6zM1KcuybJx9mS1wpUgAUVcWVqEC2nLXwGxQgLCdKJwvS0lUp42rzxl2t7LDEe0fce/es He4NpBm5Qat4D5pBhN7iVGkpWHwY5gIA+wIrWy8XvaXATGZv69lHnZgbkNfo5mBBjBHWQ24ti 0Gz49E1f9qozjJ6Tmf0+ax3j8RT7JQyi8PEIuqFY3qL5ZxF/GQH8jkxcg+baw8qdgTNNqFQfG 7TZi3Y08rumLO4y4aGO8nvEQlZiO90pkGh4g7hA== Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Newer 4359 chip revisions need a different rambase address. This fixes firmware download on such devices which fails otherwise. Signed-off-by: Soeren Moch --- Cc: Kalle Valo Cc: Arend van Spriel Cc: Franky Lin Cc: Hante Meuleman Cc: Chi-Hsien Lin Cc: Wright Feng Cc: linux-wireless@vger.kernel.org Cc: brcm80211-dev-list.pdl@broadcom.com Cc: brcm80211-dev-list@cypress.com Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- 2.17.1 diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c index 0b5fbe5d8270..baf72e3984fc 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c @@ -712,7 +712,6 @@ static u32 brcmf_chip_tcm_rambase(struct brcmf_chip_priv *ci) case BRCM_CC_43569_CHIP_ID: case BRCM_CC_43570_CHIP_ID: case BRCM_CC_4358_CHIP_ID: - case BRCM_CC_4359_CHIP_ID: case BRCM_CC_43602_CHIP_ID: case BRCM_CC_4371_CHIP_ID: return 0x180000; @@ -722,6 +721,8 @@ static u32 brcmf_chip_tcm_rambase(struct brcmf_chip_priv *ci) case BRCM_CC_4366_CHIP_ID: case BRCM_CC_43664_CHIP_ID: return 0x200000; + case BRCM_CC_4359_CHIP_ID: + return (ci->pub.chiprev < 9) ? 0x180000 : 0x160000; case CY_CC_4373_CHIP_ID: return 0x160000; default: From patchwork Mon Dec 9 22:38:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?S=C3=B6ren_Moch?= X-Patchwork-Id: 1206696 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=web.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=web.de header.i=@web.de header.b="rKUhppjk"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47Wym51sP1z9sP3 for ; Tue, 10 Dec 2019 09:39:01 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727159AbfLIWil (ORCPT ); Mon, 9 Dec 2019 17:38:41 -0500 Received: from mout.web.de ([212.227.15.14]:60519 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727073AbfLIWij (ORCPT ); Mon, 9 Dec 2019 17:38:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1575931112; bh=dARkS0M+XpGAi20Nwmuqmr1ij7g26rk5Jm9XhGn3X28=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=rKUhppjksax8mD5rW9s1JbYp0YF3eo+K6piPZM/4qZSbyilg0B8RtMAhH0AUen/uC ANmNN1VjQS0gojRY0K+rvnJ4yFS7MfGJhpIz8q6GgXkuyaPhlZJlBpqCCHHxI29Uw3 VQWPl1xpDRIL5Li6QyrJxcr5aWRUXj1vDW5I61ek= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from localhost.localdomain ([89.204.137.56]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0M1lTm-1hkgYf327e-00tkaz; Mon, 09 Dec 2019 23:38:32 +0100 From: Soeren Moch To: Kalle Valo Cc: Soeren Moch , Arend van Spriel , Franky Lin , Hante Meuleman , Chi-Hsien Lin , Wright Feng , linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com, brcm80211-dev-list@cypress.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/8] brcmfmac: make errors when setting roaming parameters non-fatal Date: Mon, 9 Dec 2019 23:38:18 +0100 Message-Id: <20191209223822.27236-4-smoch@web.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191209223822.27236-1-smoch@web.de> References: <20191209223822.27236-1-smoch@web.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:IOLsB7dCM+gHHuazLXyGup3WXuGYoG1k/cTEKuEIU6wPBLFsZ+M QGVQ/hVQoWlh8xnCp6wWbNk+oPQuTTjqv5EYmp+khV5fJBbdq+XfrqPZeJ/6cTmK/V6Glml 28dMt7MC6UXZe1+VWf+xlY4ifW17WGTy8KbxCOv9CA6QRfFxXluuuSy5JyxD/foq0WoUMJw VsgqN4OorC9BbLQV1Shbg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:bgraCoPhY04=:LSrbsDfEXkw9IWRh9b9qHb lONl0Xc7/kG2+x1QzDx9Md5rmR951HhV49eCHIpjz0Z1mdGTQ6YrJ8nt3aYISTV0kIzjPeOR+ xz3vybYdYHdrBZwrf5IVwKgalekjEG46TVcfx9N/Bbw4IvTLbuui0FSU0z1TRqS5I58xhwLAm Huj64ID1WKDHl0PMczyfknq34XZWUzTMMWNPqJL4pkRGx/jW0CS24l2wwLtx1NT8LfK7boWSz KtNMJEepddgZp0ifO/aIDFw3e8NfSeehJxA4gBQrkX18nEvHOiPT5Non6IaYpbKuri/zFUTPd VZ5Uzo2Z83UvJyc8wbqawM2U4fyE+ue0r4sAClvmR+kCjFr//qyzdvEDn/TrqX55OPlTlbI8W oPw4D8fwdSLPjKt9toqSLOCxq4g221skrVwM0EBQ18r9KiFZD2vwh+HIayJo8Y7XeO5YbZ9QX iIwdTMT7mrUVThLMH9JYVFjhx8m70DKHWszIKwMYyhxbHK2zz/pBpBgaAaI69BdvYuzi+hlY5 jira/71Cq303qUjabVPI0OQHRO2HTQLdCtmW9zw67KfWreWlj2JGyFl9QgJEp2MLhaubcSORj w4F8zMvkkv6rc5YBK/p1S238bCc/NZp0Jp8lpAyKd1bLz4fKP4kv9mUJkh3zyPZG/22olaKmP k8TGUEhSPk9KW8g30/Sh/5W9p+4s9yZhShi6fBTFVepXDnrVTYfy3H5Jk6X/9OWLwwv1EfWse xYLS0tMp03a46vgwTJcXmqn7f5Yfq4VJHiTcOCjJfujbWsiAhWuyHOtkOSRAPUp9lfUZR7QuO zo89cV4UVGN8a1OQGOHZAekEtm7Sv5yUk92Hb++rj8UAps20h7KcuBvsjBrXc92pjVGcSstYz ABVFg3iYZfcbChl4EOZNH6K/k+TA4JeHRl43tKdsnxQ4tE0vhT4jX4UCcDmooc01sKTfi9fay 1E6eyokLB2uTl3DIgEZGBt312WwAOQ96PPR/1Jxu11UNoxXWEnTr/PVs/g4UN4g7zldG0bD66 E0LD6zotzfojf1J3wM/NONdG9u81u29ZRDGGjzDudtq2gksTIgYluoq41IodyBFAcJYGV8JzO yhvfPFpiwE1KHT/rWRx/AKLR2jtMzODSZdKNMwczUlfP2NUYRiFI8w6Pr1vqAXKoFENsnXW19 qrrP3OEGxouZdLW6jivzSCmvMJ4zlKp1LegG7AHMLlqnvvnoRXM1xCRPqn+amQrUNkyDb/kSp bOaPZy5zs0eklI6d7e37SMrwk+AzKbwBVojnNfw== Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 4359 dongles do not support setting roaming parameters (error -52). Do not fail the 80211 configuration in this case. Signed-off-by: Soeren Moch Acked-by: Chi-Hsien Lin --- Cc: Kalle Valo Cc: Arend van Spriel Cc: Franky Lin Cc: Hante Meuleman Cc: Chi-Hsien Lin Cc: Wright Feng Cc: linux-wireless@vger.kernel.org Cc: brcm80211-dev-list.pdl@broadcom.com Cc: brcm80211-dev-list@cypress.com Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- .../wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) -- 2.17.1 diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index 5598bbd09b62..0cf13cea1dbe 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -6012,19 +6012,17 @@ static s32 brcmf_dongle_roam(struct brcmf_if *ifp) roamtrigger[1] = cpu_to_le32(BRCM_BAND_ALL); err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_TRIGGER, (void *)roamtrigger, sizeof(roamtrigger)); - if (err) { + if (err) bphy_err(drvr, "WLC_SET_ROAM_TRIGGER error (%d)\n", err); - goto roam_setup_done; - } roam_delta[0] = cpu_to_le32(WL_ROAM_DELTA); roam_delta[1] = cpu_to_le32(BRCM_BAND_ALL); err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_DELTA, (void *)roam_delta, sizeof(roam_delta)); - if (err) { + if (err) bphy_err(drvr, "WLC_SET_ROAM_DELTA error (%d)\n", err); - goto roam_setup_done; - } + + return 0; roam_setup_done: return err; From patchwork Mon Dec 9 22:38:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?S=C3=B6ren_Moch?= X-Patchwork-Id: 1206693 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=web.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=web.de header.i=@web.de header.b="QYPPLktd"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47Wylm3dyzz9sPL for ; Tue, 10 Dec 2019 09:38:44 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727103AbfLIWij (ORCPT ); Mon, 9 Dec 2019 17:38:39 -0500 Received: from mout.web.de ([212.227.15.3]:48313 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727018AbfLIWih (ORCPT ); Mon, 9 Dec 2019 17:38:37 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1575931113; bh=HVbvbJ3Yi08NdEgn7oHls6p1yIJqKL0tjNOsiEe0cnU=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=QYPPLktd7SuOBJ9KE2v0Nqu/z7+OS0VRjBEhJ/QfSL8Y8YeLz+5nN5TJKF/VPLqL/ vUAJrRNKAWjauBrFhowU0YDULFGZ4o+3E0WxdqNMONTMingHVK8AWwYlBD4b3drvP8 to4VgaikaDa7EgJqN8dw88/Z1LWfpBTqFES8xI8A= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from localhost.localdomain ([89.204.137.56]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0Lnmpz-1i5wTH3xJn-00hyT2; Mon, 09 Dec 2019 23:38:33 +0100 From: Soeren Moch To: Kalle Valo Cc: Soeren Moch , Arend van Spriel , Franky Lin , Hante Meuleman , Chi-Hsien Lin , Wright Feng , linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com, brcm80211-dev-list@cypress.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/8] brcmfmac: add support for BCM4359 SDIO chipset Date: Mon, 9 Dec 2019 23:38:19 +0100 Message-Id: <20191209223822.27236-5-smoch@web.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191209223822.27236-1-smoch@web.de> References: <20191209223822.27236-1-smoch@web.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:GJs7KcSUGQtcSBqV23txnu685EcItFGhAPxjVA2qb51u72Wu277 CJbK0lRLY2Yy00dvelvM7dIJEYRO0vEQrRX5AUQw4div8A8zOBUGqf8U5oYWMf1XZFXvnCl BhmUT3G7UtXTrXS8R+GjVALkyb1eBByBNudLFsmjwpQ7vZikVUSQ9pZb+YC2Dwf7GGtGZpw ifsIyIPNPAcXqvl1nVwuw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:HbO2lG62y+4=:v/o0OCqxJfS2DDbgjuGFIF 1S7B2KJ3QWU+t+sOWPL1ml4s/bJzXeo3JMBKdA1YXfYf9ew1KfWrqZoTOAEk3mW6r94fUDsps HF8kzVzvXs4kpVu4N08Q8KE/4d5+7kP5GvNEiRhYFvdXWHwZLx2yOFo9xsysA9KISCjdSz1fu GfiwHqe8cuVXPQ8G+xUdama5940oTTzb7cZNVfONH32Enk1dAu497X++zEvOf0NNctLL9BNVG 08aVXYZSksO2fNHO8nrhUmP4dTbpPFDK2NLpriNyoo5zSR5ZGOwMmF+LW+gjs6PeKURYu1ir+ dUsO2gfJkFzKZYYESRWSYEcET9HcHhZ6kSXoF2aSQ7WJDyW5dcbm5A7wxJZkQJbydkGJaH/ma D4o1P195WKavu9LnN3AANRy3f++53C+ANCDS5G/EYfsKVpKdRGNnDMkpcg1EoGoiyqenUVywe xBER6CDPhvYxpiJJFeou0GOTtKebwRXGNRYxGmFAveZ+hrAi0v+EJy6hMHFxrrV3yZAn3sd2T b8UBmC4Bd4zTPw1fhH6iM0gLwr6zTleAyDuJqRz8WCUES/CHCZkCIUVN//UKTPtz/2D1hnRMo yOZdF5Q5PYsqCT5SSHrFFwiSMXKBK+TV5NYTZmqMyEZzrXiOx4SNBWqCpUlN6tkgeCDiEksJv jlAFEru1xDls2eH7T11KuxPIsC4c0gJSV8iMmRngIlnYkVL4y4RsfspUU/ngnUtZtFkODmScA iJUsJdu2AO++U8PBIQOvKm2crLj8WGZZv2M/u2TijQHPNLNdO+VKxSiapxI11iuD/NdybmWMb uCZ9Qa2KIYZKKkIqnUNluVGWeXEerKGLCA+5aW5ifnD5INpRefCKvYbRCvlKJqzANIIcqsJ+x hjmMYrLQX4x6S9JlRryLvXwgyz3ayk0dIZmwKyR9nXwMd8VIu1ck1BaQ+S0VjqePiCbkw4iuV vizptIVu6veLA6qZK2KBcTPIAUZ0Si3YNI3M270s3pgfi18VvCH+303FAaVBc8w4h9glP9lNm k82msJKsCPUuKFKrdohcvs/T/lImNNCSzEsOKeSX4wrGG9kuYJ4R8U4O8uUBfC1V00/zE+G/W dNwq651kCkBKHqbpwHWUDZnEEEoN67cGkKAET+3FT5bp96wWNaU+25Ja/rHjn+wrVBg+cZFhA eHB/h+VFoNVrizxypYIqOJW896vKYfliY2X0k2dayC/XBbr5U9zd+xRWO84dGwsaEit0bFRtj TXXIbhL/KcbSvU/G63o73r+iiuBQePMaJDxvAPQ== Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org BCM4359 is a 2x2 802.11 abgn+ac Dual-Band HT80 combo chip and it supports Real Simultaneous Dual Band feature. Based on a similar patch by: Wright Feng Signed-off-by: Soeren Moch --- Cc: Kalle Valo Cc: Arend van Spriel Cc: Franky Lin Cc: Hante Meuleman Cc: Chi-Hsien Lin Cc: Wright Feng Cc: linux-wireless@vger.kernel.org Cc: brcm80211-dev-list.pdl@broadcom.com Cc: brcm80211-dev-list@cypress.com Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 1 + drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c | 1 + drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 ++ include/linux/mmc/sdio_ids.h | 1 + 4 files changed, 5 insertions(+) -- 2.17.1 diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c index 68baf0189305..5b57d37caf17 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c @@ -973,6 +973,7 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = { BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43455), BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4354), BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4356), + BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4359), BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_CYPRESS_4373), BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_CYPRESS_43012), { /* end: all zeroes */ } diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c index baf72e3984fc..282d0bc14e8e 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c @@ -1408,6 +1408,7 @@ bool brcmf_chip_sr_capable(struct brcmf_chip *pub) addr = CORE_CC_REG(base, sr_control0); reg = chip->ops->read32(chip->ctx, addr); return (reg & CC_SR_CTL0_ENABLE_MASK) != 0; + case BRCM_CC_4359_CHIP_ID: case CY_CC_43012_CHIP_ID: addr = CORE_CC_REG(pmu->base, retention_ctl); reg = chip->ops->read32(chip->ctx, addr); diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c index 21e535072f3f..c4012ed58b9c 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -616,6 +616,7 @@ BRCMF_FW_DEF(43455, "brcmfmac43455-sdio"); BRCMF_FW_DEF(43456, "brcmfmac43456-sdio"); BRCMF_FW_DEF(4354, "brcmfmac4354-sdio"); BRCMF_FW_DEF(4356, "brcmfmac4356-sdio"); +BRCMF_FW_DEF(4359, "brcmfmac4359-sdio"); BRCMF_FW_DEF(4373, "brcmfmac4373-sdio"); BRCMF_FW_DEF(43012, "brcmfmac43012-sdio"); @@ -638,6 +639,7 @@ static const struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = { BRCMF_FW_ENTRY(BRCM_CC_4345_CHIP_ID, 0xFFFFFDC0, 43455), BRCMF_FW_ENTRY(BRCM_CC_4354_CHIP_ID, 0xFFFFFFFF, 4354), BRCMF_FW_ENTRY(BRCM_CC_4356_CHIP_ID, 0xFFFFFFFF, 4356), + BRCMF_FW_ENTRY(BRCM_CC_4359_CHIP_ID, 0xFFFFFFFF, 4359), BRCMF_FW_ENTRY(CY_CC_4373_CHIP_ID, 0xFFFFFFFF, 4373), BRCMF_FW_ENTRY(CY_CC_43012_CHIP_ID, 0xFFFFFFFF, 43012) }; diff --git a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h index 08b25c02b5a1..930ef2d8264a 100644 --- a/include/linux/mmc/sdio_ids.h +++ b/include/linux/mmc/sdio_ids.h @@ -41,6 +41,7 @@ #define SDIO_DEVICE_ID_BROADCOM_43455 0xa9bf #define SDIO_DEVICE_ID_BROADCOM_4354 0x4354 #define SDIO_DEVICE_ID_BROADCOM_4356 0x4356 +#define SDIO_DEVICE_ID_BROADCOM_4359 0x4359 #define SDIO_DEVICE_ID_CYPRESS_4373 0x4373 #define SDIO_DEVICE_ID_CYPRESS_43012 43012 From patchwork Mon Dec 9 22:38:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?S=C3=B6ren_Moch?= X-Patchwork-Id: 1206699 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=web.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=web.de header.i=@web.de header.b="bZ+QlWgZ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47WymN6mRfz9sPf for ; Tue, 10 Dec 2019 09:39:16 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727267AbfLIWjP (ORCPT ); Mon, 9 Dec 2019 17:39:15 -0500 Received: from mout.web.de ([212.227.15.3]:44983 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726230AbfLIWij (ORCPT ); Mon, 9 Dec 2019 17:38:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1575931114; bh=pwhCYI/XZUvd1PCjnnSsB3espHwYSHG9Tey+eI79854=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=bZ+QlWgZoi3c/kSudFVvxWFNcPW7p3hss+qxmf9p4CtRLBgBIF4qttCCQDt4eXYzM HchF9dl96S03mSr+Dp5SwjG4uSLEzBHG3rFqRlEsDow7APQ6hXRPhmndPkWAvHVgsv vzo1Yq+JJFSJpYY1t8sXhcoste5K4hKDhQxvkpv0= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from localhost.localdomain ([89.204.137.56]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MhOpG-1iQe9Q025K-00MaZJ; Mon, 09 Dec 2019 23:38:34 +0100 From: Soeren Moch To: Kalle Valo Cc: Soeren Moch , Wright Feng , Arend van Spriel , Franky Lin , Hante Meuleman , Chi-Hsien Lin , linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com, brcm80211-dev-list@cypress.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 6/8] brcmfmac: add RSDB condition when setting interface combinations Date: Mon, 9 Dec 2019 23:38:20 +0100 Message-Id: <20191209223822.27236-6-smoch@web.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191209223822.27236-1-smoch@web.de> References: <20191209223822.27236-1-smoch@web.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:Ki9Ind9oIDd4Wyya3GAiQC8qQwjW/Q1A4tin9SB8ThC99hwPL3e hnncUekk38EIjbtIWV80GiH/Qk0X5ex6LlHeaXBl5jsL2bLNoQN8mf0E3ISUs0Njt9/AODP 0opcuoQ8grEpP0rU+bDfi0J9xa7DAeLem7HeRBMaZxFoF8AqETsJGV5eGJBTayglu+GqWtR 3R9cbRX0zUXPBMWKfjqQw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:MfcGgLzc754=:gc/tQd7+NKr1wOVGNhtXIK jbcUpInQwItLTRKolJJI1JlcLBScBvvwD6iwzobbX6IWVYn1qX2zEK+KIe2iLcRsz7R2b768b dWmMdT6k4uJzAOztqHCwxyRLF2zgVALBfxc1mV3gMRMz7GECpD0ceWGZfsslGoiNqyiuAJ9aU P3reCK2XJvWDu0u8fS3f+379Tk5dTSTYtn0ZVa07CgRDPuPsIzcKl1gGTawN2bMtJW4WZOaYl bYSfDeV2+dVmmFa+0ydP7zLGA3l5JEzpsqwynF3aPtMH79eLK8z5JRT+NBvz0DozNLmtc/h51 CkZGj+fYuTcsec6o/EtAvAahwgBfgNRULobb9pM4QmJHY062m+5QuBOQ/vTkA4iSu6aGrKdNF rNHoVvjChc8N1nJfNnF2yN0Gx3ChkiV8JbG/DiRkkBJgj3lQJmF/1d9GHxVr5w8Qa0YAlzRCC r2pHQ8uIBepZTxmtzImaLM6aGCjbJdmySpjnLfqMbpXTN+dNauXzl6qOHT2BwptrxeXNh7ZFT 59KBM/VgwDNnRXCpN73KDyMcnEg/ZwNbHqjKCHfQ+7lGbLR9oNS4/lFiRx6dpBUYIiyBegitX REBhO4tBV9LtNUwcgNiFOLjIS52shomJgWjiScNdzgJAuhfbx9wVu1Yb0uxG6vuxQTT/tgBAK +9Ksm9fpZ1c/A3vzxKowvfUsoXLx6ASr4LNMTuTZGyOZZFKC590zON4kTW4H2IxZNudE+UAxZ +C1UIVrKXLDWlShtAhgvp00FPFWAwqqHO4oEsHTkk/zsvP+LeUfxg7BR1DgeWWuUXVpIBS2E3 1zM1LammOitfRBlZmsY89041KtU9j3W4yyTOhS6shdUrf2bZFe5FfUibva+k2ab0jV0oI6fAF pWWzTjZjQozL6dfMdAWQXPeAFmUMXZUhYanoe1vnVv3j9r0fVln/y91188OymC4tta2RhR5Uw 89RKfcV364Xj+xABIroz4Y10FaATcWr8vXapRlniS773K3CzYBs4j+igv8D+KTQhDkijdiJ5q oMG1hPq5c4Cv5jAlgQTEuVaT1+ZocuhKgTVGVSY7M6akAzl+88Gx42+p4TxXbaxh71eMyQLGN Hlu9RpCfLFDjjsiDrlXrQXgdYYP4jEOVZ37KeWiF8ZEZQU59mFkgYqXSNPxNoaK8V14ZyUouD c9vsvt08mUGff6kzy5fs5CHOzA1WoglJlbvyXzPadMHoxt2oOyUMko62svjo5EhgeJXuzcphK aCDPf0Yt57WFUFjLPCckzwCzb9kn0SIN16m+vXg== Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Wright Feng With firmware RSDB feature 1. The maximum support interface is four. 2. The maximum difference channel is two. 3. The maximum interfaces of {station/p2p client/AP} are two. 4. The maximum interface of p2p device is one. Signed-off-by: Wright Feng Reviewed-by: Chi-Hsien Lin --- Cc: Kalle Valo Cc: Arend van Spriel Cc: Franky Lin Cc: Hante Meuleman Cc: Chi-Hsien Lin Cc: Wright Feng Cc: linux-wireless@vger.kernel.org Cc: brcm80211-dev-list.pdl@broadcom.com Cc: brcm80211-dev-list@cypress.com Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- .../broadcom/brcm80211/brcmfmac/cfg80211.c | 54 ++++++++++++++++--- 1 file changed, 46 insertions(+), 8 deletions(-) -- 2.17.1 diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index 0cf13cea1dbe..9d9dc9195e9e 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -6520,6 +6520,9 @@ brcmf_txrx_stypes[NUM_NL80211_IFTYPES] = { * #STA <= 1, #AP <= 1, channels = 1, 2 total * #AP <= 4, matching BI, channels = 1, 4 total * + * no p2p and rsdb: + * #STA <= 2, #AP <= 2, channels = 2, 4 total + * * p2p, no mchan, and mbss: * * #STA <= 1, #P2P-DEV <= 1, #{P2P-CL, P2P-GO} <= 1, channels = 1, 3 total @@ -6531,6 +6534,10 @@ brcmf_txrx_stypes[NUM_NL80211_IFTYPES] = { * #STA <= 1, #P2P-DEV <= 1, #{P2P-CL, P2P-GO} <= 1, channels = 2, 3 total * #STA <= 1, #P2P-DEV <= 1, #AP <= 1, #P2P-CL <= 1, channels = 1, 4 total * #AP <= 4, matching BI, channels = 1, 4 total + * + * p2p, rsdb, and no mbss: + * #STA <= 2, #P2P-DEV <= 1, #{P2P-CL, P2P-GO} <= 2, AP <= 2, + * channels = 2, 4 total */ static int brcmf_setup_ifmodes(struct wiphy *wiphy, struct brcmf_if *ifp) { @@ -6538,13 +6545,14 @@ static int brcmf_setup_ifmodes(struct wiphy *wiphy, struct brcmf_if *ifp) struct ieee80211_iface_limit *c0_limits = NULL; struct ieee80211_iface_limit *p2p_limits = NULL; struct ieee80211_iface_limit *mbss_limits = NULL; - bool mbss, p2p; + bool mbss, p2p, rsdb; int i, c, n_combos; mbss = brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MBSS); p2p = brcmf_feat_is_enabled(ifp, BRCMF_FEAT_P2P); + rsdb = brcmf_feat_is_enabled(ifp, BRCMF_FEAT_RSDB); - n_combos = 1 + !!p2p + !!mbss; + n_combos = 1 + !!(p2p && !rsdb) + !!mbss; combo = kcalloc(n_combos, sizeof(*combo), GFP_KERNEL); if (!combo) goto err; @@ -6555,16 +6563,36 @@ static int brcmf_setup_ifmodes(struct wiphy *wiphy, struct brcmf_if *ifp) c = 0; i = 0; - c0_limits = kcalloc(p2p ? 3 : 2, sizeof(*c0_limits), GFP_KERNEL); + if (p2p && rsdb) + c0_limits = kcalloc(4, sizeof(*c0_limits), GFP_KERNEL); + else if (p2p) + c0_limits = kcalloc(3, sizeof(*c0_limits), GFP_KERNEL); + else + c0_limits = kcalloc(2, sizeof(*c0_limits), GFP_KERNEL); if (!c0_limits) goto err; - c0_limits[i].max = 1; - c0_limits[i++].types = BIT(NL80211_IFTYPE_STATION); - if (p2p) { + if (p2p && rsdb) { + combo[c].num_different_channels = 2; + wiphy->interface_modes |= BIT(NL80211_IFTYPE_P2P_CLIENT) | + BIT(NL80211_IFTYPE_P2P_GO) | + BIT(NL80211_IFTYPE_P2P_DEVICE); + c0_limits[i].max = 2; + c0_limits[i++].types = BIT(NL80211_IFTYPE_STATION); + c0_limits[i].max = 1; + c0_limits[i++].types = BIT(NL80211_IFTYPE_P2P_DEVICE); + c0_limits[i].max = 2; + c0_limits[i++].types = BIT(NL80211_IFTYPE_P2P_CLIENT) | + BIT(NL80211_IFTYPE_P2P_GO); + c0_limits[i].max = 2; + c0_limits[i++].types = BIT(NL80211_IFTYPE_AP); + combo[c].max_interfaces = 5; + } else if (p2p) { if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MCHAN)) combo[c].num_different_channels = 2; else combo[c].num_different_channels = 1; + c0_limits[i].max = 1; + c0_limits[i++].types = BIT(NL80211_IFTYPE_STATION); wiphy->interface_modes |= BIT(NL80211_IFTYPE_P2P_CLIENT) | BIT(NL80211_IFTYPE_P2P_GO) | BIT(NL80211_IFTYPE_P2P_DEVICE); @@ -6573,16 +6601,26 @@ static int brcmf_setup_ifmodes(struct wiphy *wiphy, struct brcmf_if *ifp) c0_limits[i].max = 1; c0_limits[i++].types = BIT(NL80211_IFTYPE_P2P_CLIENT) | BIT(NL80211_IFTYPE_P2P_GO); + combo[c].max_interfaces = i; + } else if (rsdb) { + combo[c].num_different_channels = 2; + c0_limits[i].max = 2; + c0_limits[i++].types = BIT(NL80211_IFTYPE_STATION); + c0_limits[i].max = 2; + c0_limits[i++].types = BIT(NL80211_IFTYPE_AP); + combo[c].max_interfaces = 3; } else { combo[c].num_different_channels = 1; c0_limits[i].max = 1; + c0_limits[i++].types = BIT(NL80211_IFTYPE_STATION); + c0_limits[i].max = 1; c0_limits[i++].types = BIT(NL80211_IFTYPE_AP); + combo[c].max_interfaces = i; } - combo[c].max_interfaces = i; combo[c].n_limits = i; combo[c].limits = c0_limits; - if (p2p) { + if (p2p && !rsdb) { c++; i = 0; p2p_limits = kcalloc(4, sizeof(*p2p_limits), GFP_KERNEL); From patchwork Mon Dec 9 22:38:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?S=C3=B6ren_Moch?= X-Patchwork-Id: 1206694 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=web.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=web.de header.i=@web.de header.b="JBqoF1NY"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47Wylv4BKkz9sQp for ; Tue, 10 Dec 2019 09:38:51 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727198AbfLIWio (ORCPT ); Mon, 9 Dec 2019 17:38:44 -0500 Received: from mout.web.de ([212.227.15.4]:59763 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727168AbfLIWin (ORCPT ); Mon, 9 Dec 2019 17:38:43 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1575931115; bh=SSeAMdCB1BI0vkLB1ST1678SOkLJZQ2JmPrRyeRBBYc=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=JBqoF1NY8KbCvHeRBd7aa1W4xBStxE6LbZPWng5vycoBbLoHUv0kPZyte5F+U3xQ0 7PUCkm8ByPmlCV9mo3dNc9IDGcULYX6HMb690G92+egAEvRO80bXiRDQT0c0gMXypO 3h+NWQhBte154UPkdf/PGY1H+pScE55xQaIyQNAM= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from localhost.localdomain ([89.204.137.56]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MEIQq-1iXt9n0pUe-00FTnj; Mon, 09 Dec 2019 23:38:35 +0100 From: Soeren Moch To: Kalle Valo Cc: Soeren Moch , Wright Feng , Arend van Spriel , Franky Lin , Hante Meuleman , Chi-Hsien Lin , linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com, brcm80211-dev-list@cypress.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 7/8] brcmfmac: not set mbss in vif if firmware does not support MBSS Date: Mon, 9 Dec 2019 23:38:21 +0100 Message-Id: <20191209223822.27236-7-smoch@web.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191209223822.27236-1-smoch@web.de> References: <20191209223822.27236-1-smoch@web.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:6++YHmrTlcLgclZZagPILW3aNmSthZq6p58mEA5GH9f4DaqT0Rn p5kid7pqxc18d7WLWHprDHWEGzQXEUI3eFfXmpfrzqx5xmqA4KmM1JiUYPCKHFOf0iInnkE mgx38oZ9otELobLVHZkQHDP4fBwfvN+slStAWaH8JjV6+nDXp8S3omcZfMKJv+holEvA0Mj HSMjJjHm8pdg+zsxIWCRA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:PpPtRcmL2Dk=:ZxRx6iZ+89cT/TEvSSrbyC kdcHHvouNJ+4QThb/cU6xXEGhulP2X8j3VN3dLCmPcQ7dI/OGha7lWuBWFZsIqWAFokl+TX1w ns2mdTrdcbpia41YU43F3mliYwpMWqpxXqZzTtvu5/+WGnXVVm/Eq80mW//DPqL058NTsOONl fN1BsocRYLCBzvUpBrBTtLfaiT8nG5wIVFWDh+YyGOmFRwpp/NkkUXHtNmRTDlMvxVe1uSQcH zQrsjE77kY6ZKrSAgvlDRBnuVKX2YbkoNre+/POOSnC/9SCvniZJXe2W5hywoRVaEdoBakKVD GoZ5nwQAwYwViKKlKlKgVD4sLObmqdpqd7o8Y0in5yb7vaVMN4C2ZU7ZUHDvX83sjqnSlaHG0 bv17Zrsro+woqoH+QXTcFtsIxUNZnV30yD5skNY5Hfu8Vqufi2iSMq9obR65C/ajyFieRESyz bhbUxErjqLBVA5dzq/VopQ27kcS7Z9UgHu726Oha0Gf/X94MZ1wbcFMpCvqWG7AkqvaJY6tpm l+X3TZ2B1LdZ8J95uWtDSxlDHXGomjv6fqIu2wnLCy9vrEYws6IsjlU9bvvLlUBFjpMIrcNGH lr6N3gp30ZPzhiFzgrRhnAlGm7NqhP2Rzc1wxEkbuVEBaGslr3yR494XO6rYQS/NKhHaPmUFd 3v5VyogWCwXOreg/M/zjsXebk9cjHKGfK2BoQHRgAhnpGTj1AErMpXKNHC89GbquF8MDcBkb0 80f5JQk+e7p1zmRHC3j2CQ75ILZz33XTqdm1kzIRC32/twPN/HwGuQa5zMGf9ZazgRrY8Ck2I y7m0CCY5ffQMFjteiGryoh/srNsPbDhgX2io1/dGX66XujH4FCpWUUnYNilFtYYwjE0agZAD9 y275EANsY567Oy8k2ncmNUc7aypkCbPYPqbbAenLYMUvRvrz5ERQvrf57QZDqMHq9hUEp0yc7 o33UsTkNgNN1u4saJG05Pfi7NzmtNpeA5QVvOg+bXWBFTWCKKTVvf40ffsiKkZID5+/B5ptP2 9teLY7Q7Kx5+AGeYlD1zTMmMCvzP4o6ENV3BufqsBlTdgegQ82xReWvIHyvxMpFmy+7uLpecD N+V3hOrA4Qt6CfxjfpQHX27WQmrYztGuAeHLZ+SW4D5QVj3YDRUB36UhMSPYx/1YF+hs4fopL vi5nAxIYKzOE8Sot5uOgaAmDEHMsdxpo8ADy3Dpcwn22YIv/4rV3j84nImPidl1oF6PLQoScz D73qSg4WnqOs4thD1rKRPMHwchZ1eCgB1VgP8Bw== Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Wright Feng With RSDB mode, FMAC and firmware are able to create 2 or more AP, so we should not set mbss in vif structure if firmware does not support MBSS feature. Signed-off-by: Wright Feng Reviewed-by: Chi-Hsien Lin --- Cc: Kalle Valo Cc: Arend van Spriel Cc: Franky Lin Cc: Hante Meuleman Cc: Chi-Hsien Lin Cc: Wright Feng Cc: linux-wireless@vger.kernel.org Cc: brcm80211-dev-list.pdl@broadcom.com Cc: brcm80211-dev-list@cypress.com Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -- 2.17.1 diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index 9d9dc9195e9e..6eb3064c3721 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -5363,6 +5363,7 @@ struct brcmf_cfg80211_vif *brcmf_alloc_vif(struct brcmf_cfg80211_info *cfg, struct brcmf_cfg80211_vif *vif_walk; struct brcmf_cfg80211_vif *vif; bool mbss; + struct brcmf_if *ifp = brcmf_get_ifp(cfg->pub, 0); brcmf_dbg(TRACE, "allocating virtual interface (size=%zu)\n", sizeof(*vif)); @@ -5375,7 +5376,8 @@ struct brcmf_cfg80211_vif *brcmf_alloc_vif(struct brcmf_cfg80211_info *cfg, brcmf_init_prof(&vif->profile); - if (type == NL80211_IFTYPE_AP) { + if (type == NL80211_IFTYPE_AP && + brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MBSS)) { mbss = false; list_for_each_entry(vif_walk, &cfg->vif_list, list) { if (vif_walk->wdev.iftype == NL80211_IFTYPE_AP) { From patchwork Mon Dec 9 22:38:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?S=C3=B6ren_Moch?= X-Patchwork-Id: 1206695 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=web.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=web.de header.i=@web.de header.b="dXkT1kvs"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47Wylz3VXXz9sQp for ; Tue, 10 Dec 2019 09:38:55 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727225AbfLIWiu (ORCPT ); Mon, 9 Dec 2019 17:38:50 -0500 Received: from mout.web.de ([212.227.15.14]:57057 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727168AbfLIWis (ORCPT ); Mon, 9 Dec 2019 17:38:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1575931116; bh=iIcwtGZ7q6+1IJH8HBswoh2M79f+M/HgGj3GZwWb4cU=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=dXkT1kvsdkuwRbOxQScIQBPCRrzbGwdWzLu4BQCSuuEj0kG8RHK0rIZWCiDspQd5M 9amJoQ4CO5o7MG1TqhSYNwStoZZaHhMfqf0uvPjX5XoLlHJHLLDT2eQt3yi4GDBgEL kBbqE8GEr5gRE6W7jq5qBAxRSxnzotqcIuYJsxEs= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from localhost.localdomain ([89.204.137.56]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MhOpG-1iQe9W21cg-00MaZJ; Mon, 09 Dec 2019 23:38:36 +0100 From: Soeren Moch To: Kalle Valo Cc: Soeren Moch , Heiko Stuebner , linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com, brcm80211-dev-list@cypress.com, netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 8/8] arm64: dts: rockchip: RockPro64: enable wifi module at sdio0 Date: Mon, 9 Dec 2019 23:38:22 +0100 Message-Id: <20191209223822.27236-8-smoch@web.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191209223822.27236-1-smoch@web.de> References: <20191209223822.27236-1-smoch@web.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:JKaU5d2nwpiRHKBLzQOON+w/GWu5jnq3s0cFpfDnyxfLY+ReLv/ t12RKSkr3wPF+ZXfo6jgBaaUs/Sr54X1V8eD6PJaFVY+DgTx6VMLMd7g5I7Hayx91AKGzYd k5/EMQWsoV/viwnF71yh4jM1+SfgE876IVxnXgsSOJm4pDiJ4rGfqvo34S7gD5Dz5PhDPdm O10Y1Wx3Kr3rFf+Er7VvQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:0gjPZqsxZ3Y=:xsl37Z8u/T3zQJLs0iGiK/ StbtdO1MulGqkOI+0tC3R05+D2BpUsATmsbUwYvMTdMJ3OpzKLHfRDd68+QV3PPw2PgMwxOMQ VpBEc4yTRu71nhJLg1dVBwXFQKswD++aPVZhORWRtZJVzyTlFbMoSj0esJ/iZbsqUYZi7wfIY awg05E6yD76DgI1dWcu8OJpCiBzEaAEw+RnKQ5Xpf5AA9ej53O0JN2HEg2b6U45PBW3lbO6Ld zvq/bDtAcgnIZWEHx9AGXTGCsg70Rmy/+3Qg+wFhKx6jUDZPfoS6G3Dkffhedq/KZPF8nK7iG eomxsBW5LqiZjeiWZ8g5RP4GYJs3pDo3c5+wZSkHcBbKn6MV/2ho41pbe7wBQsau0fxnx5zv1 6Lv3jRNvabGS9On3sGpkBLqoAF6Z/mHjLQFoMJBo4YSbAIFyFCeNEXqFbaGdkK5romGqZtMnx G7t+nZERHayx5lS9jwBxfDjSfrsCRmPCiif7i+7LCvm8yXr0Xg6PVN7vckZ3As7TUSn6MK4ws XLlY7Pxi7yL39FL5e0T4DMS8iQm07ItTBluliHakdLdY9uVnd5kNJK3w/9rdFMo0yeGuGDgxg 7y4KDtPKk6CA5Y4lJaeuQnIAwwqX2eRCZMv6ybx01MK/VJTALX4Gq+yacxQF0ugsgEOOM227D jWiLxIeaxUJ3uNIME4qiGPQsbre8UoL4ktZzkrqhmda3AQXQMRhB1utmVP5I55YJWB6FQ1BfR Mr5iI1kkSe8S90bv1BYE+RLxrcyW15NuOPGvjA6rILHH7iespmAjLPpZuWX9UbQPPEABU/l+b 5t6txaPL48St70RlCaXyt7hZTvBW7zqM0m97OM2TkTG9y7GhdvZlDEdKZCTlsBt90P/4b3+K5 zV8Hj/s8t3J8Qwgcbjl0hzuZrSqySpjqixTY+UChyQCn5mWzv9XbbeSAim3v/pr0dUvUh6A9W ke1lp7aR6krzNhehMW425OFITdJLWWRuNxuJZ5W6Y5BqCdtk0N3eD6mxMrfY1E4iLL2uIFMI6 xkRoqTp4UpoTsXLD7uuaLOZtv7VBPFaeAqhgNX9U57R1HKY2gqEtzc5v8QvODnm4tqkCbJbUe x7LcBmKEXxNOayGev5jeN0fv/PdgLlSuzuF7/uSs+LkiMuoa81CQHIGEth1eoBf1hqhQgQtZf Nov8rQce8IcauTPloExst3Jp5mukVxxMTCBUioixs79KP1H3m+8rsf2p07s9mkEvvhVNyS/DA S0zQ1hJ9bCHz3dLOuyHMO/ZL6CGjuHij7UNTIMA== Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org RockPro64 supports an Ampak AP6359SA based wifi/bt combo module. The BCM4359/9 wifi controller in this module is connected to sdio0, enable this interface. Signed-off-by: Soeren Moch --- Not sure where to place exactly the sdio0 node in the dts because existing sd nodes are not sorted alphabetically. This last patch in this brcmfmac patch series probably should be picked up by Heiko independently of the rest of this series. It was sent together to show how this brcmfmac extension for 4359-sdio support with RSDB is used and tested. Cc: Heiko Stuebner Cc: Kalle Valo Cc: linux-wireless@vger.kernel.org Cc: brcm80211-dev-list.pdl@broadcom.com Cc: brcm80211-dev-list@cypress.com Cc: netdev@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-rockchip@lists.infradead.org Cc: linux-kernel@vger.kernel.org --- .../boot/dts/rockchip/rk3399-rockpro64.dts | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) -- 2.17.1 diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts index 7f4b2eba31d4..9fa92790d6e0 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts @@ -71,13 +71,6 @@ clock-names = "ext_clock"; pinctrl-names = "default"; pinctrl-0 = <&wifi_enable_h>; - - /* - * On the module itself this is one of these (depending - * on the actual card populated): - * - SDIO_RESET_L_WL_REG_ON - * - PDN (power down when low) - */ reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; }; @@ -650,6 +643,20 @@ status = "okay"; }; +&sdio0 { + bus-width = <4>; + cap-sd-highspeed; + cap-sdio-irq; + disable-wp; + keep-power-in-suspend; + mmc-pwrseq = <&sdio_pwrseq>; + non-removable; + pinctrl-names = "default"; + pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; + sd-uhs-sdr104; + status = "okay"; +}; + &sdmmc { bus-width = <4>; cap-sd-highspeed;