mac80211: brcmfmac: fix support for up to 4 AP interfaces
[openwrt.git] / package / kernel / mac80211 / patches / 861-brcmfmac-register-wiphy-s-during-module_init.patch
index d60d3fa..0bfaae6 100644 (file)
@@ -11,19 +11,19 @@ module loads successfully.
 Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 ---
 
---- a/drivers/net/wireless/brcm80211/brcmfmac/core.c
-+++ b/drivers/net/wireless/brcm80211/brcmfmac/core.c
-@@ -1236,6 +1236,7 @@ static int __init brcmfmac_module_init(v
- #endif
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
+@@ -1208,6 +1208,7 @@ int __init brcmf_core_init(void)
+ {
        if (!schedule_work(&brcmf_driver_work))
                return -EBUSY;
 +      flush_work(&brcmf_driver_work);
  
        return 0;
  }
---- a/drivers/net/wireless/brcm80211/brcmfmac/firmware.c
-+++ b/drivers/net/wireless/brcm80211/brcmfmac/firmware.c
-@@ -420,6 +420,7 @@ struct brcmf_fw {
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
+@@ -444,6 +444,7 @@ struct brcmf_fw {
        u16 bus_nr;
        void (*done)(struct device *dev, const struct firmware *fw,
                     void *nvram_image, u32 nvram_len);
@@ -31,7 +31,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
  };
  
  static void brcmf_fw_request_nvram_done(const struct firmware *fw, void *ctx)
-@@ -455,6 +456,8 @@ static void brcmf_fw_request_nvram_done(
+@@ -478,6 +479,8 @@ static void brcmf_fw_request_nvram_done(
                goto fail;
  
        fwctx->done(fwctx->dev, fwctx->code, nvram, nvram_length);
@@ -40,7 +40,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
        kfree(fwctx);
        return;
  
-@@ -462,6 +465,8 @@ fail:
+@@ -485,6 +488,8 @@ fail:
        brcmf_dbg(TRACE, "failed: dev=%s\n", dev_name(fwctx->dev));
        release_firmware(fwctx->code);
        device_release_driver(fwctx->dev);
@@ -49,7 +49,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
        kfree(fwctx);
  }
  
-@@ -477,6 +482,8 @@ static void brcmf_fw_request_code_done(c
+@@ -500,6 +505,8 @@ static void brcmf_fw_request_code_done(c
        /* only requested code so done here */
        if (!(fwctx->flags & BRCMF_FW_REQUEST_NVRAM)) {
                fwctx->done(fwctx->dev, fw, NULL, 0);
@@ -58,7 +58,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
                kfree(fwctx);
                return;
        }
-@@ -494,6 +501,8 @@ static void brcmf_fw_request_code_done(c
+@@ -517,6 +524,8 @@ static void brcmf_fw_request_code_done(c
  fail:
        brcmf_dbg(TRACE, "failed: dev=%s\n", dev_name(fwctx->dev));
        device_release_driver(fwctx->dev);
@@ -67,7 +67,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
        kfree(fwctx);
  }
  
-@@ -505,6 +514,8 @@ int brcmf_fw_get_firmwares_pcie(struct d
+@@ -528,6 +537,8 @@ int brcmf_fw_get_firmwares_pcie(struct d
                                u16 domain_nr, u16 bus_nr)
  {
        struct brcmf_fw *fwctx;
@@ -76,7 +76,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
  
        brcmf_dbg(TRACE, "enter: dev=%s\n", dev_name(dev));
        if (!fw_cb || !code)
-@@ -525,9 +536,17 @@ int brcmf_fw_get_firmwares_pcie(struct d
+@@ -548,9 +559,17 @@ int brcmf_fw_get_firmwares_pcie(struct d
        fwctx->domain_nr = domain_nr;
        fwctx->bus_nr = bus_nr;