projects
/
openwrt
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mac80211: brcm: backport first set of 5.4 brcmfmac changes
[openwrt/openwrt.git]
/
package
/
kernel
/
mac80211
/
patches
/
brcm
/
860-brcmfmac-register-wiphy-s-during-module_init.patch
diff --git
a/package/kernel/mac80211/patches/brcm/860-brcmfmac-register-wiphy-s-during-module_init.patch
b/package/kernel/mac80211/patches/brcm/860-brcmfmac-register-wiphy-s-during-module_init.patch
index 6452d81db5f22190d29fcefb4ddaf3064cb6b38d..9af8df142fafb22859a0151b251b06a65e3961a6 100644
(file)
--- a/
package/kernel/mac80211/patches/brcm/860-brcmfmac-register-wiphy-s-during-module_init.patch
+++ b/
package/kernel/mac80211/patches/brcm/860-brcmfmac-register-wiphy-s-during-module_init.patch
@@
-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
-@@ -1
347,6 +1347
,7 @@ int __init brcmf_core_init(void)
+@@ -1
425,6 +1425
,7 @@ int __init brcmf_core_init(void)
{
if (!schedule_work(&brcmf_driver_work))
return -EBUSY;
{
if (!schedule_work(&brcmf_driver_work))
return -EBUSY;
@@
-23,7
+23,7
@@
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
}
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
-@@ -4
42,6 +442
,7 @@ struct brcmf_fw {
+@@ -4
31,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 brcmf_fw_request *req;
u32 curpos;
void (*done)(struct device *dev, int err, struct brcmf_fw_request *req);
@@
-31,7
+31,7
@@
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
};
static void brcmf_fw_request_done(const struct firmware *fw, void *ctx);
};
static void brcmf_fw_request_done(const struct firmware *fw, void *ctx);
-@@ -6
49,6 +650
,8 @@ static void brcmf_fw_request_done(const
+@@ -6
38,6 +639
,8 @@ static void brcmf_fw_request_done(const
fwctx->req = NULL;
}
fwctx->done(fwctx->dev, ret, fwctx->req);
fwctx->req = NULL;
}
fwctx->done(fwctx->dev, ret, fwctx->req);
@@
-40,15
+40,16
@@
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
kfree(fwctx);
}
kfree(fwctx);
}
-@@ -6
73,6 +676,7
@@ int brcmf_fw_get_firmwares(struct device
+@@ -6
62,6 +665,8
@@ int brcmf_fw_get_firmwares(struct device
{
struct brcmf_fw_item *first = &req->items[0];
struct brcmf_fw *fwctx;
+ struct completion completion;
{
struct brcmf_fw_item *first = &req->items[0];
struct brcmf_fw *fwctx;
+ struct completion completion;
++ unsigned long time_left;
int ret;
brcmf_dbg(TRACE, "enter: dev=%s\n", dev_name(dev));
int ret;
brcmf_dbg(TRACE, "enter: dev=%s\n", dev_name(dev));
-@@ -6
89,6 +69
3,9 @@ int brcmf_fw_get_firmwares(struct device
+@@ -6
78,6 +68
3,9 @@ int brcmf_fw_get_firmwares(struct device
fwctx->dev = dev;
fwctx->req = req;
fwctx->done = fw_cb;
fwctx->dev = dev;
fwctx->req = req;
fwctx->done = fw_cb;
@@
-58,11
+59,15
@@
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
ret = request_firmware_nowait(THIS_MODULE, true, first->path,
fwctx->dev, GFP_KERNEL, fwctx,
ret = request_firmware_nowait(THIS_MODULE, true, first->path,
fwctx->dev, GFP_KERNEL, fwctx,
-@@ -6
96,6 +703,8
@@ int brcmf_fw_get_firmwares(struct device
+@@ -6
85,6 +693,12
@@ int brcmf_fw_get_firmwares(struct device
if (ret < 0)
brcmf_fw_request_done(NULL, fwctx);
if (ret < 0)
brcmf_fw_request_done(NULL, fwctx);
-+ wait_for_completion_timeout(&completion, msecs_to_jiffies(5000));
++
++ time_left = wait_for_completion_timeout(&completion,
++ msecs_to_jiffies(5000));
++ if (!time_left && fwctx)
++ fwctx->completion = NULL;
+
return 0;
}
+
return 0;
}