linux/drivers/net/ethernet/intel
Anirudh Venkataramanan 0b28b702e7 ice: Support link events, reset and rebuild
Link events are posted to a PF's admin receive queue (ARQ). This patch
adds the ability to detect and process link events.

This patch also adds the ability to process resets.

The driver can process the following resets:
    1) EMP Reset (EMPR)
    2) Global Reset (GLOBR)
    3) Core Reset (CORER)
    4) Physical Function Reset (PFR)

EMPR is the largest level of reset that the driver can handle. An EMPR
resets the manageability block and also the data path, including PHY and
link for all the PFs. The affected PFs are notified of this event through
a miscellaneous interrupt.

GLOBR is a subset of EMPR. It does everything EMPR does except that it
doesn't reset the manageability block.

CORER is a subset of GLOBR. It does everything GLOBR does but doesn't
reset PHY and link.

PFR is a subset of CORER and affects only the given physical function.
In other words, PFR can be thought of as a CORER for a single PF. Since
only the issuing PF is affected, a PFR doesn't result in the miscellaneous
interrupt being triggered.

All the resets have the following in common:
1) Tx/Rx is halted and all queues are stopped.
2) All the VSIs and filters programmed for the PF are lost and have to be
   reprogrammed.
3) Control queue interfaces are reset and have to be reprogrammed.

In the rebuild flow, control queues are reinitialized, VSIs are reallocated
and filters are restored.

Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
Tested-by: Tony Brelinski <tonyx.brelinski@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2018-03-26 12:32:17 -07:00
..
e1000 intel: add SPDX identifiers to all the Intel drivers 2018-03-23 12:18:21 -04:00
e1000e intel: add SPDX identifiers to all the Intel drivers 2018-03-23 12:18:21 -04:00
fm10k intel: add SPDX identifiers to all the Intel drivers 2018-03-23 12:18:21 -04:00
i40e intel: add SPDX identifiers to all the Intel drivers 2018-03-23 12:18:21 -04:00
i40evf intel: add SPDX identifiers to all the Intel drivers 2018-03-23 12:18:21 -04:00
ice ice: Support link events, reset and rebuild 2018-03-26 12:32:17 -07:00
igb intel: add SPDX identifiers to all the Intel drivers 2018-03-23 12:18:21 -04:00
igbvf intel: add SPDX identifiers to all the Intel drivers 2018-03-23 12:18:21 -04:00
ixgb intel: add SPDX identifiers to all the Intel drivers 2018-03-23 12:18:21 -04:00
ixgbe ixgbe: tweak page counting for XDP_REDIRECT 2018-03-23 15:23:51 -07:00
ixgbevf ixgbevf: Add XDP queue stats reporting 2018-03-23 15:22:11 -07:00
Kconfig ice: Add basic driver framework for Intel(R) E800 Series 2018-03-26 08:28:02 -07:00
Makefile ice: Add basic driver framework for Intel(R) E800 Series 2018-03-26 08:28:02 -07:00
e100.c intel: add SPDX identifiers to all the Intel drivers 2018-03-23 12:18:21 -04:00