brcmfmac: move brcmf_bus_preinit() call just after changing bus state
authorArend Van Spriel <arend.vanspriel@broadcom.com>
Mon, 19 Feb 2018 23:14:18 +0000 (00:14 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 27 Feb 2018 16:21:23 +0000 (18:21 +0200)
Moving the brcmf_bus_preinit() call allows the bus code to do some
required initialization before handling firmware control messages.

Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
Reviewed-by: Franky Lin <franky.lin@broadcom.com>
Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c

index 9be0b05..70ef983 100644 (file)
@@ -365,9 +365,6 @@ int brcmf_c_preinit_dcmds(struct brcmf_if *ifp)
 
        /* Enable tx beamforming, errors can be ignored (not supported) */
        (void)brcmf_fil_iovar_int_set(ifp, "txbf", 1);
-
-       /* do bus specific preinit here */
-       err = brcmf_bus_preinit(ifp->drvr->bus_if);
 done:
        return err;
 }
index 930e423..6dd6da7 100644 (file)
@@ -1013,6 +1013,11 @@ int brcmf_bus_started(struct device *dev)
        /* signal bus ready */
        brcmf_bus_change_state(bus_if, BRCMF_BUS_UP);
 
+       /* do bus specific preinit here */
+       ret = brcmf_bus_preinit(ifp->drvr->bus_if);
+       if (ret < 0)
+               goto fail;
+
        /* Bus is ready, do any initialization */
        ret = brcmf_c_preinit_dcmds(ifp);
        if (ret < 0)