mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2025-10-08 02:42:10 -04:00
This updates mac80211 to version 5.15.33-1 which is based on kernel 5.15.33. The removed patches were applied upstream. This new release contains many fixes which were merged into the upstream Linux kernel. This also contains the following new drivers which are needed for ath11k: * net/qrtr/ * drivers/bus/mhi/ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
65 lines
1.7 KiB
Diff
65 lines
1.7 KiB
Diff
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
|
|
Date: Mon, 8 Jun 2015 16:11:40 +0200
|
|
Subject: [PATCH] brcmfmac: register wiphy(s) during module_init
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
This is needed by OpenWrt which expects all PHYs to be created after
|
|
module loads successfully.
|
|
|
|
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
|
---
|
|
|
|
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
|
|
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
|
|
@@ -431,6 +431,7 @@ struct brcmf_fw {
|
|
struct brcmf_fw_request *req;
|
|
u32 curpos;
|
|
void (*done)(struct device *dev, int err, struct brcmf_fw_request *req);
|
|
+ struct completion *completion;
|
|
};
|
|
|
|
#ifdef CONFIG_EFI
|
|
@@ -655,6 +656,8 @@ static void brcmf_fw_request_done(const
|
|
fwctx->req = NULL;
|
|
}
|
|
fwctx->done(fwctx->dev, ret, fwctx->req);
|
|
+ if (fwctx->completion)
|
|
+ complete(fwctx->completion);
|
|
kfree(fwctx);
|
|
}
|
|
|
|
@@ -695,6 +698,8 @@ int brcmf_fw_get_firmwares(struct device
|
|
{
|
|
struct brcmf_fw_item *first = &req->items[0];
|
|
struct brcmf_fw *fwctx;
|
|
+ struct completion completion;
|
|
+ unsigned long time_left;
|
|
char *alt_path = NULL;
|
|
int ret;
|
|
|
|
@@ -712,6 +717,9 @@ int brcmf_fw_get_firmwares(struct device
|
|
fwctx->dev = dev;
|
|
fwctx->req = req;
|
|
fwctx->done = fw_cb;
|
|
+
|
|
+ init_completion(&completion);
|
|
+ fwctx->completion = &completion;
|
|
|
|
/* First try alternative board-specific path if any */
|
|
if (fwctx->req->board_type)
|
|
@@ -730,6 +738,12 @@ int brcmf_fw_get_firmwares(struct device
|
|
if (ret < 0)
|
|
brcmf_fw_request_done(NULL, fwctx);
|
|
|
|
+
|
|
+ time_left = wait_for_completion_timeout(&completion,
|
|
+ msecs_to_jiffies(5000));
|
|
+ if (!time_left && fwctx)
|
|
+ fwctx->completion = NULL;
|
|
+
|
|
return 0;
|
|
}
|
|
|