driver: fsl-mc: Perform fsl-mc fdt fixup for lazyapply dpl
authorYogesh Gaur <yogeshnarayan.gaur@nxp.com>
Tue, 16 Jan 2018 04:38:24 +0000 (10:08 +0530)
committerYork Sun <york.sun@nxp.com>
Tue, 30 Jan 2018 17:13:32 +0000 (09:13 -0800)
For for case of lazyapply method, API fdt_fixup_board_enet() gets
invoked before DPL being deployed. This leads to an issue that
fsl-mc fdt fixup status marked as fail and dprc driver didn't get
registered in linux boot.

Fixes this issue by calling fdt_fixup_board_enet() for case when
DPL is deployed successfully in lazyapply method.

Signed-off-by: Yogesh Gaur <yogeshnarayan.gaur@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
drivers/net/fsl-mc/mc.c
include/fdt_support.h

index f36fe06269d4651f45ae887cd6728c952efee460..760a12488a17982df61d943d551db06c99d30c82 100644 (file)
@@ -1415,7 +1415,9 @@ int fsl_mc_ldpaa_exit(bd_t *bd)
        bool mc_boot_status = false;
 
        if (bd && mc_lazy_dpl_addr && !fsl_mc_ldpaa_exit(NULL)) {
-               mc_apply_dpl(mc_lazy_dpl_addr);
+               err = mc_apply_dpl(mc_lazy_dpl_addr);
+               if (!err)
+                       fdt_fixup_board_enet(working_fdt);
                mc_lazy_dpl_addr = 0;
        }
 
index f00fadcddbf226ce48080ff4906f6849147dc218..46bf83f671a264bd6f494c104d62e4055fdbe117 100644 (file)
@@ -293,4 +293,7 @@ int fdtdec_get_int(const void *blob, int node, const char *prop_name,
 #ifdef CONFIG_FMAN_ENET
 int fdt_update_ethernet_dt(void *blob);
 #endif
+#ifdef CONFIG_FSL_MC_ENET
+void fdt_fixup_board_enet(void *blob);
+#endif
 #endif /* ifndef __FDT_SUPPORT_H */