aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/brcm
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2020-04-18 23:36:48 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2020-05-21 14:39:34 +0200
commit64f343a881a95fd82359eeb81651a2845a8a2dc4 (patch)
tree382d1725d0cb640cb2cc776fa4537947ef6766b5 /package/kernel/mac80211/patches/brcm
parent9ca21dc7d59e2e0c7f97e440e71ea93c5275219b (diff)
downloadupstream-64f343a881a95fd82359eeb81651a2845a8a2dc4.tar.gz
upstream-64f343a881a95fd82359eeb81651a2845a8a2dc4.tar.bz2
upstream-64f343a881a95fd82359eeb81651a2845a8a2dc4.zip
mac80211: Update to version 5.6.8-1
This updates the mac80211 backport. The removed patches are already integrated in the upstream version. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Diffstat (limited to 'package/kernel/mac80211/patches/brcm')
-rw-r--r--package/kernel/mac80211/patches/brcm/112-v5.6-brcmfmac-set-interface-carrier-to-off-by-default.patch29
-rw-r--r--package/kernel/mac80211/patches/brcm/114-v5.6-0001-brcmfmac-reset-two-D11-cores-if-chip-has-two-D11-cor.patch121
-rw-r--r--package/kernel/mac80211/patches/brcm/114-v5.6-0002-brcmfmac-set-F2-blocksize-and-watermark-for-4359.patch79
-rw-r--r--package/kernel/mac80211/patches/brcm/114-v5.6-0003-brcmfmac-fix-rambase-for-4359-9.patch34
-rw-r--r--package/kernel/mac80211/patches/brcm/114-v5.6-0004-brcmfmac-make-errors-when-setting-roaming-parameters.patch42
-rw-r--r--package/kernel/mac80211/patches/brcm/114-v5.6-0005-brcmfmac-add-support-for-BCM4359-SDIO-chipset.patch75
-rw-r--r--package/kernel/mac80211/patches/brcm/114-v5.6-0006-brcmfmac-add-RSDB-condition-when-setting-interface-c.patch130
-rw-r--r--package/kernel/mac80211/patches/brcm/114-v5.6-0007-brcmfmac-not-set-mbss-in-vif-if-firmware-does-not-su.patch38
-rw-r--r--package/kernel/mac80211/patches/brcm/116-v5.6-brcmfmac-Keep-OOB-wake-interrupt-disabled-when-it-sh.patch66
-rw-r--r--package/kernel/mac80211/patches/brcm/117-v5.6-brcmfmac-use-true-false-for-bool-variable.patch27
-rw-r--r--package/kernel/mac80211/patches/brcm/119-v5.6-0001-brcmfmac-simplify-building-interface-combinations.patch103
-rw-r--r--package/kernel/mac80211/patches/brcm/119-v5.6-0002-brcmfmac-add-initial-support-for-monitor-mode.patch345
-rw-r--r--package/kernel/mac80211/patches/brcm/120-v5.6-brcmfmac-Remove-always-false-idx-0-statement.patch24
-rw-r--r--package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch2
-rw-r--r--package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch2
-rw-r--r--package/kernel/mac80211/patches/brcm/998-survey.patch8
16 files changed, 6 insertions, 1119 deletions
diff --git a/package/kernel/mac80211/patches/brcm/112-v5.6-brcmfmac-set-interface-carrier-to-off-by-default.patch b/package/kernel/mac80211/patches/brcm/112-v5.6-brcmfmac-set-interface-carrier-to-off-by-default.patch
deleted file mode 100644
index bb4782a7a4..0000000000
--- a/package/kernel/mac80211/patches/brcm/112-v5.6-brcmfmac-set-interface-carrier-to-off-by-default.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 8d9627b05b2c33e4468e65739eb7caf9c3f274d8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Tue, 10 Dec 2019 12:35:55 +0100
-Subject: [PATCH] brcmfmac: set interface carrier to off by default
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It's important as brcmfmac creates one main interface for each PHY and
-doesn't allow deleting it. Not setting carrier could result in other
-subsystems misbehaving (e.g. LEDs "netdev" trigger turning LED on).
-
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
-@@ -678,6 +678,8 @@ int brcmf_net_attach(struct brcmf_if *if
- goto fail;
- }
-
-+ netif_carrier_off(ndev);
-+
- netdev_set_priv_destructor(ndev, brcmf_cfg80211_free_netdev);
- brcmf_dbg(INFO, "%s: Broadcom Dongle Host Driver\n", ndev->name);
- return 0;
diff --git a/package/kernel/mac80211/patches/brcm/114-v5.6-0001-brcmfmac-reset-two-D11-cores-if-chip-has-two-D11-cor.patch b/package/kernel/mac80211/patches/brcm/114-v5.6-0001-brcmfmac-reset-two-D11-cores-if-chip-has-two-D11-cor.patch
deleted file mode 100644
index 19bf41ad9b..0000000000
--- a/package/kernel/mac80211/patches/brcm/114-v5.6-0001-brcmfmac-reset-two-D11-cores-if-chip-has-two-D11-cor.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From 1b8d2e0a9e4221b99eea375c079507ce8ef655f5 Mon Sep 17 00:00:00 2001
-From: Wright Feng <wright.feng@cypress.com>
-Date: Thu, 12 Dec 2019 00:52:45 +0100
-Subject: [PATCH 1/7] brcmfmac: reset two D11 cores if chip has two D11 cores
-
-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 <wright.feng@cypress.com>
-Signed-off-by: Soeren Moch <smoch@web.de>
-Reviewed-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.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(-)
-
---- 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(stru
- {
- 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(stru
- 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
- 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;
---- 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(voi
- 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);
---- 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_mappi
- 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)
-
diff --git a/package/kernel/mac80211/patches/brcm/114-v5.6-0002-brcmfmac-set-F2-blocksize-and-watermark-for-4359.patch b/package/kernel/mac80211/patches/brcm/114-v5.6-0002-brcmfmac-set-F2-blocksize-and-watermark-for-4359.patch
deleted file mode 100644
index 37ba7f360b..0000000000
--- a/package/kernel/mac80211/patches/brcm/114-v5.6-0002-brcmfmac-set-F2-blocksize-and-watermark-for-4359.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 172f6854551d48d1c9530f84513b421db944e714 Mon Sep 17 00:00:00 2001
-From: Chung-Hsien Hsu <stanley.hsu@cypress.com>
-Date: Thu, 12 Dec 2019 00:52:46 +0100
-Subject: [PATCH 2/7] brcmfmac: set F2 blocksize and watermark for 4359
-
-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 <stanley.hsu@cypress.com>
-[slightly adapted for rebase on mainline linux]
-Signed-off-by: Soeren Moch <smoch@web.de>
-Reviewed-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 6 +++++-
- .../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 15 +++++++++++++++
- 2 files changed, 20 insertions(+), 1 deletion(-)
-
---- 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(struc
- 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 brcm
- 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);
---- 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
-
-@@ -4208,6 +4210,19 @@ static void brcmf_sdio_firmware_callback
- 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);
diff --git a/package/kernel/mac80211/patches/brcm/114-v5.6-0003-brcmfmac-fix-rambase-for-4359-9.patch b/package/kernel/mac80211/patches/brcm/114-v5.6-0003-brcmfmac-fix-rambase-for-4359-9.patch
deleted file mode 100644
index 7e4e32ffdd..0000000000
--- a/package/kernel/mac80211/patches/brcm/114-v5.6-0003-brcmfmac-fix-rambase-for-4359-9.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 6647274ed995a172369cb04754eb5f8b85f68f6d Mon Sep 17 00:00:00 2001
-From: Soeren Moch <smoch@web.de>
-Date: Thu, 12 Dec 2019 00:52:47 +0100
-Subject: [PATCH 3/7] brcmfmac: fix rambase for 4359/9
-
-Newer 4359 chip revisions need a different rambase address.
-This fixes firmware download on such devices which fails otherwise.
-
-Signed-off-by: Soeren Moch <smoch@web.de>
-Acked-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- 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
- 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
- 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:
diff --git a/package/kernel/mac80211/patches/brcm/114-v5.6-0004-brcmfmac-make-errors-when-setting-roaming-parameters.patch b/package/kernel/mac80211/patches/brcm/114-v5.6-0004-brcmfmac-make-errors-when-setting-roaming-parameters.patch
deleted file mode 100644
index 76138fbc68..0000000000
--- a/package/kernel/mac80211/patches/brcm/114-v5.6-0004-brcmfmac-make-errors-when-setting-roaming-parameters.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From c12c8913d79c49ceccb38f42714d25b783833758 Mon Sep 17 00:00:00 2001
-From: Soeren Moch <smoch@web.de>
-Date: Thu, 12 Dec 2019 00:52:48 +0100
-Subject: [PATCH 4/7] brcmfmac: make errors when setting roaming parameters
- non-fatal
-
-4359 dongles do not support setting roaming parameters (error -52).
-Do not fail the 80211 configuration in this case.
-
-Signed-off-by: Soeren Moch <smoch@web.de>
-Acked-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 10 ++++------
- 1 file changed, 4 insertions(+), 6 deletions(-)
-
---- 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 brcm
- 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;
diff --git a/package/kernel/mac80211/patches/brcm/114-v5.6-0005-brcmfmac-add-support-for-BCM4359-SDIO-chipset.patch b/package/kernel/mac80211/patches/brcm/114-v5.6-0005-brcmfmac-add-support-for-BCM4359-SDIO-chipset.patch
deleted file mode 100644
index 0001fb17a7..0000000000
--- a/package/kernel/mac80211/patches/brcm/114-v5.6-0005-brcmfmac-add-support-for-BCM4359-SDIO-chipset.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From d4aef159394d5940bd7158ab789969dab82f7c76 Mon Sep 17 00:00:00 2001
-From: Soeren Moch <smoch@web.de>
-Date: Thu, 12 Dec 2019 00:52:49 +0100
-Subject: [PATCH 5/7] brcmfmac: add support for BCM4359 SDIO chipset
-
-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 <wright.feng@cypress.com>
-
-Signed-off-by: Soeren Moch <smoch@web.de>
-Acked-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
-Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 2 ++
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c | 1 +
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 ++
- include/linux/mmc/sdio_ids.h | 2 ++
- 4 files changed, 7 insertions(+)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-@@ -973,8 +973,10 @@ static const struct sdio_device_id brcmf
- 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),
-+ BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_CYPRESS_89359),
- { /* end: all zeroes */ }
- };
- MODULE_DEVICE_TABLE(sdio, brcmf_sdmmc_ids);
---- 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_
- 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);
---- 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_mappi
- 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)
- };
---- a/include/linux/mmc/sdio_ids.h
-+++ b/include/linux/mmc/sdio_ids.h
-@@ -41,8 +41,10 @@
- #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
-+#define SDIO_DEVICE_ID_CYPRESS_89359 0x4355
-
- #define SDIO_VENDOR_ID_INTEL 0x0089
- #define SDIO_DEVICE_ID_INTEL_IWMC3200WIMAX 0x1402
diff --git a/package/kernel/mac80211/patches/brcm/114-v5.6-0006-brcmfmac-add-RSDB-condition-when-setting-interface-c.patch b/package/kernel/mac80211/patches/brcm/114-v5.6-0006-brcmfmac-add-RSDB-condition-when-setting-interface-c.patch
deleted file mode 100644
index 09059defe5..0000000000
--- a/package/kernel/mac80211/patches/brcm/114-v5.6-0006-brcmfmac-add-RSDB-condition-when-setting-interface-c.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 837482e69a3f0d7cbc73922020012f83635f5ddb Mon Sep 17 00:00:00 2001
-From: Wright Feng <wright.feng@cypress.com>
-Date: Thu, 12 Dec 2019 00:52:50 +0100
-Subject: [PATCH 6/7] brcmfmac: add RSDB condition when setting interface
- combinations
-
-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 <wright.feng@cypress.com>
-Signed-off-by: Soeren Moch <smoch@web.de>
-Reviewed-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../broadcom/brcm80211/brcmfmac/cfg80211.c | 54 ++++++++++++++++---
- 1 file changed, 46 insertions(+), 8 deletions(-)
-
---- 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 wi
- 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 wi
-
- 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 wi
- 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);
diff --git a/package/kernel/mac80211/patches/brcm/114-v5.6-0007-brcmfmac-not-set-mbss-in-vif-if-firmware-does-not-su.patch b/package/kernel/mac80211/patches/brcm/114-v5.6-0007-brcmfmac-not-set-mbss-in-vif-if-firmware-does-not-su.patch
deleted file mode 100644
index 1870088bf6..0000000000
--- a/package/kernel/mac80211/patches/brcm/114-v5.6-0007-brcmfmac-not-set-mbss-in-vif-if-firmware-does-not-su.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 2635853ce4ab7654a77ab7080fb56de83408606b Mon Sep 17 00:00:00 2001
-From: Wright Feng <wright.feng@cypress.com>
-Date: Thu, 12 Dec 2019 00:52:51 +0100
-Subject: [PATCH 7/7] brcmfmac: not set mbss in vif if firmware does not
- support MBSS
-
-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 <wright.feng@cypress.com>
-Signed-off-by: Soeren Moch <smoch@web.de>
-Reviewed-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
---- 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_v
- 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_v
-
- 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) {
diff --git a/package/kernel/mac80211/patches/brcm/116-v5.6-brcmfmac-Keep-OOB-wake-interrupt-disabled-when-it-sh.patch b/package/kernel/mac80211/patches/brcm/116-v5.6-brcmfmac-Keep-OOB-wake-interrupt-disabled-when-it-sh.patch
deleted file mode 100644
index f579e16a7f..0000000000
--- a/package/kernel/mac80211/patches/brcm/116-v5.6-brcmfmac-Keep-OOB-wake-interrupt-disabled-when-it-sh.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From a32de68edab7b73ded850bcf76cdf6858e92a7e5 Mon Sep 17 00:00:00 2001
-From: Dmitry Osipenko <digetx@gmail.com>
-Date: Sun, 15 Dec 2019 21:42:24 +0300
-Subject: [PATCH] brcmfmac: Keep OOB wake-interrupt disabled when it shouldn't
- be enabled
-
-NVIDIA Tegra SoCs do not like when OOB wake is enabled and WiFi interface
-is in DOWN state during suspend. This results in a CPU hang on programming
-OOB wake-up state of the GPIO controller during of system's suspend.
-
-The solution is trivial: don't enable wake for the OOB interrupt when it
-should be disabled.
-
-This fixes hang on Tegra20 (Acer A500) and Tegra30 (Nexus 7) devices which
-are using BCM4329 and BCM4330 WiFi chips respectively.
-
-Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 10 +++++-----
- .../net/wireless/broadcom/brcm80211/brcmfmac/sdio.h | 1 -
- 2 files changed, 5 insertions(+), 6 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-@@ -120,7 +120,7 @@ int brcmf_sdiod_intr_register(struct brc
- brcmf_err("enable_irq_wake failed %d\n", ret);
- return ret;
- }
-- sdiodev->irq_wake = true;
-+ disable_irq_wake(pdata->oob_irq_nr);
-
- sdio_claim_host(sdiodev->func1);
-
-@@ -179,10 +179,6 @@ void brcmf_sdiod_intr_unregister(struct
- sdio_release_host(sdiodev->func1);
-
- sdiodev->oob_irq_requested = false;
-- if (sdiodev->irq_wake) {
-- disable_irq_wake(pdata->oob_irq_nr);
-- sdiodev->irq_wake = false;
-- }
- free_irq(pdata->oob_irq_nr, &sdiodev->func1->dev);
- sdiodev->irq_en = false;
- sdiodev->oob_irq_requested = false;
-@@ -1173,6 +1169,10 @@ static int brcmf_ops_sdio_resume(struct
- if (ret)
- brcmf_err("Failed to probe device on resume\n");
- } else {
-+ if (sdiodev->wowl_enabled &&
-+ sdiodev->settings->bus.sdio.oob_irq_supported)
-+ disable_irq_wake(sdiodev->settings->bus.sdio.oob_irq_nr);
-+
- brcmf_sdiod_freezer_off(sdiodev);
- }
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h
-@@ -178,7 +178,6 @@ struct brcmf_sdio_dev {
- bool sd_irq_requested;
- bool irq_en; /* irq enable flags */
- spinlock_t irq_en_lock;
-- bool irq_wake; /* irq wake enable flags */
- bool sg_support;
- uint max_request_size;
- ushort max_segment_count;
diff --git a/package/kernel/mac80211/patches/brcm/117-v5.6-brcmfmac-use-true-false-for-bool-variable.patch b/package/kernel/mac80211/patches/brcm/117-v5.6-brcmfmac-use-true-false-for-bool-variable.patch
deleted file mode 100644
index 0eb169c2d3..0000000000
--- a/package/kernel/mac80211/patches/brcm/117-v5.6-brcmfmac-use-true-false-for-bool-variable.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From b92c017deda819e45a0f054f6df6b53e645d7fe4 Mon Sep 17 00:00:00 2001
-From: zhengbin <zhengbin13@huawei.com>
-Date: Tue, 24 Dec 2019 22:16:06 +0800
-Subject: [PATCH] brcmfmac: use true,false for bool variable
-
-Fixes coccicheck warning:
-
-drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c:911:2-24: WARNING: Assignment of 0/1 to bool variable
-
-Reported-by: Hulk Robot <hulkci@huawei.com>
-Signed-off-by: zhengbin <zhengbin13@huawei.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
-@@ -908,7 +908,7 @@ static u8 brcmf_fws_hdrpush(struct brcmf
- wlh += wlh[1] + 2;
-
- if (entry->send_tim_signal) {
-- entry->send_tim_signal = 0;
-+ entry->send_tim_signal = false;
- wlh[0] = BRCMF_FWS_TYPE_PENDING_TRAFFIC_BMP;
- wlh[1] = BRCMF_FWS_TYPE_PENDING_TRAFFIC_BMP_LEN;
- wlh[2] = entry->mac_handle;
diff --git a/package/kernel/mac80211/patches/brcm/119-v5.6-0001-brcmfmac-simplify-building-interface-combinations.patch b/package/kernel/mac80211/patches/brcm/119-v5.6-0001-brcmfmac-simplify-building-interface-combinations.patch
deleted file mode 100644
index 73fc17aa5a..0000000000
--- a/package/kernel/mac80211/patches/brcm/119-v5.6-0001-brcmfmac-simplify-building-interface-combinations.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 24332f8068ff6df7f16aefee45d514de1de4de80 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Thu, 26 Dec 2019 14:30:49 +0100
-Subject: [PATCH] brcmfmac: simplify building interface combinations
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Move similar/duplicated code out of combination specific code blocks.
-This simplifies code a bit and allows adding more combinations later.
-A list of combinations remains unchanged.
-
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../broadcom/brcm80211/brcmfmac/cfg80211.c | 43 ++++++-------------
- 1 file changed, 14 insertions(+), 29 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -6547,12 +6547,13 @@ static int brcmf_setup_ifmodes(struct wi
- struct ieee80211_iface_limit *c0_limits = NULL;
- struct ieee80211_iface_limit *p2p_limits = NULL;
- struct ieee80211_iface_limit *mbss_limits = NULL;
-- bool mbss, p2p, rsdb;
-+ bool mbss, p2p, rsdb, mchan;
- 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);
-+ mchan = brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MCHAN);
-
- n_combos = 1 + !!(p2p && !rsdb) + !!mbss;
- combo = kcalloc(n_combos, sizeof(*combo), GFP_KERNEL);
-@@ -6562,6 +6563,10 @@ static int brcmf_setup_ifmodes(struct wi
- wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
- BIT(NL80211_IFTYPE_ADHOC) |
- BIT(NL80211_IFTYPE_AP);
-+ if (p2p)
-+ wiphy->interface_modes |= BIT(NL80211_IFTYPE_P2P_CLIENT) |
-+ BIT(NL80211_IFTYPE_P2P_GO) |
-+ BIT(NL80211_IFTYPE_P2P_DEVICE);
-
- c = 0;
- i = 0;
-@@ -6573,48 +6578,28 @@ static int brcmf_setup_ifmodes(struct wi
- c0_limits = kcalloc(2, sizeof(*c0_limits), GFP_KERNEL);
- if (!c0_limits)
- goto err;
-- 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);
-+
-+ combo[c].num_different_channels = 1 + (rsdb || (p2p && mchan));
-+ c0_limits[i].max = 1 + rsdb;
-+ c0_limits[i++].types = BIT(NL80211_IFTYPE_STATION);
-+ if (p2p) {
- c0_limits[i].max = 1;
- c0_limits[i++].types = BIT(NL80211_IFTYPE_P2P_DEVICE);
-- c0_limits[i].max = 2;
-+ c0_limits[i].max = 1 + rsdb;
- c0_limits[i++].types = BIT(NL80211_IFTYPE_P2P_CLIENT) |
- BIT(NL80211_IFTYPE_P2P_GO);
-+ }
-+ if (p2p && rsdb) {
- 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);
-- c0_limits[i].max = 1;
-- c0_limits[i++].types = BIT(NL80211_IFTYPE_P2P_DEVICE);
-- 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;
diff --git a/package/kernel/mac80211/patches/brcm/119-v5.6-0002-brcmfmac-add-initial-support-for-monitor-mode.patch b/package/kernel/mac80211/patches/brcm/119-v5.6-0002-brcmfmac-add-initial-support-for-monitor-mode.patch
deleted file mode 100644
index 0682c0b0ea..0000000000
--- a/package/kernel/mac80211/patches/brcm/119-v5.6-0002-brcmfmac-add-initial-support-for-monitor-mode.patch
+++ /dev/null
@@ -1,345 +0,0 @@
-From 20f2c5fa3af060401c72e444999470a4cab641cf Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Thu, 26 Dec 2019 14:30:50 +0100
-Subject: [PATCH] brcmfmac: add initial support for monitor mode
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Report monitor interface availability using cfg80211 and support it in
-the add_virtual_intf() and del_virtual_intf() callbacks. This new
-feature is conditional and depends on firmware flagging monitor packets.
-Receiving monitor frames is already handled by the brcmf_netif_mon_rx().
-
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../broadcom/brcm80211/brcmfmac/cfg80211.c | 112 ++++++++++++++++--
- .../broadcom/brcm80211/brcmfmac/core.c | 68 ++++++++++-
- .../broadcom/brcm80211/brcmfmac/core.h | 2 +
- .../broadcom/brcm80211/brcmfmac/feature.c | 1 +
- .../broadcom/brcm80211/brcmfmac/feature.h | 2 +
- .../broadcom/brcm80211/brcmfmac/fwil.h | 2 +
- 6 files changed, 174 insertions(+), 13 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -11,6 +11,7 @@
- #include <linux/vmalloc.h>
- #include <net/cfg80211.h>
- #include <net/netlink.h>
-+#include <uapi/linux/if_arp.h>
-
- #include <brcmu_utils.h>
- #include <defs.h>
-@@ -619,6 +620,82 @@ static bool brcmf_is_ibssmode(struct brc
- return vif->wdev.iftype == NL80211_IFTYPE_ADHOC;
- }
-
-+/**
-+ * brcmf_mon_add_vif() - create monitor mode virtual interface
-+ *
-+ * @wiphy: wiphy device of new interface.
-+ * @name: name of the new interface.
-+ */
-+static struct wireless_dev *brcmf_mon_add_vif(struct wiphy *wiphy,
-+ const char *name)
-+{
-+ struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
-+ struct brcmf_cfg80211_vif *vif;
-+ struct net_device *ndev;
-+ struct brcmf_if *ifp;
-+ int err;
-+
-+ if (cfg->pub->mon_if) {
-+ err = -EEXIST;
-+ goto err_out;
-+ }
-+
-+ vif = brcmf_alloc_vif(cfg, NL80211_IFTYPE_MONITOR);
-+ if (IS_ERR(vif)) {
-+ err = PTR_ERR(vif);
-+ goto err_out;
-+ }
-+
-+ ndev = alloc_netdev(sizeof(*ifp), name, NET_NAME_UNKNOWN, ether_setup);
-+ if (!ndev) {
-+ err = -ENOMEM;
-+ goto err_free_vif;
-+ }
-+ ndev->type = ARPHRD_IEEE80211_RADIOTAP;
-+ ndev->ieee80211_ptr = &vif->wdev;
-+ ndev->needs_free_netdev = true;
-+ ndev->priv_destructor = brcmf_cfg80211_free_netdev;
-+ SET_NETDEV_DEV(ndev, wiphy_dev(cfg->wiphy));
-+
-+ ifp = netdev_priv(ndev);
-+ ifp->vif = vif;
-+ ifp->ndev = ndev;
-+ ifp->drvr = cfg->pub;
-+
-+ vif->ifp = ifp;
-+ vif->wdev.netdev = ndev;
-+
-+ err = brcmf_net_mon_attach(ifp);
-+ if (err) {
-+ brcmf_err("Failed to attach %s device\n", ndev->name);
-+ free_netdev(ndev);
-+ goto err_free_vif;
-+ }
-+
-+ cfg->pub->mon_if = ifp;
-+
-+ return &vif->wdev;
-+
-+err_free_vif:
-+ brcmf_free_vif(vif);
-+err_out:
-+ return ERR_PTR(err);
-+}
-+
-+static int brcmf_mon_del_vif(struct wiphy *wiphy, struct wireless_dev *wdev)
-+{
-+ struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
-+ struct net_device *ndev = wdev->netdev;
-+
-+ ndev->netdev_ops->ndo_stop(ndev);
-+
-+ brcmf_net_detach(ndev, true);
-+
-+ cfg->pub->mon_if = NULL;
-+
-+ return 0;
-+}
-+
- static struct wireless_dev *brcmf_cfg80211_add_iface(struct wiphy *wiphy,
- const char *name,
- unsigned char name_assign_type,
-@@ -641,9 +718,10 @@ static struct wireless_dev *brcmf_cfg802
- case NL80211_IFTYPE_STATION:
- case NL80211_IFTYPE_AP_VLAN:
- case NL80211_IFTYPE_WDS:
-- case NL80211_IFTYPE_MONITOR:
- case NL80211_IFTYPE_MESH_POINT:
- return ERR_PTR(-EOPNOTSUPP);
-+ case NL80211_IFTYPE_MONITOR:
-+ return brcmf_mon_add_vif(wiphy, name);
- case NL80211_IFTYPE_AP:
- wdev = brcmf_ap_add_vif(wiphy, name, params);
- break;
-@@ -826,9 +904,10 @@ int brcmf_cfg80211_del_iface(struct wiph
- case NL80211_IFTYPE_STATION:
- case NL80211_IFTYPE_AP_VLAN:
- case NL80211_IFTYPE_WDS:
-- case NL80211_IFTYPE_MONITOR:
- case NL80211_IFTYPE_MESH_POINT:
- return -EOPNOTSUPP;
-+ case NL80211_IFTYPE_MONITOR:
-+ return brcmf_mon_del_vif(wiphy, wdev);
- case NL80211_IFTYPE_AP:
- return brcmf_cfg80211_del_ap_iface(wiphy, wdev);
- case NL80211_IFTYPE_P2P_CLIENT:
-@@ -6547,9 +6626,10 @@ static int brcmf_setup_ifmodes(struct wi
- struct ieee80211_iface_limit *c0_limits = NULL;
- struct ieee80211_iface_limit *p2p_limits = NULL;
- struct ieee80211_iface_limit *mbss_limits = NULL;
-- bool mbss, p2p, rsdb, mchan;
-- int i, c, n_combos;
-+ bool mon_flag, mbss, p2p, rsdb, mchan;
-+ int i, c, n_combos, n_limits;
-
-+ mon_flag = brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MONITOR_FLAG);
- 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);
-@@ -6563,6 +6643,8 @@ static int brcmf_setup_ifmodes(struct wi
- wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
- BIT(NL80211_IFTYPE_ADHOC) |
- BIT(NL80211_IFTYPE_AP);
-+ if (mon_flag)
-+ wiphy->interface_modes |= BIT(NL80211_IFTYPE_MONITOR);
- if (p2p)
- wiphy->interface_modes |= BIT(NL80211_IFTYPE_P2P_CLIENT) |
- BIT(NL80211_IFTYPE_P2P_GO) |
-@@ -6570,18 +6652,18 @@ static int brcmf_setup_ifmodes(struct wi
-
- c = 0;
- i = 0;
-- 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);
-+ n_limits = 1 + mon_flag + (p2p ? 2 : 0) + (rsdb || !p2p);
-+ c0_limits = kcalloc(n_limits, sizeof(*c0_limits), GFP_KERNEL);
- if (!c0_limits)
- goto err;
-
- combo[c].num_different_channels = 1 + (rsdb || (p2p && mchan));
- c0_limits[i].max = 1 + rsdb;
- c0_limits[i++].types = BIT(NL80211_IFTYPE_STATION);
-+ if (mon_flag) {
-+ c0_limits[i].max = 1;
-+ c0_limits[i++].types = BIT(NL80211_IFTYPE_MONITOR);
-+ }
- if (p2p) {
- c0_limits[i].max = 1;
- c0_limits[i++].types = BIT(NL80211_IFTYPE_P2P_DEVICE);
-@@ -6630,14 +6712,20 @@ static int brcmf_setup_ifmodes(struct wi
- if (mbss) {
- c++;
- i = 0;
-- mbss_limits = kcalloc(1, sizeof(*mbss_limits), GFP_KERNEL);
-+ n_limits = 1 + mon_flag;
-+ mbss_limits = kcalloc(n_limits, sizeof(*mbss_limits),
-+ GFP_KERNEL);
- if (!mbss_limits)
- goto err;
- mbss_limits[i].max = 4;
- mbss_limits[i++].types = BIT(NL80211_IFTYPE_AP);
-+ if (mon_flag) {
-+ mbss_limits[i].max = 1;
-+ mbss_limits[i++].types = BIT(NL80211_IFTYPE_MONITOR);
-+ }
- combo[c].beacon_int_infra_match = true;
- combo[c].num_different_channels = 1;
-- combo[c].max_interfaces = 4;
-+ combo[c].max_interfaces = 4 + mon_flag;
- combo[c].n_limits = i;
- combo[c].limits = mbss_limits;
- }
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
-@@ -690,7 +690,7 @@ fail:
- return -EBADE;
- }
-
--static void brcmf_net_detach(struct net_device *ndev, bool rtnl_locked)
-+void brcmf_net_detach(struct net_device *ndev, bool rtnl_locked)
- {
- if (ndev->reg_state == NETREG_REGISTERED) {
- if (rtnl_locked)
-@@ -703,6 +703,72 @@ static void brcmf_net_detach(struct net_
- }
- }
-
-+static int brcmf_net_mon_open(struct net_device *ndev)
-+{
-+ struct brcmf_if *ifp = netdev_priv(ndev);
-+ struct brcmf_pub *drvr = ifp->drvr;
-+ u32 monitor;
-+ int err;
-+
-+ brcmf_dbg(TRACE, "Enter\n");
-+
-+ err = brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_MONITOR, &monitor);
-+ if (err) {
-+ bphy_err(drvr, "BRCMF_C_GET_MONITOR error (%d)\n", err);
-+ return err;
-+ } else if (monitor) {
-+ bphy_err(drvr, "Monitor mode is already enabled\n");
-+ return -EEXIST;
-+ }
-+
-+ monitor = 3;
-+ err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_MONITOR, monitor);
-+ if (err)
-+ bphy_err(drvr, "BRCMF_C_SET_MONITOR error (%d)\n", err);
-+
-+ return err;
-+}
-+
-+static int brcmf_net_mon_stop(struct net_device *ndev)
-+{
-+ struct brcmf_if *ifp = netdev_priv(ndev);
-+ struct brcmf_pub *drvr = ifp->drvr;
-+ u32 monitor;
-+ int err;
-+
-+ brcmf_dbg(TRACE, "Enter\n");
-+
-+ monitor = 0;
-+ err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_MONITOR, monitor);
-+ if (err)
-+ bphy_err(drvr, "BRCMF_C_SET_MONITOR error (%d)\n", err);
-+
-+ return err;
-+}
-+
-+static const struct net_device_ops brcmf_netdev_ops_mon = {
-+ .ndo_open = brcmf_net_mon_open,
-+ .ndo_stop = brcmf_net_mon_stop,
-+};
-+
-+int brcmf_net_mon_attach(struct brcmf_if *ifp)
-+{
-+ struct brcmf_pub *drvr = ifp->drvr;
-+ struct net_device *ndev;
-+ int err;
-+
-+ brcmf_dbg(TRACE, "Enter\n");
-+
-+ ndev = ifp->ndev;
-+ ndev->netdev_ops = &brcmf_netdev_ops_mon;
-+
-+ err = register_netdevice(ndev);
-+ if (err)
-+ bphy_err(drvr, "Failed to register %s device\n", ndev->name);
-+
-+ return err;
-+}
-+
- void brcmf_net_setcarrier(struct brcmf_if *ifp, bool on)
- {
- struct net_device *ndev;
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h
-@@ -210,6 +210,8 @@ void brcmf_txflowblock_if(struct brcmf_i
- void brcmf_txfinalize(struct brcmf_if *ifp, struct sk_buff *txp, bool success);
- void brcmf_netif_rx(struct brcmf_if *ifp, struct sk_buff *skb);
- void brcmf_netif_mon_rx(struct brcmf_if *ifp, struct sk_buff *skb);
-+void brcmf_net_detach(struct net_device *ndev, bool rtnl_locked);
-+int brcmf_net_mon_attach(struct brcmf_if *ifp);
- void brcmf_net_setcarrier(struct brcmf_if *ifp, bool on);
- int __init brcmf_core_init(void);
- void __exit brcmf_core_exit(void);
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
-@@ -38,6 +38,7 @@ static const struct brcmf_feat_fwcap brc
- { BRCMF_FEAT_MCHAN, "mchan" },
- { BRCMF_FEAT_P2P, "p2p" },
- { BRCMF_FEAT_MONITOR, "monitor" },
-+ { BRCMF_FEAT_MONITOR_FLAG, "rtap" },
- { BRCMF_FEAT_MONITOR_FMT_RADIOTAP, "rtap" },
- { BRCMF_FEAT_DOT11H, "802.11h" },
- { BRCMF_FEAT_SAE, "sae" },
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h
-@@ -23,6 +23,7 @@
- * GSCAN: enhanced scan offload feature.
- * FWSUP: Firmware supplicant.
- * MONITOR: firmware can pass monitor packets to host.
-+ * MONITOR_FLAG: firmware flags monitor packets.
- * MONITOR_FMT_RADIOTAP: firmware provides monitor packets with radiotap header
- * MONITOR_FMT_HW_RX_HDR: firmware provides monitor packets with hw/ucode header
- * DOT11H: firmware supports 802.11h
-@@ -44,6 +45,7 @@
- BRCMF_FEAT_DEF(GSCAN) \
- BRCMF_FEAT_DEF(FWSUP) \
- BRCMF_FEAT_DEF(MONITOR) \
-+ BRCMF_FEAT_DEF(MONITOR_FLAG) \
- BRCMF_FEAT_DEF(MONITOR_FMT_RADIOTAP) \
- BRCMF_FEAT_DEF(MONITOR_FMT_HW_RX_HDR) \
- BRCMF_FEAT_DEF(DOT11H) \
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.h
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.h
-@@ -49,6 +49,8 @@
- #define BRCMF_C_GET_PM 85
- #define BRCMF_C_SET_PM 86
- #define BRCMF_C_GET_REVINFO 98
-+#define BRCMF_C_GET_MONITOR 107
-+#define BRCMF_C_SET_MONITOR 108
- #define BRCMF_C_GET_CURR_RATESET 114
- #define BRCMF_C_GET_AP 117
- #define BRCMF_C_SET_AP 118
diff --git a/package/kernel/mac80211/patches/brcm/120-v5.6-brcmfmac-Remove-always-false-idx-0-statement.patch b/package/kernel/mac80211/patches/brcm/120-v5.6-brcmfmac-Remove-always-false-idx-0-statement.patch
deleted file mode 100644
index 9efa762830..0000000000
--- a/package/kernel/mac80211/patches/brcm/120-v5.6-brcmfmac-Remove-always-false-idx-0-statement.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 627b0d094240c38393b2f2d40626c33a8fff6103 Mon Sep 17 00:00:00 2001
-From: yuehaibing <yuehaibing@huawei.com>
-Date: Wed, 8 Jan 2020 21:57:48 +0800
-Subject: [PATCH] brcmfmac: Remove always false 'idx < 0' statement
-
-idx is declared as u32, it will never less than 0.
-
-Signed-off-by: yuehaibing <yuehaibing@huawei.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
-@@ -365,7 +365,7 @@ brcmf_msgbuf_get_pktid(struct device *de
- struct brcmf_msgbuf_pktid *pktid;
- struct sk_buff *skb;
-
-- if (idx < 0 || idx >= pktids->array_size) {
-+ if (idx >= pktids->array_size) {
- brcmf_err("Invalid packet id %d (max %d)\n", idx,
- pktids->array_size);
- return NULL;
diff --git a/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch b/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch
index 37ebb5190b..81c170c43f 100644
--- a/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch
+++ b/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch
@@ -10,7 +10,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -705,8 +705,36 @@ static struct wireless_dev *brcmf_cfg802
+@@ -711,8 +711,36 @@ static struct wireless_dev *brcmf_cfg802
struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
struct brcmf_pub *drvr = cfg->pub;
struct wireless_dev *wdev;
diff --git a/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch b/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch
index 905fd4b56e..8120af3293 100644
--- a/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch
+++ b/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch
@@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -2936,6 +2936,10 @@ brcmf_cfg80211_set_power_mgmt(struct wip
+@@ -2942,6 +2942,10 @@ brcmf_cfg80211_set_power_mgmt(struct wip
* preference in cfg struct to apply this to
* FW later while initializing the dongle
*/
diff --git a/package/kernel/mac80211/patches/brcm/998-survey.patch b/package/kernel/mac80211/patches/brcm/998-survey.patch
index b98cb0632c..6cc370571d 100644
--- a/package/kernel/mac80211/patches/brcm/998-survey.patch
+++ b/package/kernel/mac80211/patches/brcm/998-survey.patch
@@ -1,6 +1,6 @@
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -2888,6 +2888,63 @@ done:
+@@ -2894,6 +2894,63 @@ done:
}
static int
@@ -64,7 +64,7 @@
brcmf_cfg80211_dump_station(struct wiphy *wiphy, struct net_device *ndev,
int idx, u8 *mac, struct station_info *sinfo)
{
-@@ -2977,6 +3034,7 @@ static s32 brcmf_inform_single_bss(struc
+@@ -2983,6 +3040,7 @@ static s32 brcmf_inform_single_bss(struc
struct brcmu_chan ch;
u16 channel;
u32 freq;
@@ -72,7 +72,7 @@
u16 notify_capability;
u16 notify_interval;
u8 *notify_ie;
-@@ -3001,6 +3059,17 @@ static s32 brcmf_inform_single_bss(struc
+@@ -3007,6 +3065,17 @@ static s32 brcmf_inform_single_bss(struc
band = NL80211_BAND_5GHZ;
freq = ieee80211_channel_to_frequency(channel, band);
@@ -90,7 +90,7 @@
bss_data.chan = ieee80211_get_channel(wiphy, freq);
bss_data.scan_width = NL80211_BSS_CHAN_WIDTH_20;
bss_data.boottime_ns = ktime_to_ns(ktime_get_boottime());
-@@ -5418,6 +5487,7 @@ static struct cfg80211_ops brcmf_cfg8021
+@@ -5424,6 +5493,7 @@ static struct cfg80211_ops brcmf_cfg8021
.leave_ibss = brcmf_cfg80211_leave_ibss,
.get_station = brcmf_cfg80211_get_station,
.dump_station = brcmf_cfg80211_dump_station,