|SUCCESS| [v13, 17/17] net/txgbe: fix typo in the fiber support speed field

dpdklab at iol.unh.edu dpdklab at iol.unh.edu
Wed Oct 28 12:40:39 CET 2026


Test-Label: ai-code-review
Test-Status: SUCCESS
https://dpdk.org/patch/172223

_AI Code Review_

=== Patch Review: series.patch (via Claude) ===
Review date: 2026-10-28

# DPDK Patch Review

## Patch 01/17: net/txgbe: fix failure to configure 10G on dual-speed DAC

### Errors
None.

### Warnings
None.

### Info
- The patch addresses configuration issues for 10G/40G dual-speed DAC cables by allowing 10G capability flow-through from user configuration to AN base page advertisement
- Link capabilities now reflect the actual SFP module speed rather than being hardcoded

---

## Patch 02/17: net/txgbe: use the requested speed in E56 AN setup

### Errors
None.

### Warnings
None.

### Info
- Correctly passes the requested speed bitmask to `txgbe_e56_set_phy_link_mode()` and uses it to gate individual speed advertisements
- Records caller speed in `hw->phy.autoneg_advertised` before `setup_link()` and passes it from AN restart paths instead of hardcoded values

---

## Patch 03/17: net/txgbe: fix E56 PHY configuration error

### Errors
None.

### Warnings
None.

### Info
- Fixes RXS ring equalizer/tap configuration written to wrong bit field range: changed from `(9, 4)` to `(21, 12)` so configured tap values are actually applied

---

## Patch 04/17: net/txgbe: fix incorrect link state in 10G forced mode

### Errors
None.

### Warnings
None.

### Info
- Restores `hw->link_valid = true` in success path of `txgbe_setup_phy_link_aml40()` and handles `TXGBE_ERR_PHY_INIT_NOT_DONE` before timeout split, fixing link down persistence after peer recovery in 10G forced mode

---

## Patch 05/17: net/txgbe: do not force reconfig on link retry

### Errors
None.

### Warnings
None.

### Info
- Link alarm retry no longer forces AN73 reconfiguration by passing `autoneg_wait_to_complete = false` to `mac.setup_link()`, avoiding unnecessary AN73 link resets
- Passes `true` to `txgbe_e56_set_phy_link_mode()` from retry paths to ensure restart happens when needed

---

## Patch 06/17: net/txgbe: set i2c sda hold time

### Errors
None.

### Warnings
None.

### Info
- Sets I2C SDA hold time to 100 (0x64) I2C clock periods for both RX and TX to meet hardware requirements and fix corrupted SFP EEPROM reads

---

## Patch 07/17: net/txgbe: fix link speed display info for 10G mode

### Errors
None.

### Warnings
None.

### Info
- Adds 10G port status bit recognition in `txgbe_check_mac_link_aml40()` so 10G links are correctly reported as 10G instead of defaulting to 100M

---

## Patch 08/17: net/txgbe: remove stale outer UDP checksum offload flag

### Errors
None.

### Warnings
None.

### Info
- Removes `RTE_MBUF_F_TX_OUTER_UDP_CKSUM` from `TXGBE_TX_OFFLOAD_MASK` to align with removal from `dev_info->tx_offload_capa`

---

## Patch 09/17: net/txgbe: fix SFP hot-plug when auto-negotiation is on

### Errors
None.

### Warnings
None.

### Info
- Re-arms AN73 watchdog from `txgbe_dev_detect_sfp()` after module identification to handle hot-plug scenarios
- Adds per-port `sfp_an_alarm_enabled` flag set in `_dev_start()` and cleared in `_dev_stop()` to gate alarm operations and prevent re-arming on stopped ports
- Samples module-present pin on every watchdog tick to detect cable removal even without GPIO interrupt

---

## Patch 10/17: net/txgbe: fix DAC hot-plug on AML40 with auto-negotiation

### Errors
None.

### Warnings
None.

### Info
- Implements 2-second polling of module-present level for AML40 (which does not deliver GPIO interrupt for insertion/removal)
- Records unsupported QSFP identifiers and no-capability modules as `unknown` to stop indefinite retry loop
- Restores `hw->link_valid` on xpcs path so link can come up after AN73 brings it up

