mirror_ubuntu-kernels/drivers/net/ethernet
Michal Michalik d938a8cca8 ice: Auxbus devices & driver for E822 TS
There is a problem in HW in E822-based devices leading to race
condition.
It might happen that, in order:
- PF0 (which owns the PHC) requests few timestamps,
- PF1 requests a timestamp,
- interrupt is being triggered and both PF0 and PF1 threads are woken
up,
- PF0 got one timestamp, still waiting for others so not going to sleep,
- PF1 gets it's timestamp, process it and go to sleep,
- PF1 requests a timestamp again,
- just before PF0 goes to sleep timestamp of PF1 appear,
- PF0 finishes all it's timestamps and go to sleep (PF1 also sleeping).
That leaves PF1 timestamp memory not read, which lead to blocking the
next interrupt from arriving.

Fix it by adding auxiliary devices and only one driver to handle all the
timestamps for all PF's by PHC owner. In the past each PF requested it's
own timestamps and process it from the start till the end which causes
problem described above. Currently each PF requests the timestamps as
before, but the actual reading of the completed timestamps is being done
by the PTP auxiliary driver, which is registered by the PF which owns PHC.

Additionally, the newly introduced auxiliary driver/devices for PTP clock
owner will be used for other features in all products (including E810).

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com>
Signed-off-by: Michal Michalik <michal.michalik@intel.com>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2023-09-20 08:56:18 -07:00
..
3com
8390 net: ethernet: 8390: Convert to platform remove callback returning void 2023-09-20 09:06:37 +01:00
actions net: ethernet: actions: Convert to platform remove callback returning void 2023-09-20 09:06:37 +01:00
adaptec
adi net:ethernet:adi:adin1110: Fix forwarding offload 2023-09-11 08:30:22 +01:00
aeroflex net: ethernet: aeroflex: Convert to platform remove callback returning void 2023-09-20 09:06:37 +01:00
agere et131x: Use pci_dev_id() to simplify the code 2023-08-13 12:30:39 +01:00
alacritech net: ethernet: slicoss: remove redundant increment of pointer data 2023-07-28 15:37:08 -07:00
allwinner net: ethernet: allwinner: Convert to platform remove callback returning void 2023-09-20 09:06:37 +01:00
alteon
altera net: ethernet: altera: Convert to platform remove callback returning void 2023-09-20 09:06:37 +01:00
amazon net: ena: Use pci_dev_id() to simplify the code 2023-08-17 19:13:09 -07:00
amd net: ethernet: amd: Convert to platform remove callback returning void 2023-09-20 09:06:37 +01:00
apm net: ethernet: apm: Convert to platform remove callback returning void 2023-09-20 09:06:37 +01:00
apple net: ethernet: apple: Convert to platform remove callback returning void 2023-09-20 09:06:37 +01:00
aquantia
arc net: ethernet: arc: Convert to platform remove callback returning void 2023-09-20 09:06:37 +01:00
asix
atheros net: ethernet: atheros: Convert to platform remove callback returning void 2023-09-20 09:06:37 +01:00
broadcom net: ethernet: broadcom: Convert to platform remove callback returning void 2023-09-20 09:06:37 +01:00
brocade Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-07-20 15:52:55 -07:00
cadence net: ethernet: cadence: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
calxeda net: ethernet: calxeda: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
cavium net: ethernet: cavium: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
chelsio - Some swap cleanups from Ma Wupeng ("fix WARN_ON in add_to_avail_list") 2023-08-29 14:25:26 -07:00
cirrus net: ethernet: cirrus: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
cisco
cortina net: ethernet: cortina: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
davicom net: ethernet: davicom: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
dec
dlink
emulex rtnetlink: remove redundant checks for nlattr IFLA_BRIDGE_MODE 2023-08-08 15:10:37 -07:00
engleder net: ethernet: engleder: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
ezchip net: Explicitly include correct DT includes 2023-07-27 20:33:16 -07:00
faraday net: ethernet: faraday: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
freescale Including fixes from netfilter and bpf. 2023-09-07 18:33:07 -07:00
fujitsu
fungible eth: add missing xdp.h includes in drivers 2023-08-03 08:38:07 -07:00
google gve: Use size_add() in call to struct_size() 2023-09-17 18:50:33 +01:00
hisilicon net: ethernet: hisilicon: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
huawei net: hinic: Use devm_kasprintf() 2023-09-13 12:21:09 +01:00
i825xx net: ethernet: i825xx: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
ibm net: ethernet: ibm: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
intel ice: Auxbus devices & driver for E822 TS 2023-09-20 08:56:18 -07:00
litex net: ethernet: litex: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
marvell net: ethernet: marvell: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
mediatek net: ethernet: mediatek: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
mellanox net: ethernet: mellanox: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
micrel net: ethernet: micrel: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
microchip net: ethernet: microchip: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
microsoft net: mana: Add gdma stats to ethtool output for mana 2023-08-11 09:53:59 +01:00
moxa net: ethernet: moxa:: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
mscc net: ethernet: mscc: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
myricom
natsemi net: ethernet: natsemi: Convert to platform remove callback returning void 2023-09-20 09:06:40 +01:00
neterion ethernet: s2io: Use ether_addr_to_u64() to convert ethernet address 2023-08-09 15:26:49 -07:00
netronome rtnetlink: remove redundant checks for nlattr IFLA_BRIDGE_MODE 2023-08-08 15:10:37 -07:00
ni net: ethernet: ni: Convert to platform remove callback returning void 2023-09-20 09:06:40 +01:00
nvidia
nxp net: ethernet: nxp: Convert to platform remove callback returning void 2023-09-20 09:06:40 +01:00
oki-semi
packetengines
pasemi
pensando ionic: expand the descriptor bufs array 2023-09-20 10:52:31 +01:00
qlogic qed/qede: Remove unused declarations 2023-08-23 08:21:37 +01:00
qualcomm net: ethernet: qualcomm: Convert to platform remove callback returning void 2023-09-20 09:06:40 +01:00
rdc
realtek r8169: fix ASPM-related issues on a number of systems with NIC version from RTL8168h 2023-08-28 10:22:57 +01:00
renesas net: ethernet: renesas: Convert to platform remove callback returning void 2023-09-20 09:06:40 +01:00
rocker
samsung net: ethernet: samsung: Convert to platform remove callback returning void 2023-09-20 09:06:40 +01:00
seeq net: ethernet: seeq: Convert to platform remove callback returning void 2023-09-20 09:06:40 +01:00
sfc sfc: make coding style of PTP addresses consistent with core 2023-09-16 11:38:36 +01:00
sgi net: ethernet: sgi: Convert to platform remove callback returning void 2023-09-20 09:06:40 +01:00
silan
sis
smsc net: ethernet: smsc: Convert to platform remove callback returning void 2023-09-20 09:06:40 +01:00
socionext net: ethernet: socionext: Convert to platform remove callback returning void 2023-09-20 09:06:40 +01:00
stmicro net: stmmac: make stmmac_{probe|remove}_config_dt static 2023-09-18 12:44:36 +01:00
sun net: ethernet: sun: Convert to platform remove callback returning void 2023-09-20 09:06:41 +01:00
sunplus net: ethernet: sunplus: Convert to platform remove callback returning void 2023-09-20 09:06:41 +01:00
synopsys
tehuti
ti net: ethernet: ti: Convert to platform remove callback returning void 2023-09-20 09:06:41 +01:00
toshiba net: spider_net: Use size_add() in call to struct_size() 2023-09-18 09:39:41 +01:00
tundra net: ethernet: tundra: Convert to platform remove callback returning void 2023-09-20 09:06:41 +01:00
vertexcom
via net: ethernet: via: Convert to platform remove callback returning void 2023-09-20 09:06:41 +01:00
wangxun net: wangxun: move MDIO bus implementation to the library 2023-09-14 15:18:40 +02:00
wiznet net: ethernet: wiznet: Convert to platform remove callback returning void 2023-09-20 09:06:41 +01:00
xilinx net: ethernet: xilinx: Convert to platform remove callback returning void 2023-09-20 09:06:41 +01:00
xircom
xscale net: ethernet: xscale: Convert to platform remove callback returning void 2023-09-20 09:06:41 +01:00
dnet.c net: ethernet: dnet: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
dnet.h
ec_bhf.c
ethoc.c net: ethernet: ethoc: Convert to platform remove callback returning void 2023-09-20 09:06:38 +01:00
fealnx.c
jme.c
jme.h
Kconfig
korina.c net: ethernet: korina: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
lantiq_etop.c net: ethernet: lantiq_etop: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
lantiq_xrx200.c net: ethernet: lantiq_xrx200: Convert to platform remove callback returning void 2023-09-20 09:06:39 +01:00
Makefile