aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Bowling <kbowling@FreeBSD.org>2026-07-28 11:25:48 +0000
committerKevin Bowling <kbowling@FreeBSD.org>2026-07-31 11:58:53 +0000
commit9cf1aa6e68e4b9dd4a77c67b7b902b9221198e7a (patch)
tree34903ade1896d5020b53c068c78ab313a43ecd7e
parent86869d77658aef48b2bab3e57517f88d7bd5389d (diff)
ixgbe: dispatch PBA string reads through EEPROM ops
E610 installs a device-specific PBA string reader, but the public API always calls the generic implementation. Dispatch through the EEPROM operation table so device overrides are honored. Initialize the generic operation for devices that use the ordinary EEPROM representation. Obtained from: Intel ix 3.4.39 MFC after: 1 week
-rw-r--r--sys/dev/ixgbe/ixgbe_api.c4
-rw-r--r--sys/dev/ixgbe/ixgbe_common.c1
2 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/ixgbe/ixgbe_api.c b/sys/dev/ixgbe/ixgbe_api.c
index 3794bb2676f6..a244269be50a 100644
--- a/sys/dev/ixgbe/ixgbe_api.c
+++ b/sys/dev/ixgbe/ixgbe_api.c
@@ -495,7 +495,9 @@ s32 ixgbe_stop_adapter(struct ixgbe_hw *hw)
**/
s32 ixgbe_read_pba_string(struct ixgbe_hw *hw, u8 *pba_num, u32 pba_num_size)
{
- return ixgbe_read_pba_string_generic(hw, pba_num, pba_num_size);
+ return ixgbe_call_func(hw, hw->eeprom.ops.read_pba_string,
+ (hw, pba_num, pba_num_size),
+ IXGBE_NOT_IMPLEMENTED);
}
/**
diff --git a/sys/dev/ixgbe/ixgbe_common.c b/sys/dev/ixgbe/ixgbe_common.c
index a3659cce50c4..5965e1146175 100644
--- a/sys/dev/ixgbe/ixgbe_common.c
+++ b/sys/dev/ixgbe/ixgbe_common.c
@@ -91,6 +91,7 @@ s32 ixgbe_init_ops_generic(struct ixgbe_hw *hw)
ixgbe_validate_eeprom_checksum_generic;
eeprom->ops.update_checksum = ixgbe_update_eeprom_checksum_generic;
eeprom->ops.calc_checksum = ixgbe_calc_eeprom_checksum_generic;
+ eeprom->ops.read_pba_string = ixgbe_read_pba_string_generic;
/* MAC */
mac->ops.init_hw = ixgbe_init_hw_generic;