brcmfmac: Call brcmf_dmi_probe before brcmf_of_probe
authorHans de Goede <hdegoede@redhat.com>
Fri, 23 Nov 2018 09:11:48 +0000 (10:11 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 29 Nov 2018 15:32:25 +0000 (17:32 +0200)
ARM systems with UEFI may have both devicetree (of) and DMI data in this
case we end up setting brcmf_mp_device.board_type twice.

In this case we should prefer the devicetree data, because:
1) The devicerree data is more reliable
2) Some ARM systems (e.g. the Raspberry Pi 3 models) support both UEFI and
   classic uboot booting, the devicetree data is always there, so using it
   makes sure we ask for the same nvram file independent of how we booted.

This commit moves the brcmf_dmi_probe call to before the brcmf_of_probe
call, so that the latter can override the value of the first if both are
set.

Fixes: bd1e82bb420a ("brcmfmac: Set board_type from DMI on x86 based ...")
Cc: Peter Robinson <pbrobinson@gmail.com>
Tested-and-reported-by: Peter Robinson <pbrobinson@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c

index e738112ed87ceeee8b3ed5434973077e0569ef86..1f1e95a15a171b4957278ae1111a276d10a48853 100644 (file)
@@ -449,8 +449,8 @@ struct brcmf_mp_device *brcmf_get_module_param(struct device *dev,
        }
        if (!found) {
                /* No platform data for this device, try OF and DMI data */
-               brcmf_of_probe(dev, bus_type, settings);
                brcmf_dmi_probe(settings, chip, chiprev);
+               brcmf_of_probe(dev, bus_type, settings);
        }
        return settings;
 }