Message ID | 20250115122720.431223-1-jedrzej.jagielski@intel.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [iwl-next,v1] ixgbe: add support for thermal sensor event reception | expand |
Dear Jedrzej, Thank you for the patch. Am 15.01.25 um 13:27 schrieb Jedrzej Jagielski: > E610 NICs unlike the previous devices utilising ixgbe driver > are notified in the case of overheat by the FW ACI event. overheat*ing* > In event of overheat when treshhold is exceeded, FW suspends all threshold > traffic and sends overtemp event to the driver. Then driver > loggs appropriate message and closes the adapter instance. logs > The card remains in that state until the platform is rebooted. How did you test this? Can you please paste the message? > Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > Signed-off-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com> > --- > drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 5 +++++ > drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h | 3 +++ > 2 files changed, 8 insertions(+) > > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c > index 7236f20c9a30..5c804948dd1f 100644 > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c > @@ -3165,6 +3165,7 @@ static void ixgbe_aci_event_cleanup(struct ixgbe_aci_event *event) > static void ixgbe_handle_fw_event(struct ixgbe_adapter *adapter) > { > struct ixgbe_aci_event event __cleanup(ixgbe_aci_event_cleanup); > + struct net_device *netdev = adapter->netdev; > struct ixgbe_hw *hw = &adapter->hw; > bool pending = false; > int err; > @@ -3185,6 +3186,10 @@ static void ixgbe_handle_fw_event(struct ixgbe_adapter *adapter) > case ixgbe_aci_opc_get_link_status: > ixgbe_handle_link_status_event(adapter, &event); > break; > + case ixgbe_aci_opc_temp_tca_event: > + e_crit(drv, "%s\n", ixgbe_overheat_msg); > + ixgbe_close(netdev); > + break; > default: > e_warn(hw, "unknown FW async event captured\n"); > break; > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h > index 8d06ade3c7cd..617e07878e4f 100644 > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h > @@ -171,6 +171,9 @@ enum ixgbe_aci_opc { > ixgbe_aci_opc_done_alt_write = 0x0904, > ixgbe_aci_opc_clear_port_alt_write = 0x0906, > > + /* TCA Events */ > + ixgbe_aci_opc_temp_tca_event = 0x0C94, > + > /* debug commands */ > ixgbe_aci_opc_debug_dump_internals = 0xFF08, Kind regards, Paul
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 7236f20c9a30..5c804948dd1f 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -3165,6 +3165,7 @@ static void ixgbe_aci_event_cleanup(struct ixgbe_aci_event *event) static void ixgbe_handle_fw_event(struct ixgbe_adapter *adapter) { struct ixgbe_aci_event event __cleanup(ixgbe_aci_event_cleanup); + struct net_device *netdev = adapter->netdev; struct ixgbe_hw *hw = &adapter->hw; bool pending = false; int err; @@ -3185,6 +3186,10 @@ static void ixgbe_handle_fw_event(struct ixgbe_adapter *adapter) case ixgbe_aci_opc_get_link_status: ixgbe_handle_link_status_event(adapter, &event); break; + case ixgbe_aci_opc_temp_tca_event: + e_crit(drv, "%s\n", ixgbe_overheat_msg); + ixgbe_close(netdev); + break; default: e_warn(hw, "unknown FW async event captured\n"); break; diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h index 8d06ade3c7cd..617e07878e4f 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h @@ -171,6 +171,9 @@ enum ixgbe_aci_opc { ixgbe_aci_opc_done_alt_write = 0x0904, ixgbe_aci_opc_clear_port_alt_write = 0x0906, + /* TCA Events */ + ixgbe_aci_opc_temp_tca_event = 0x0C94, + /* debug commands */ ixgbe_aci_opc_debug_dump_internals = 0xFF08,