[U-Boot] [PATCH 1/1] driver: net: fsl-mc: fsl_mc_ldpaa_exit exit earlier if dpl applied

York Sun york.sun at nxp.com
Mon Aug 7 21:12:43 UTC 2017


On 06/28/2017 10:47 PM, Santan Kumar wrote:
> In fsl_mc_ldpaa_exit(), in case of mc is booted and
> dpl is applied, it should return earlier without executing
> dpbp_exit()
> 
> Signed-off-by: Santan Kumar <santan.kumar at nxp.com>
> ---
> This piece of code is mistakenly removed in below patch.
>   https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatchwork.ozlabs.org%2Fpatch%2F756038%2F&data=01%7C01%7Cyork.sun%40nxp.com%7C67ffe48248b14183512708d4beb2434e%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0&sdata=PvzNEpCqJ8MOLT9vRSNuNLTeH9hjxLxQi97ngEkrXf0%3D&reserved=0
> 
>   drivers/net/fsl-mc/mc.c | 11 +++++++++--
>   1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/fsl-mc/mc.c b/drivers/net/fsl-mc/mc.c
> index 8bf25c7..3a30c03 100644
> --- a/drivers/net/fsl-mc/mc.c
> +++ b/drivers/net/fsl-mc/mc.c
> @@ -1336,14 +1336,18 @@ int fsl_mc_ldpaa_exit(bd_t *bd)
>   {
>   	int err = 0;
>   	bool is_dpl_apply_status = false;
> +	bool mc_boot_status = false;
>   
>   	if (bd && mc_lazy_dpl_addr && !fsl_mc_ldpaa_exit(NULL)) {
>   		mc_apply_dpl(mc_lazy_dpl_addr);
>   		mc_lazy_dpl_addr = 0;
>   	}
>   
> +	if (!get_mc_boot_status())
> +		mc_boot_status = true;
> +
>   	/* MC is not loaded intentionally, So return success. */
> -	if (bd && get_mc_boot_status() != 0)
> +	if (bd && !mc_boot_status)
>   		return 0;
>   
>   	/* If DPL is deployed, set is_dpl_apply_status as TRUE. */
> @@ -1354,11 +1358,14 @@ int fsl_mc_ldpaa_exit(bd_t *bd)
>   	 * 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) {
> +	if (bd && mc_boot_status && !is_dpl_apply_status) {
>   		printf("fsl-mc: DPL not deployed, DPAA2 ethernet not work\n");
>   		return 0;
>   	}
>   
> +	if (bd && mc_boot_status && is_dpl_apply_status)
> +		return 0;
> +
>   	err = dpbp_exit();
>   	if (err < 0) {
>   		printf("dpbp_exit() failed: %d\n", err);
> 

Yogesh and Priyanka,

Please review this patch. Thanks.

York


More information about the U-Boot mailing list