brcmfmac: make brcmf_of_probe more generic
authorRafał Miłecki <rafal@milecki.pl>
Sat, 7 Jan 2017 22:43:45 +0000 (23:43 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 19 Jan 2017 12:45:13 +0000 (14:45 +0200)
We may want to use Open Firmware for other devices than just SDIO ones.
In future we may want to support more Broadcom properties so there is
really no reason for such limitation.

Call brcmf_of_probe for all kind of devices & move extra conditions to
the body of that funcion.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h

index 3e15d64c64813513bc22202dd9e468588699abb0..b1f574f5ee6ce8382c20c3100091b28866f46b0c 100644 (file)
@@ -299,11 +299,9 @@ struct brcmf_mp_device *brcmf_get_module_param(struct device *dev,
                        }
                }
        }
-       if ((bus_type == BRCMF_BUSTYPE_SDIO) && (!found)) {
-               /* No platform data for this device. In case of SDIO try OF
-                * (Open Firwmare) Device Tree.
-                */
-               brcmf_of_probe(dev, &settings->bus.sdio);
+       if (!found) {
+               /* No platform data for this device, try OF (Open Firwmare) */
+               brcmf_of_probe(dev, bus_type, settings);
        }
        return settings;
 }
index 425c41dc0a59bd5167eb429f37395273d06d2403..aee6e5937c41cd3afc763893b3a147e7097430e1 100644 (file)
 #include "common.h"
 #include "of.h"
 
-void brcmf_of_probe(struct device *dev, struct brcmfmac_sdio_pd *sdio)
+void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
+                   struct brcmf_mp_device *settings)
 {
+       struct brcmfmac_sdio_pd *sdio = &settings->bus.sdio;
        struct device_node *np = dev->of_node;
        int irq;
        u32 irqf;
        u32 val;
 
-       if (!np || !of_device_is_compatible(np, "brcm,bcm4329-fmac"))
+       if (!np || bus_type != BRCMF_BUSTYPE_SDIO ||
+           !of_device_is_compatible(np, "brcm,bcm4329-fmac"))
                return;
 
        if (of_property_read_u32(np, "brcm,drive-strength", &val) == 0)
index a9d94c15d0f5ef422fdbad2656db1fd3064d0e6c..95b7032d54b199f55650d5d9a4c8d23c7f0c83d6 100644 (file)
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 #ifdef CONFIG_OF
-void brcmf_of_probe(struct device *dev, struct brcmfmac_sdio_pd *sdio);
+void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
+                   struct brcmf_mp_device *settings);
 #else
-static void brcmf_of_probe(struct device *dev, struct brcmfmac_sdio_pd *sdio)
+static void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
+                          struct brcmf_mp_device *settings)
 {
 }
 #endif /* CONFIG_OF */