driver: net: fsl-mc: fsl_mc_ldpaa_exit exit earlier if dpl applied
authorSantan Kumar <santan.kumar@nxp.com>
Thu, 29 Jun 2017 05:49:34 +0000 (11:19 +0530)
committerYork Sun <york.sun@nxp.com>
Wed, 9 Aug 2017 16:57:33 +0000 (09:57 -0700)
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@nxp.com>
Acked-by: Priyanka Jain <priyanka.jain@nxp.com>
Acked-by: Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
drivers/net/fsl-mc/mc.c

index 8bf25c7040c9b2b2f5b67e446fcce86d8c1bca7e..3a30c03b8530c2ac90383865f80480f90a73f507 100644 (file)
@@ -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);