---

## Patch 11/17: net/txgbe: fix 40G FFE tuning applied to first lane only

### Errors
None.

### Warnings
None.

### Info
- Replicates each FFE tap value over all four lanes for 40G NIC using `S40G_TX_FFE_4LANE()` macro
- FFE fields grow to 32 bits to hold replicated value; devargs parsed after shared code init so MAC type is known when 40G defaults are picked

---

## Patch 12/17: net/txgbe: add pre2 FFE tap and backplane capability devargs

### Errors
None.

### Warnings
None.

### Info
- Adds `ffe_pre2` devarg for E56 second pre-cursor tap control (requires `ffe_set`)
- Adds `bp_capa` devarg for 40G backplane advertisement selection (0: both KR4+CR4, 1: KR4 only, 2: CR4 only)
- Adds range checks for all four FFE taps with per-MAC defaults
- Updates documentation with new devargs and updated FFE default values

---

## Patch 13/17: net/txgbe: fix Tx laser left on at AML40 link down

### Errors
None.

### Warnings
None.

### Info
- Clears PMD_CFG0 transmit/receive enables for DAC cables and writes SFF-8636 Tx disable bit for QSFP modules on link down
- Re-enables transmitter through normal link setup on link up
- Removes incorrect enable call on PHY init failure path that was limited to 25G MAC

---

## Patch 14/17: net/txgbe: fix CR/KR link training and recovery

### Errors
None.

### Warnings
None.

### Info
- Polls AN FSM (0x78010) for CL72 completion with correct condition `((rdata & 0x9) == 0x9)` and proper timeout budget
- Re-runs page exchange on every AN next-page interrupt with explicit next-page handshake and timeout handling
- Initializes FFE init mode bits in `cfg_40g()`/`cfg_10g()`, runs `txgbe_e56_set_rxs_ufine_le_max()` after RXS osc init
- Clears `hw->bp_link_mode` in `txgbe_set_link_to_sfi()` to avoid stale backplane mode after switching to SFI

---

## Patch 15/17: net/txgbe: align link capabilities and DAC classification

### Errors
None.

### Warnings
None.

### Info
- Uses detected DAC speed in capability paths; assigns 10G for passive 10G-only and active-limiting DACs
- Keeps `bp_auto` devarg unchanged when 10G-only DAC disables AN
- Adds 40G-active transceiver identification with `txgbe_sfp_type` enum and branch
- Unifies DAC classification on `txgbe_is_dac_cable()` across all paths including 40G FFE selection

---

## Patch 16/17: net/txgbe: respect manual link-down on Amber-Lite

### Errors
None.

### Warnings
None.

### Info
- Gates AN73 watchdog, link alarm handler, and SFP detection handler on `hw->dev_start` before acquiring semaphore and running setup
- `set_link_down()` clears `hw->dev_start` first, cancels alarms, waits for link thread, cancels again, then disables laser
- `set_link_up()` restarts flow for both Amber-Lite MACs, cancels watchdog before re-arming to prevent duplicate chains

---

## Patch 17/17: net/txgbe: fix typo in the fiber support speed field

### Errors
None.

### Warnings
None.

### Info
- Renames `fiber_suppport_speed` to `fiber_support_speed` throughout codebase to fix spelling

---

## Summary

This patch series contains extensive correctness fixes for the txgbe driver, particularly for Amber-Lite 25G/40G NICs. The changes address:

- Link configuration and speed negotiation issues on dual-speed DAC cables
- E56 PHY configuration errors affecting signal quality
- Link state reporting and recovery after link events
- Hot-plug support for SFP/DAC modules
- FFE (Feed-Forward Equalizer) tuning for 40G multi-lane operation
- CR/KR link training and AN73 auto-negotiation reliability
- Administrative link up/down state handling

All patches follow DPDK coding standards. No correctness bugs, style violations, or process compliance issues were identified in the review. The series correctly adds new devargs with documentation updates and includes appropriate Fixes tags and stable at dpdk.org CC for backport consideration.

Review-Result: CLEAN


More information about the test-report mailing list