summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
index 43015f2333c4..feda6dff25d9 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
@@ -33,6 +33,7 @@
#include <linux/errno.h>
#include <linux/module.h>
#include <linux/acpi.h>
+#include <linux/of.h>
#include <net/cfg80211.h>
#include <defs.h>
@@ -1143,6 +1144,7 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func,
struct brcmf_sdio_dev *sdiodev;
struct brcmf_bus *bus_if;
struct device *dev;
+ struct device *func_dev;
brcmf_dbg(SDIO, "Enter\n");
brcmf_dbg(SDIO, "Class=%x\n", func->class);
@@ -1154,6 +1156,11 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func,
/* prohibit ACPI power management for this device */
brcmf_sdiod_acpi_set_power_manageable(dev, 0);
+ func_dev = &func->card->sdio_func[0]->dev;
+ if (!func_dev->of_node ||
+ !of_device_is_compatible(func_dev->of_node, "brcm,bcm4329-fmac"))
+ return -ENODEV;
+
/* Consume func num 1 but dont do anything with it. */
if (func->num == 1)
return 0;