summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
diff options
context:
space:
mode:
authorFugang Duan <fugang.duan@nxp.com>2019-05-17 17:18:04 +0800
committerFugang Duan <fugang.duan@nxp.com>2020-07-20 17:50:20 +0800
commitdc4ba17dfdb745646ef7688aa1ef4782a475299d (patch)
tree5951a6231da1a20345f6a68e7e17e1c4e5c0a971 /drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
parent1c777e3999c4a55cc923533bfd2e69263c22dec8 (diff)
MLK-21756 brcmfmac: bcmsdh: attach device only func1 compatible string match
brcmfamc driver attach mmc func devices only when func1 device's node exist, and whose compatible string match "brcm,bcm4329-fmac". Reviewed-by: Richard Zhu <hongxing.zhu@nxp.com> Signed-off-by: Fugang Duan <fugang.duan@nxp.com> (cherry picked from commit: b9945d63c2b8a6c1c9b018869eb2479781501608)
Diffstat (limited to 'drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c')
-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;