diff options
author | Fugang Duan <fugang.duan@nxp.com> | 2019-05-17 17:18:04 +0800 |
---|---|---|
committer | Fugang Duan <fugang.duan@nxp.com> | 2020-07-20 17:50:20 +0800 |
commit | dc4ba17dfdb745646ef7688aa1ef4782a475299d (patch) | |
tree | 5951a6231da1a20345f6a68e7e17e1c4e5c0a971 | |
parent | 1c777e3999c4a55cc923533bfd2e69263c22dec8 (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)
-rw-r--r-- | drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 7 |
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; |