diff options
author | Yogesh Gaur <yogeshnarayan.gaur@nxp.com> | 2018-01-16 10:08:24 +0530 |
---|---|---|
committer | York Sun <york.sun@nxp.com> | 2018-01-30 09:13:32 -0800 |
commit | f9747a5a5d34d39843f8007b4230a86bcb852461 (patch) | |
tree | 9980038a106717f52a7ac64f7e1b5d6c3a530294 | |
parent | ae5326a6b34b34b1827edf2eee1a0e9e5363c5a2 (diff) |
driver: fsl-mc: Perform fsl-mc fdt fixup for lazyapply dpl
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>
-rw-r--r-- | drivers/net/fsl-mc/mc.c | 4 | ||||
-rw-r--r-- | include/fdt_support.h | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/fsl-mc/mc.c b/drivers/net/fsl-mc/mc.c index f36fe06269..760a12488a 100644 --- a/drivers/net/fsl-mc/mc.c +++ b/drivers/net/fsl-mc/mc.c @@ -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; } diff --git a/include/fdt_support.h b/include/fdt_support.h index f00fadcddb..46bf83f671 100644 --- a/include/fdt_support.h +++ b/include/fdt_support.h @@ -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 */ |