Re: [PATCH iwl-next] ixgbe: increase SWFW semaphore timeout for X550 FW updates

Simon Horman
2026-04-03T12:49:45Z

On Fri, Mar 27, 2026 at 08:30:35AM +0100, Aleksandr Loktionov wrote:
> From: Soumen Karmakar <soumen.karmakar@intel.com>
>
> According to FW documentation, the most time-consuming part of continuous
> FW activity is Shadow RAM (SR) dump which takes up to 3.2 seconds. For
> X550 devices, the module-update FW command can take over 4.5 s. Increase
> the max Software/Firmware (SW/FW) semaphore wait time from the default
> 200 ms to 5 s for X550 to avoid spurious semaphore timeout failures

Should 200ms be 1s (200 x 5us) ?

> during FW update operations.
>
> Signed-off-by: Soumen Karmakar <soumen.karmakar@intel.com>
> Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
> ---
> drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c
> index e67e2fe..85047ef 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c
> @@ -577,6 +577,9 @@ int ixgbe_acquire_swfw_sync_X540(struct ixgbe_hw *hw, u32 mask)
>
> swmask |= swi2c_mask;
> fwmask |= swi2c_mask << 2;
> + if (hw->mac.type == ixgbe_mac_X550)
> + timeout = 1000;

I think it would be nice to centralise the initialisation of timeout,
to either it's default or device-specific value, here.

And to provide a comment indicating what the values mean in terms
of maximum delay in s or ms.

> +
> for (i = 0; i < timeout; i++) {
> /* SW NVM semaphore bit is used for access to all
> * SW_FW_SYNC bits (not just NVM)
> --
> 2.52.0
>