mirror_ubuntu-kernels/drivers/net/ethernet/intel/ice
Jacob Keller fa4a15c85c ice: introduce clear_reset_state operation
When hardware is reset, the VF relies on the VFGEN_RSTAT register to detect
when the VF is finished resetting. This is a tri-state register where 0
indicates a reset is in progress, 1 indicates the hardware is done
resetting, and 2 indicates that the software is done resetting.

Currently the PF driver relies on the device hardware resetting VFGEN_RSTAT
when a global reset occurs. This works ok, but it does mean that the VF
might not immediately notice a reset when the driver first detects that the
global reset is occurring.

This is also problematic for Scalable IOV, because there is no read/write
equivalent VFGEN_RSTAT register for the Scalable VSI type. Instead, the
Scalable IOV VFs will need to emulate this register.

To support this, introduce a new VF operation, clear_reset_state, which is
called when the PF driver first detects a global reset. The Single Root IOV
implementation can just write to VFGEN_RSTAT to ensure it's cleared
immediately, without waiting for the actual hardware reset to begin. The
Scalable IOV implementation will use this as part of its tracking of the
reset status to allow properly reporting the emulated VFGEN_RSTAT to the VF
driver.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Tested-by: Marek Szlosek <marek.szlosek@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2023-02-06 09:45:03 -08:00
..
ice_adminq_cmd.h ice: Add 'Execute Pending LLDP MIB' Admin Queue command 2023-01-19 08:18:03 -08:00
ice_arfs.c ice: arfs: fix use-after-free when freeing @rx_cpu_rmap 2022-04-08 09:08:36 -07:00
ice_arfs.h
ice_base.c ice: Use ICE_RLAN_BASE_S instead of magic number 2022-11-23 08:59:43 -08:00
ice_base.h
ice_cgu_regs.h
ice_common.c ice: split probe into smaller functions 2023-02-03 09:54:18 -08:00
ice_common.h ice: Match parameter name for ice_cfg_phy_fc() 2023-01-19 08:18:03 -08:00
ice_controlq.c
ice_controlq.h
ice_dcb_lib.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-02-02 14:49:55 -08:00
ice_dcb_lib.h ice: Prevent set_channel from changing queues while RDMA active 2023-01-27 11:32:18 -08:00
ice_dcb_nl.c
ice_dcb_nl.h
ice_dcb.c ice: Handle LLDP MIB Pending change 2023-01-19 08:18:03 -08:00
ice_dcb.h ice: Handle LLDP MIB Pending change 2023-01-19 08:18:03 -08:00
ice_ddp.c ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_ddp.h ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_devids.h ice: support features on new E810T variants 2022-09-28 11:40:57 -07:00
ice_devlink.c ice: implement devlink reinit action 2023-02-03 09:54:18 -08:00
ice_devlink.h ice: Prevent ADQ, DCB coexistence with Custom Tx scheduler 2022-11-17 21:41:28 -08:00
ice_eswitch.c ice: refactor VSI setup to use parameter structure 2023-02-06 09:37:31 -08:00
ice_eswitch.h ice: allow creating VFs for !CONFIG_NET_SWITCHDEV 2022-04-14 08:19:54 -07:00
ice_ethtool_fdir.c ice: Use correct order for the parameters of devm_kcalloc() 2022-06-08 08:55:13 -07:00
ice_ethtool.c ice: cleanup in VSI config/deconfig code 2023-02-03 09:54:18 -08:00
ice_fdir.c
ice_fdir.h
ice_flex_pipe.c ice: Reduce scope of variables 2023-01-19 08:18:03 -08:00
ice_flex_pipe.h ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_flex_type.h ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_flow.c
ice_flow.h
ice_fltr.c ice: sync netdev filters after clearing VSI 2023-02-03 09:54:18 -08:00
ice_fltr.h
ice_fw_update.c ice: handle E822 generic device ID in PLDM header 2022-07-12 09:25:34 -07:00
ice_fw_update.h
ice_gnss.c ice: use GNSS subsystem instead of TTY 2023-01-20 13:27:17 +00:00
ice_gnss.h ice: use GNSS subsystem instead of TTY 2023-01-20 13:27:17 +00:00
ice_hw_autogen.h ice: Add support Flex RXD 2022-10-27 13:23:43 +02:00
ice_idc_int.h
ice_idc.c ice: alloc id for RDMA using xa_array 2023-02-03 09:54:18 -08:00
ice_lag.c ice: remove non-inclusive language 2022-08-18 08:26:11 -07:00
ice_lag.h ice: remove non-inclusive language 2022-08-18 08:26:11 -07:00
ice_lan_tx_rx.h ice: Remove and replace ice speed defines with ethtool.h versions 2022-11-23 08:59:42 -08:00
ice_lib.c ice: move vsi_type assignment from ice_vsi_alloc to ice_vsi_cfg 2023-02-06 09:38:25 -08:00
ice_lib.h ice: refactor VSI setup to use parameter structure 2023-02-06 09:37:31 -08:00
ice_main.c ice: introduce clear_reset_state operation 2023-02-06 09:45:03 -08:00
ice_nvm.c ice: Remove cppcheck suppressions 2023-01-19 08:18:03 -08:00
ice_nvm.h ice: Add additional flags to ice_nvm_write_activate 2022-08-24 08:45:54 -07:00
ice_osdep.h
ice_pf_vsi_vlan_ops.c
ice_pf_vsi_vlan_ops.h
ice_protocol_type.h ice: Add L2TPv3 hardware offload support 2022-09-20 09:13:38 +02:00
ice_ptp_consts.h
ice_ptp_hw.c ice: make Tx and Rx vernier offset calibration independent 2022-12-08 13:15:03 -08:00
ice_ptp_hw.h ice: make Tx and Rx vernier offset calibration independent 2022-12-08 13:15:03 -08:00
ice_ptp.c ice: restrict PTP HW clock freq adjustments to 100, 000, 000 PPB 2023-01-19 08:18:03 -08:00
ice_ptp.h ice: handle flushing stale Tx timestamps in ice_ptp_tx_tstamp 2022-12-08 13:15:03 -08:00
ice_repr.c ice: Accumulate ring statistics over reset 2022-11-23 08:59:43 -08:00
ice_repr.h
ice_sbq_cmd.h
ice_sched.c ice: Reduce scope of variables 2023-01-19 08:18:03 -08:00
ice_sched.h ice: Add an option to pre-allocate memory for ice_sched_node 2022-11-17 21:41:28 -08:00
ice_sriov.c ice: introduce clear_reset_state operation 2023-02-06 09:45:03 -08:00
ice_sriov.h ice: introduce ice_virtchnl.c and ice_virtchnl.h 2022-03-15 13:23:10 -07:00
ice_switch.c ice: Add L2TPv3 hardware offload support 2022-09-20 09:13:38 +02:00
ice_switch.h ice: Introduce enabling promiscuous mode on multiple VF's 2022-07-28 11:44:22 -07:00
ice_tc_lib.c ice: Support drop action 2023-01-19 08:18:03 -08:00
ice_tc_lib.h ice: Support drop action 2023-01-19 08:18:03 -08:00
ice_trace.h ice: add trace events for tx timestamps 2022-03-16 10:38:15 -07:00
ice_txrx_lib.c ice: Accumulate ring statistics over reset 2022-11-23 08:59:43 -08:00
ice_txrx_lib.h
ice_txrx.c ice: Remove cppcheck suppressions 2023-01-19 08:18:03 -08:00
ice_txrx.h ice: Accumulate ring statistics over reset 2022-11-23 08:59:43 -08:00
ice_type.h ice: Prevent ADQ, DCB coexistence with Custom Tx scheduler 2022-11-17 21:41:28 -08:00
ice_vf_lib_private.h ice: introduce ice_vf_init_host_cfg function 2023-02-06 09:41:56 -08:00
ice_vf_lib.c ice: introduce clear_reset_state operation 2023-02-06 09:45:03 -08:00
ice_vf_lib.h ice: introduce clear_reset_state operation 2023-02-06 09:45:03 -08:00
ice_vf_mbx.c ice: Remove and replace ice speed defines with ethtool.h versions 2022-11-23 08:59:42 -08:00
ice_vf_mbx.h
ice_vf_vsi_vlan_ops.c
ice_vf_vsi_vlan_ops.h
ice_virtchnl_allowlist.c ice: Add support Flex RXD 2022-10-27 13:23:43 +02:00
ice_virtchnl_allowlist.h
ice_virtchnl_fdir.c ice: Add more usage of existing function ice_get_vf_vsi(vf) 2023-02-06 09:33:12 -08:00
ice_virtchnl_fdir.h ice: introduce ice_vf_lib.c, ice_vf_lib.h, and ice_vf_lib_private.h 2022-03-15 13:22:13 -07:00
ice_virtchnl.c ice: Fix configuring VIRTCHNL_OP_CONFIG_VSI_QUEUES with unbalanced queues 2022-11-23 08:59:43 -08:00
ice_virtchnl.h ice: virtchnl rss hena support 2022-11-14 10:44:38 +00:00
ice_vlan_mode.c ice: Add support for VLAN TPID filters in switchdev 2022-06-30 13:53:33 -07:00
ice_vlan_mode.h
ice_vlan.h
ice_vsi_vlan_lib.c
ice_vsi_vlan_lib.h
ice_vsi_vlan_ops.c
ice_vsi_vlan_ops.h
ice_xsk.c ice: xsk: do not use xdp_return_frame() on tx_buf->raw_buf 2022-12-21 17:46:49 -08:00
ice_xsk.h ice: xsk: change batched Tx descriptor cleaning 2022-09-27 08:11:02 -07:00
ice.h net/sched: move struct tc_mqprio_qopt_offload from pkt_cls.h to pkt_sched.h 2023-02-06 10:06:43 +00:00
Makefile ice: use GNSS subsystem instead of TTY 2023-01-20 13:27:17 +00:00