git: 4f9de24ae983 - main - dpaa/fman: Clean up port config code

From: Justin Hibbits <jhibbits_at_FreeBSD.org>
Date: Sat, 12 Sep 2026 02:40:43 UTC
The branch main has been updated by jhibbits:

URL: https://cgit.FreeBSD.org/src/commit/?id=4f9de24ae98384fced8114a4ee331c87e90ca814

commit 4f9de24ae98384fced8114a4ee331c87e90ca814
Author:     Justin Hibbits <jhibbits@FreeBSD.org>
AuthorDate: 2026-08-27 22:02:30 +0000
Commit:     Justin Hibbits <jhibbits@FreeBSD.org>
CommitDate: 2026-09-12 02:40:29 +0000

    dpaa/fman: Clean up port config code
    
    No functional change, just simplify the code flow a little.
---
 sys/dev/dpaa/fman_port_rx.c | 39 ++++++++++++++++-----------------------
 sys/dev/dpaa/fman_port_tx.c | 30 +++++++++---------------------
 2 files changed, 25 insertions(+), 44 deletions(-)

diff --git a/sys/dev/dpaa/fman_port_rx.c b/sys/dev/dpaa/fman_port_rx.c
index 5499e5e1599d..ebb9b3af6f20 100644
--- a/sys/dev/dpaa/fman_port_rx.c
+++ b/sys/dev/dpaa/fman_port_rx.c
@@ -150,20 +150,31 @@ fman_port_rx_config(device_t dev, struct fman_port_params *params)
 	fman_port_config_common(base, params);
 
 	base->sc_tasks.extra = 0;
+	base->sc_open_dmas.extra = 0;
 	switch (base->sc_port_speed) {
 	case 10000:
 		if (base->sc_revision_major < 6) {
 			base->sc_tasks.num = 16;
-			base->sc_tasks.extra = 8;
-		} else
+			base->sc_open_dmas.num = 8;
+			base->sc_open_dmas.extra = 8;
+			base->sc_fifo_bufs.num = 48;
+		} else {
 			base->sc_tasks.num = 14;
+			base->sc_open_dmas.num = 8;
+			base->sc_fifo_bufs.num = 96;
+		}
 		break;
 	case 1000:
-		if (base->sc_revision_major >= 6)
-			base->sc_tasks.num = 4;
-		else {
+		if (base->sc_revision_major < 6) {
 			base->sc_tasks.num = 3;
 			base->sc_tasks.extra = 2;
+			base->sc_open_dmas.num = 1;
+			base->sc_open_dmas.extra = 1;
+			base->sc_fifo_bufs.num = 45;
+		} else {
+			base->sc_tasks.num = 4;
+			base->sc_open_dmas.num = 2;
+			base->sc_fifo_bufs.num = 50;
 		}
 		break;
 	default:
@@ -171,24 +182,6 @@ fman_port_rx_config(device_t dev, struct fman_port_params *params)
 		break;
 	}
 
-	if (base->sc_revision_major >= 6) {
-		base->sc_open_dmas.extra = 0;
-		base->sc_open_dmas.num =
-		    (base->sc_port_speed == 10000) ? 8 : 2;
-	} else if (base->sc_port_speed == 10000) {
-		base->sc_open_dmas.num = 8;
-		base->sc_open_dmas.extra = 8;
-	} else {
-		base->sc_open_dmas.num = 1;
-		base->sc_open_dmas.extra = 1;
-	}
-
-	if (base->sc_revision_major >= 6)
-		base->sc_fifo_bufs.num =
-		    (base->sc_port_speed == 10000) ? 96 : 50;
-	else
-		base->sc_fifo_bufs.num =
-		    (base->sc_port_speed == 10000) ? 48 : 45;
 	base->sc_fifo_bufs.extra = 0;
 	base->sc_fifo_bufs.num *= FMAN_BMI_FIFO_UNITS;
 
diff --git a/sys/dev/dpaa/fman_port_tx.c b/sys/dev/dpaa/fman_port_tx.c
index 715786b50964..708656a058d8 100644
--- a/sys/dev/dpaa/fman_port_tx.c
+++ b/sys/dev/dpaa/fman_port_tx.c
@@ -137,6 +137,7 @@ fman_port_tx_config(device_t dev, struct fman_port_params *params)
 {
 	struct fman_port_tx_softc *sc = device_get_softc(dev);
 	struct fman_port_softc *base = &sc->sc_base;
+	bool fman_v3 = (base->sc_revision_major >= 6);
 
 	fman_port_config_common(base, params);
 
@@ -145,37 +146,24 @@ fman_port_tx_config(device_t dev, struct fman_port_params *params)
 		bus_write_4(base->sc_mem, FMBM_TFP, 0x00001013);
 
 	base->sc_tasks.extra = 0;
+	base->sc_open_dmas.extra = 0;
+	base->sc_fifo_bufs.extra = 0;
 	switch (base->sc_port_speed) {
 	case 10000:
-		base->sc_tasks.num = (base->sc_revision_major < 6) ? 16 : 14;
+		base->sc_tasks.num = fman_v3 ? 14 : 16;
+		base->sc_open_dmas.num = fman_v3 ? 12 : 8;
+		base->sc_fifo_bufs.num = fman_v3 ? 64 : 48;
 		break;
 	case 1000:
-		base->sc_tasks.num = (base->sc_revision_major >= 6) ? 4 : 3;
+		base->sc_tasks.num = fman_v3 ? 4 : 3;
+		base->sc_open_dmas.num = fman_v3 ? 3 : 1;
+		base->sc_fifo_bufs.num = fman_v3 ? 50 : 44;
 		break;
 	default:
 		base->sc_tasks.num = 0;
 		break;
 	}
 
-	if (base->sc_revision_major >= 6) {
-		base->sc_open_dmas.extra = 0;
-		base->sc_open_dmas.num =
-		    (base->sc_port_speed == 10000) ? 12 : 3;
-	} else if (base->sc_port_speed == 10000) {
-		base->sc_open_dmas.num = 8;
-		base->sc_open_dmas.extra = 8;
-	} else {
-		base->sc_open_dmas.num = 1;
-		base->sc_open_dmas.extra = 1;
-	}
-
-	if (base->sc_revision_major >= 6)
-		base->sc_fifo_bufs.num =
-		    (base->sc_port_speed == 10000) ? 64 : 50;
-	else
-		base->sc_fifo_bufs.num =
-		    (base->sc_port_speed == 10000) ? 48 : 44;
-	base->sc_fifo_bufs.extra = 0;
 	base->sc_fifo_bufs.num *= FMAN_BMI_FIFO_UNITS;
 
 	/* TODO: buf_margins?  See fman_sp_build_buffer_struct */