From: Gagandeep Singh <[email protected]>

Remove an unintended early return in the LS1043 SoC version check
that was preventing device probing from completing successfully on
LS1043A platforms.

The early return did two things: set max_push_rxq_num = 0 and skip
the DPAA_PUSH_QUEUES_NUMBER env-var override. With the return gone,
the env-var could inadvertently re-enable push mode on LS1043A, which
must remain disabled due to the FMAN push-mode errata handled in
dpaa_rxtx.c. Guard the env-var override so it only applies to
non-LS1043A SoCs.

Fixes: 164e9e13e50f ("bus/dpaa: enhance SoC version")
Cc: [email protected]

Signed-off-by: Gagandeep Singh <[email protected]>
---
 drivers/bus/dpaa/dpaa_bus.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index ee467b94d5..02a8c5882e 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: BSD-3-Clause
  *
- * Copyright 2017-2025 NXP
+ * Copyright 2017-2026 NXP
  *
  */
 /* System headers */
@@ -724,18 +724,17 @@ rte_dpaa_bus_scan(void)
                        dpaa_bus.svr_ver);
        }
 
-       /* Disabling the default push mode for LS1043A */
+       /* Disabling the default push mode for LS1043A due to errata */
        if (dpaa_bus.svr_ver == SVR_LS1043A_FAMILY) {
                dpaa_bus.max_push_rxq_num = 0;
-               return 0;
+       } else {
+               penv = getenv("DPAA_PUSH_QUEUES_NUMBER");
+               if (penv)
+                       dpaa_bus.max_push_rxq_num = atoi(penv);
+               if (dpaa_bus.max_push_rxq_num > DPAA_MAX_PUSH_MODE_QUEUE)
+                       dpaa_bus.max_push_rxq_num = DPAA_MAX_PUSH_MODE_QUEUE;
        }
 
-       penv = getenv("DPAA_PUSH_QUEUES_NUMBER");
-       if (penv)
-               dpaa_bus.max_push_rxq_num = atoi(penv);
-       if (dpaa_bus.max_push_rxq_num > DPAA_MAX_PUSH_MODE_QUEUE)
-               dpaa_bus.max_push_rxq_num = DPAA_MAX_PUSH_MODE_QUEUE;
-
        /* Device list creation is only done once */
        if (!process_once) {
                rte_dpaa_bus_dev_build();
-- 
2.43.0

Reply via email to