mac80211: brcmfmac: backport some old patches from 2016
authorRafał Miłecki <rafal@milecki.pl>
Thu, 2 Feb 2017 08:21:13 +0000 (09:21 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Thu, 2 Feb 2017 08:45:59 +0000 (09:45 +0100)
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
package/kernel/mac80211/patches/356-0001-brcmfmac-avoid-maybe-uninitialized-warning-in-brcmf_.patch [new file with mode: 0644]
package/kernel/mac80211/patches/356-0002-brcmfmac-proto-add-callback-for-queuing-TX-data.patch [new file with mode: 0644]
package/kernel/mac80211/patches/356-0003-brcmfmac-print-name-of-connect-status-event.patch [new file with mode: 0644]
package/kernel/mac80211/patches/356-0004-brcmfmac-update-beacon-IE-after-bss-up-and-clear-whe.patch [new file with mode: 0644]
package/kernel/mac80211/patches/360-0001-brcmfmac-avoid-writing-channel-out-of-allocated-arra.patch
package/kernel/mac80211/patches/360-0003-brcmfmac-setup-wiphy-bands-after-registering-it-firs.patch
package/kernel/mac80211/patches/841-brcmfmac-use-wiphy_read_of_freq_limits.patch
package/kernel/mac80211/patches/860-brcmfmac-register-wiphy-s-during-module_init.patch

diff --git a/package/kernel/mac80211/patches/356-0001-brcmfmac-avoid-maybe-uninitialized-warning-in-brcmf_.patch b/package/kernel/mac80211/patches/356-0001-brcmfmac-avoid-maybe-uninitialized-warning-in-brcmf_.patch
new file mode 100644 (file)
index 0000000..e7ca4be
--- /dev/null
@@ -0,0 +1,43 @@
+From d3532ea6ce4ea501e421d130555e59edc2945f99 Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Tue, 18 Oct 2016 00:13:40 +0200
+Subject: [PATCH] brcmfmac: avoid maybe-uninitialized warning in
+ brcmf_cfg80211_start_ap
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+A bugfix added a sanity check around the assignment and use of the
+'is_11d' variable, which looks correct to me, but as the function is
+rather complex already, this confuses the compiler to the point where
+it can no longer figure out if the variable is always initialized
+correctly:
+
+brcm80211/brcmfmac/cfg80211.c: In function ‘brcmf_cfg80211_start_ap’:
+brcm80211/brcmfmac/cfg80211.c:4586:10: error: ‘is_11d’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
+
+This adds an initialization for the newly introduced case in which
+the variable should not really be used, in order to make the warning
+go away.
+
+Fixes: b3589dfe0212 ("brcmfmac: ignore 11d configuration errors")
+Cc: Hante Meuleman <hante.meuleman@broadcom.com>
+Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
+Cc: Kalle Valo <kvalo@codeaurora.org>
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+@@ -4516,7 +4516,7 @@ brcmf_cfg80211_start_ap(struct wiphy *wi
+       /* store current 11d setting */
+       if (brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_REGULATORY,
+                                 &ifp->vif->is_11d)) {
+-              supports_11d = false;
++              is_11d = supports_11d = false;
+       } else {
+               country_ie = brcmf_parse_tlvs((u8 *)settings->beacon.tail,
+                                             settings->beacon.tail_len,
diff --git a/package/kernel/mac80211/patches/356-0002-brcmfmac-proto-add-callback-for-queuing-TX-data.patch b/package/kernel/mac80211/patches/356-0002-brcmfmac-proto-add-callback-for-queuing-TX-data.patch
new file mode 100644 (file)
index 0000000..1662eb5
--- /dev/null
@@ -0,0 +1,174 @@
+From b073ac1fcf42376018f6db6acc885dfd2cc9ff02 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Mon, 26 Sep 2016 23:51:44 +0200
+Subject: [PATCH] brcmfmac: proto: add callback for queuing TX data
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+So far our core code was calling brcmf_fws_process_skb which wasn't
+a proper thing to do. If case of devices using msgbuf protocol fwsignal
+shouldn't be used. It was an unnecessary extra layer simply calling
+a protocol specifix txdata function.
+
+Please note we already have txdata callback, but it's used for calls
+between bcdc and fwsignal so it couldn't be simply used there.
+
+This makes core code more generic (instead of bcdc/fwsignal specific).
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c   | 12 ++++++++++++
+ drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c   |  8 +++++++-
+ .../net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c   | 15 +++++----------
+ .../net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.h   |  1 +
+ drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c |  6 +++---
+ drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.c  |  2 +-
+ drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.h  |  9 +++++++++
+ 7 files changed, 38 insertions(+), 15 deletions(-)
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c
+@@ -326,6 +326,17 @@ brcmf_proto_bcdc_hdrpull(struct brcmf_pu
+       return 0;
+ }
++static int brcmf_proto_bcdc_tx_queue_data(struct brcmf_pub *drvr, int ifidx,
++                                        struct sk_buff *skb)
++{
++      struct brcmf_if *ifp = brcmf_get_ifp(drvr, ifidx);
++
++      if (!brcmf_fws_queue_skbs(drvr->fws))
++              return brcmf_proto_txdata(drvr, ifidx, 0, skb);
++
++      return brcmf_fws_process_skb(ifp, skb);
++}
++
+ static int
+ brcmf_proto_bcdc_txdata(struct brcmf_pub *drvr, int ifidx, u8 offset,
+                       struct sk_buff *pktbuf)
+@@ -375,6 +386,7 @@ int brcmf_proto_bcdc_attach(struct brcmf
+       drvr->proto->hdrpull = brcmf_proto_bcdc_hdrpull;
+       drvr->proto->query_dcmd = brcmf_proto_bcdc_query_dcmd;
+       drvr->proto->set_dcmd = brcmf_proto_bcdc_set_dcmd;
++      drvr->proto->tx_queue_data = brcmf_proto_bcdc_tx_queue_data;
+       drvr->proto->txdata = brcmf_proto_bcdc_txdata;
+       drvr->proto->configure_addr_mode = brcmf_proto_bcdc_configure_addr_mode;
+       drvr->proto->delete_peer = brcmf_proto_bcdc_delete_peer;
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
+@@ -239,7 +239,13 @@ static netdev_tx_t brcmf_netdev_start_xm
+       if (eh->h_proto == htons(ETH_P_PAE))
+               atomic_inc(&ifp->pend_8021x_cnt);
+-      ret = brcmf_fws_process_skb(ifp, skb);
++      /* determine the priority */
++      if ((skb->priority == 0) || (skb->priority > 7))
++              skb->priority = cfg80211_classify8021d(skb, NULL);
++
++      ret = brcmf_proto_tx_queue_data(drvr, ifp->ifidx, skb);
++      if (ret < 0)
++              brcmf_txfinalize(ifp, skb, false);
+ done:
+       if (ret) {
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
+@@ -2100,16 +2100,6 @@ int brcmf_fws_process_skb(struct brcmf_i
+       int rc = 0;
+       brcmf_dbg(DATA, "tx proto=0x%X\n", ntohs(eh->h_proto));
+-      /* determine the priority */
+-      if ((skb->priority == 0) || (skb->priority > 7))
+-              skb->priority = cfg80211_classify8021d(skb, NULL);
+-
+-      if (fws->avoid_queueing) {
+-              rc = brcmf_proto_txdata(drvr, ifp->ifidx, 0, skb);
+-              if (rc < 0)
+-                      brcmf_txfinalize(ifp, skb, false);
+-              return rc;
+-      }
+       /* set control buffer information */
+       skcb->if_flags = 0;
+@@ -2442,6 +2432,11 @@ void brcmf_fws_deinit(struct brcmf_pub *
+       kfree(fws);
+ }
++bool brcmf_fws_queue_skbs(struct brcmf_fws_info *fws)
++{
++      return !fws->avoid_queueing;
++}
++
+ bool brcmf_fws_fc_active(struct brcmf_fws_info *fws)
+ {
+       if (!fws->creditmap_received)
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.h
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.h
+@@ -20,6 +20,7 @@
+ int brcmf_fws_init(struct brcmf_pub *drvr);
+ void brcmf_fws_deinit(struct brcmf_pub *drvr);
++bool brcmf_fws_queue_skbs(struct brcmf_fws_info *fws);
+ bool brcmf_fws_fc_active(struct brcmf_fws_info *fws);
+ void brcmf_fws_hdrpull(struct brcmf_if *ifp, s16 siglen, struct sk_buff *skb);
+ int brcmf_fws_process_skb(struct brcmf_if *ifp, struct sk_buff *skb);
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
+@@ -782,8 +782,8 @@ static int brcmf_msgbuf_schedule_txdata(
+ }
+-static int brcmf_msgbuf_txdata(struct brcmf_pub *drvr, int ifidx,
+-                             u8 offset, struct sk_buff *skb)
++static int brcmf_msgbuf_tx_queue_data(struct brcmf_pub *drvr, int ifidx,
++                                    struct sk_buff *skb)
+ {
+       struct brcmf_msgbuf *msgbuf = (struct brcmf_msgbuf *)drvr->proto->pd;
+       struct brcmf_flowring *flow = msgbuf->flow;
+@@ -1467,7 +1467,7 @@ int brcmf_proto_msgbuf_attach(struct brc
+       drvr->proto->hdrpull = brcmf_msgbuf_hdrpull;
+       drvr->proto->query_dcmd = brcmf_msgbuf_query_dcmd;
+       drvr->proto->set_dcmd = brcmf_msgbuf_set_dcmd;
+-      drvr->proto->txdata = brcmf_msgbuf_txdata;
++      drvr->proto->tx_queue_data = brcmf_msgbuf_tx_queue_data;
+       drvr->proto->configure_addr_mode = brcmf_msgbuf_configure_addr_mode;
+       drvr->proto->delete_peer = brcmf_msgbuf_delete_peer;
+       drvr->proto->add_tdls_peer = brcmf_msgbuf_add_tdls_peer;
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.c
+@@ -51,7 +51,7 @@ int brcmf_proto_attach(struct brcmf_pub
+                         drvr->bus_if->proto_type);
+               goto fail;
+       }
+-      if ((proto->txdata == NULL) || (proto->hdrpull == NULL) ||
++      if (!proto->tx_queue_data || (proto->hdrpull == NULL) ||
+           (proto->query_dcmd == NULL) || (proto->set_dcmd == NULL) ||
+           (proto->configure_addr_mode == NULL) ||
+           (proto->delete_peer == NULL) || (proto->add_tdls_peer == NULL)) {
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.h
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.h
+@@ -33,6 +33,8 @@ struct brcmf_proto {
+                         void *buf, uint len);
+       int (*set_dcmd)(struct brcmf_pub *drvr, int ifidx, uint cmd, void *buf,
+                       uint len);
++      int (*tx_queue_data)(struct brcmf_pub *drvr, int ifidx,
++                           struct sk_buff *skb);
+       int (*txdata)(struct brcmf_pub *drvr, int ifidx, u8 offset,
+                     struct sk_buff *skb);
+       void (*configure_addr_mode)(struct brcmf_pub *drvr, int ifidx,
+@@ -74,6 +76,13 @@ static inline int brcmf_proto_set_dcmd(s
+ {
+       return drvr->proto->set_dcmd(drvr, ifidx, cmd, buf, len);
+ }
++
++static inline int brcmf_proto_tx_queue_data(struct brcmf_pub *drvr, int ifidx,
++                                          struct sk_buff *skb)
++{
++      return drvr->proto->tx_queue_data(drvr, ifidx, skb);
++}
++
+ static inline int brcmf_proto_txdata(struct brcmf_pub *drvr, int ifidx,
+                                    u8 offset, struct sk_buff *skb)
+ {
diff --git a/package/kernel/mac80211/patches/356-0003-brcmfmac-print-name-of-connect-status-event.patch b/package/kernel/mac80211/patches/356-0003-brcmfmac-print-name-of-connect-status-event.patch
new file mode 100644 (file)
index 0000000..1b2587b
--- /dev/null
@@ -0,0 +1,62 @@
+From e1c122d55f9ec5608ca98a9a846fd39cdf3ed7d7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Fri, 14 Oct 2016 09:45:59 +0200
+Subject: [PATCH] brcmfmac: print name of connect status event
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This simplifies debugging. Format %s (%u) comes from similar debugging
+message in brcmf_fweh_event_worker.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 3 ++-
+ drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c     | 4 ++--
+ drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.h     | 2 ++
+ 3 files changed, 6 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+@@ -5506,7 +5506,8 @@ brcmf_notify_connect_status_ap(struct br
+       u32 reason = e->reason;
+       struct station_info sinfo;
+-      brcmf_dbg(CONN, "event %d, reason %d\n", event, reason);
++      brcmf_dbg(CONN, "event %s (%u), reason %d\n",
++                brcmf_fweh_event_name(event), event, reason);
+       if (event == BRCMF_E_LINK && reason == BRCMF_E_REASON_LINK_BSSCFG_DIS &&
+           ndev != cfg_to_ndev(cfg)) {
+               brcmf_dbg(CONN, "AP mode link down\n");
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c
+@@ -69,7 +69,7 @@ static struct brcmf_fweh_event_name fweh
+  *
+  * @code: code to lookup.
+  */
+-static const char *brcmf_fweh_event_name(enum brcmf_fweh_event_code code)
++const char *brcmf_fweh_event_name(enum brcmf_fweh_event_code code)
+ {
+       int i;
+       for (i = 0; i < ARRAY_SIZE(fweh_event_names); i++) {
+@@ -79,7 +79,7 @@ static const char *brcmf_fweh_event_name
+       return "unknown";
+ }
+ #else
+-static const char *brcmf_fweh_event_name(enum brcmf_fweh_event_code code)
++const char *brcmf_fweh_event_name(enum brcmf_fweh_event_code code)
+ {
+       return "nodebug";
+ }
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.h
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.h
+@@ -287,6 +287,8 @@ struct brcmf_fweh_info {
+                                        void *data);
+ };
++const char *brcmf_fweh_event_name(enum brcmf_fweh_event_code code);
++
+ void brcmf_fweh_attach(struct brcmf_pub *drvr);
+ void brcmf_fweh_detach(struct brcmf_pub *drvr);
+ int brcmf_fweh_register(struct brcmf_pub *drvr, enum brcmf_fweh_event_code code,
diff --git a/package/kernel/mac80211/patches/356-0004-brcmfmac-update-beacon-IE-after-bss-up-and-clear-whe.patch b/package/kernel/mac80211/patches/356-0004-brcmfmac-update-beacon-IE-after-bss-up-and-clear-whe.patch
new file mode 100644 (file)
index 0000000..01024f1
--- /dev/null
@@ -0,0 +1,45 @@
+From f25ba69c638b24097840a96bd3caf5599f9a3616 Mon Sep 17 00:00:00 2001
+From: Wright Feng <wefe@cypress.com>
+Date: Fri, 18 Nov 2016 09:59:52 +0800
+Subject: [PATCH] brcmfmac: update beacon IE after bss up and clear when AP
+ stopped
+
+Firmware doesn't update beacon/Probe Response vendor IEs correctly when
+bss is down, so we move brcmf_config_ap_mgmt_ie after BSS up. And host
+driver should clear IEs when AP stopped so that the IEs in host side will
+be synced with in firmware side.
+
+Signed-off-by: Wright Feng <wright.feng@cypress.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+@@ -4578,8 +4578,6 @@ brcmf_cfg80211_start_ap(struct wiphy *wi
+               brcmf_configure_opensecurity(ifp);
+       }
+-      brcmf_config_ap_mgmt_ie(ifp->vif, &settings->beacon);
+-
+       /* Parameters shared by all radio interfaces */
+       if (!mbss) {
+               if ((supports_11d) && (is_11d != ifp->vif->is_11d)) {
+@@ -4708,6 +4706,7 @@ brcmf_cfg80211_start_ap(struct wiphy *wi
+               WARN_ON(1);
+       }
++      brcmf_config_ap_mgmt_ie(ifp->vif, &settings->beacon);
+       set_bit(BRCMF_VIF_STATUS_AP_CREATED, &ifp->vif->sme_state);
+       brcmf_net_setcarrier(ifp, true);
+@@ -4764,6 +4763,8 @@ static int brcmf_cfg80211_stop_ap(struct
+               err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_UP, 1);
+               if (err < 0)
+                       brcmf_err("BRCMF_C_UP error %d\n", err);
++
++              brcmf_vif_clear_mgmt_ies(ifp->vif);
+       } else {
+               bss_enable.bsscfgidx = cpu_to_le32(ifp->bsscfgidx);
+               bss_enable.enable = cpu_to_le32(0);
index 710979a738b27a69c7b2787920504317d3772d44..58af4d9078b86606ed24a41ff3e92c649efe25be 100644 (file)
@@ -28,7 +28,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -5913,7 +5913,6 @@ static int brcmf_construct_chaninfo(stru
+@@ -5915,7 +5915,6 @@ static int brcmf_construct_chaninfo(stru
        u32 i, j;
        u32 total;
        u32 chaninfo;
        u32 i, j;
        u32 total;
        u32 chaninfo;
@@ -36,7 +36,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
  
        pbuf = kzalloc(BRCMF_DCMD_MEDLEN, GFP_KERNEL);
  
  
        pbuf = kzalloc(BRCMF_DCMD_MEDLEN, GFP_KERNEL);
  
-@@ -5961,33 +5960,36 @@ static int brcmf_construct_chaninfo(stru
+@@ -5963,33 +5962,36 @@ static int brcmf_construct_chaninfo(stru
                    ch.bw == BRCMU_CHAN_BW_80)
                        continue;
  
                    ch.bw == BRCMU_CHAN_BW_80)
                        continue;
  
@@ -85,7 +85,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
                        ch.bw = BRCMU_CHAN_BW_20;
                        cfg->d11inf.encchspec(&ch);
                        chaninfo = ch.chspec;
                        ch.bw = BRCMU_CHAN_BW_20;
                        cfg->d11inf.encchspec(&ch);
                        chaninfo = ch.chspec;
-@@ -5995,11 +5997,11 @@ static int brcmf_construct_chaninfo(stru
+@@ -5997,11 +5999,11 @@ static int brcmf_construct_chaninfo(stru
                                                       &chaninfo);
                        if (!err) {
                                if (chaninfo & WL_CHAN_RADAR)
                                                       &chaninfo);
                        if (!err) {
                                if (chaninfo & WL_CHAN_RADAR)
index d7aa7e95589c6d26c1a4693706dbce8209693c0c..9c773bd16ff94c578a509ab96aaa24afbeee623b 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -6564,8 +6564,7 @@ static int brcmf_setup_wiphy(struct wiph
+@@ -6566,8 +6566,7 @@ static int brcmf_setup_wiphy(struct wiph
                        wiphy->bands[NL80211_BAND_5GHZ] = band;
                }
        }
                        wiphy->bands[NL80211_BAND_5GHZ] = band;
                }
        }
@@ -35,7 +35,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
  }
  
  static s32 brcmf_config_dongle(struct brcmf_cfg80211_info *cfg)
  }
  
  static s32 brcmf_config_dongle(struct brcmf_cfg80211_info *cfg)
-@@ -6930,6 +6929,12 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+@@ -6932,6 +6931,12 @@ struct brcmf_cfg80211_info *brcmf_cfg802
                goto priv_out;
        }
  
                goto priv_out;
        }
  
index af6e1be311511addb78dd362e84031ca7543de34..9f26a4964010f845e032b59a9383578bc6b79701 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -5974,6 +5974,9 @@ static int brcmf_construct_chaninfo(stru
+@@ -5976,6 +5976,9 @@ static int brcmf_construct_chaninfo(stru
                        continue;
                }
  
                        continue;
                }
  
@@ -19,7 +19,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
                /* assuming the chanspecs order is HT20,
                 * HT40 upper, HT40 lower, and VHT80.
                 */
                /* assuming the chanspecs order is HT20,
                 * HT40 upper, HT40 lower, and VHT80.
                 */
-@@ -6564,6 +6567,9 @@ static int brcmf_setup_wiphy(struct wiph
+@@ -6566,6 +6569,9 @@ static int brcmf_setup_wiphy(struct wiph
                        wiphy->bands[NL80211_BAND_5GHZ] = band;
                }
        }
                        wiphy->bands[NL80211_BAND_5GHZ] = band;
                }
        }
index f7f44f513f5e80f18f26c49073f916a435c6c534..d423cf5b56bea61646ccfbfc65b895b00fed34b7 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
-@@ -1200,6 +1200,7 @@ int __init brcmf_core_init(void)
+@@ -1206,6 +1206,7 @@ int __init brcmf_core_init(void)
  {
        if (!schedule_work(&brcmf_driver_work))
                return -EBUSY;
  {
        if (!schedule_work(&brcmf_driver_work))
                return -EBUSY;