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