mirror of https://github.com/hak5/openwrt-owl.git
mac80211: brcmfmac: backport some old patches from 2016
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
parent
e8f42223be
commit
e48b1c2c07
|
@ -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,
|
|
@ -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)
|
||||||
|
{
|
|
@ -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,
|
|
@ -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);
|
|
@ -28,7 +28,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||||
|
|
||||||
--- a/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
|
+++ 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 i, j;
|
||||||
u32 total;
|
u32 total;
|
||||||
u32 chaninfo;
|
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)
|
ch.bw == BRCMU_CHAN_BW_80)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||||
ch.bw = BRCMU_CHAN_BW_20;
|
ch.bw = BRCMU_CHAN_BW_20;
|
||||||
cfg->d11inf.encchspec(&ch);
|
cfg->d11inf.encchspec(&ch);
|
||||||
chaninfo = ch.chspec;
|
chaninfo = ch.chspec;
|
||||||
@@ -5995,11 +5997,11 @@ static int brcmf_construct_chaninfo(stru
|
@@ -5997,11 +5999,11 @@ static int brcmf_construct_chaninfo(stru
|
||||||
&chaninfo);
|
&chaninfo);
|
||||||
if (!err) {
|
if (!err) {
|
||||||
if (chaninfo & WL_CHAN_RADAR)
|
if (chaninfo & WL_CHAN_RADAR)
|
||||||
|
|
|
@ -25,7 +25,7 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||||
|
|
||||||
--- a/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
|
+++ 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||||
|
|
||||||
--- a/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
|
+++ 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,
|
/* assuming the chanspecs order is HT20,
|
||||||
* HT40 upper, HT40 lower, and VHT80.
|
* 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
||||||
|
|
||||||
--- a/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
|
+++ 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))
|
if (!schedule_work(&brcmf_driver_work))
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
|
|
Loading…
Reference in New Issue