]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net/mlx5: Add device cap for supporting hot reset in sync reset flow
authorMoshe Shemesh <moshe@nvidia.com>
Wed, 11 Sep 2024 20:17:51 +0000 (13:17 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 4 Sep 2025 13:30:23 +0000 (15:30 +0200)
[ Upstream commit 9947204cdad97d22d171039019a4aad4d6899cdd ]

New devices with new FW can support sync reset for firmware activate
using hot reset. Add capability for supporting it and add MFRL field to
query from FW which type of PCI reset method to use while handling sync
reset events.

Signed-off-by: Moshe Shemesh <moshe@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/20240911201757.1505453-10-saeed@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Stable-dep-of: 902a8bc23a24 ("net/mlx5: Fix lockdep assertion on sync reset unload event")
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/linux/mlx5/mlx5_ifc.h

index 9106771bb92f01c67ae828c6b71e719a7ed95276..4913d364e977477d9e714f1410d14a36c8e29a86 100644 (file)
@@ -1731,7 +1731,8 @@ struct mlx5_ifc_cmd_hca_cap_bits {
        u8         reserved_at_328[0x2];
        u8         relaxed_ordering_read[0x1];
        u8         log_max_pd[0x5];
-       u8         reserved_at_330[0x6];
+       u8         reserved_at_330[0x5];
+       u8         pcie_reset_using_hotreset_method[0x1];
        u8         pci_sync_for_fw_update_with_driver_unload[0x1];
        u8         vnic_env_cnt_steering_fail[0x1];
        u8         vport_counter_local_loopback[0x1];
@@ -10824,6 +10825,11 @@ struct mlx5_ifc_mcda_reg_bits {
        u8         data[][0x20];
 };
 
+enum {
+       MLX5_MFRL_REG_PCI_RESET_METHOD_LINK_TOGGLE = 0,
+       MLX5_MFRL_REG_PCI_RESET_METHOD_HOT_RESET = 1,
+};
+
 enum {
        MLX5_MFRL_REG_RESET_STATE_IDLE = 0,
        MLX5_MFRL_REG_RESET_STATE_IN_NEGOTIATION = 1,
@@ -10851,7 +10857,8 @@ struct mlx5_ifc_mfrl_reg_bits {
        u8         pci_sync_for_fw_update_start[0x1];
        u8         pci_sync_for_fw_update_resp[0x2];
        u8         rst_type_sel[0x3];
-       u8         reserved_at_28[0x4];
+       u8         pci_reset_req_method[0x3];
+       u8         reserved_at_2b[0x1];
        u8         reset_state[0x4];
        u8         reset_type[0x8];
        u8         reset_level[0x8];