mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-29 16:10:58 +00:00
driver: net: fsl-mc: Update fsl_mc_ldpaa_exit() path
Earlier when MC is loaded but DPL is not deployed results in FDT fix-up code execution hangs. For this case now print message on console and return success instead of return -ENODEV. This update allows fdt fixup to continue execution. Signed-off-by: Yogesh Gaur <yogeshnarayan.gaur@nxp.com> Signed-off-by: Priyanka Jain <Priyanka.jain@nxp.com> Reviewed-by: York Sun <york.sun@nxp.com>
This commit is contained in:
parent
c40e6f9169
commit
42e8179007
1 changed files with 13 additions and 7 deletions
|
@ -1,4 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2017 NXP Semiconductors
|
||||
* Copyright (C) 2014 Freescale Semiconductor
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
|
@ -1201,6 +1202,7 @@ err:
|
|||
int fsl_mc_ldpaa_exit(bd_t *bd)
|
||||
{
|
||||
int err = 0;
|
||||
bool is_dpl_apply_status = false;
|
||||
|
||||
if (bd && mc_lazy_dpl_addr && !fsl_mc_ldpaa_exit(NULL)) {
|
||||
mc_apply_dpl(mc_lazy_dpl_addr);
|
||||
|
@ -1211,14 +1213,18 @@ int fsl_mc_ldpaa_exit(bd_t *bd)
|
|||
if (bd && get_mc_boot_status() != 0)
|
||||
return 0;
|
||||
|
||||
if (bd && !get_mc_boot_status() && get_dpl_apply_status() == -1) {
|
||||
printf("ERROR: fsl-mc: DPL is not applied\n");
|
||||
err = -ENODEV;
|
||||
return err;
|
||||
}
|
||||
/* If DPL is deployed, set is_dpl_apply_status as TRUE. */
|
||||
if (!get_dpl_apply_status())
|
||||
is_dpl_apply_status = true;
|
||||
|
||||
if (bd && !get_mc_boot_status() && !get_dpl_apply_status())
|
||||
return err;
|
||||
/*
|
||||
* For case MC is loaded but DPL is not deployed, return success and
|
||||
* print message on console. Else FDT fix-up code execution hanged.
|
||||
*/
|
||||
if (bd && !get_mc_boot_status() && !is_dpl_apply_status) {
|
||||
printf("fsl-mc: DPL not deployed, DPAA2 ethernet not work\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
err = dpbp_exit();
|
||||
if (err < 0) {
|
||||
|
|
Loading…
Reference in a new issue