git: 4f9de24ae983 - main - dpaa/fman: Clean up port config code
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
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 */