From dc4ba17dfdb745646ef7688aa1ef4782a475299d Mon Sep 17 00:00:00 2001 From: Fugang Duan Date: Fri, 17 May 2019 17:18:04 +0800 Subject: 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 Signed-off-by: Fugang Duan (cherry picked from commit: b9945d63c2b8a6c1c9b018869eb2479781501608) --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 7 +++++++ 1 file changed, 7 insertions(+) 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 #include #include +#include #include #include @@ -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; -- cgit v1.2.3