mirror_ubuntu-kernels/drivers/net/ethernet
Radhey Shyam Pandey 6c461e394d net: macb: In ZynqMP resume always configure PS GTR for non-wakeup source
On Zynq UltraScale+ MPSoC ubuntu platform when systemctl issues suspend,
network manager bring down the interface and goes into suspend. When it
wakes up it again enables the interface.

This leads to xilinx-psgtr "PLL lock timeout" on interface bringup, as
the power management controller power down the entire FPD (including
SERDES) if none of the FPD devices are in use and serdes is not
initialized on resume.

$ sudo rtcwake -m no -s 120 -v
$ sudo systemctl suspend  <this does ifconfig eth1 down>
$ ifconfig eth1 up
xilinx-psgtr fd400000.phy: lane 0 (type 10, protocol 5): PLL lock timeout
phy phy-fd400000.phy.0: phy poweron failed --> -110

macb driver is called in this way:
1. macb_close: Stop network interface. In this function, it
   reset MACB IP and disables PHY and network interface.

2. macb_suspend: It is called in kernel suspend flow. But because
   network interface has been disabled(netif_running(ndev) is
   false), it does nothing and returns directly;

3. System goes into suspend state. Some time later, system is
   waken up by RTC wakeup device;

4. macb_resume: It does nothing because network interface has
   been disabled;

5. macb_open: It is called to enable network interface again. ethernet
   interface is initialized in this API but serdes which is power-off
   by PMUFW during FPD-off suspend is not initialized again and so
   we hit GT PLL lock issue on open.

To resolve this PLL timeout issue always do PS GTR initialization
when ethernet device is configured as non-wakeup source.

Fixes: f22bd29ba1 ("net: macb: Fix ZynqMP SGMII non-wakeup source resume failure")
Fixes: 8b73fa3ae0 ("net: macb: Added ZynqMP-specific initialization")
Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
Link: https://lore.kernel.org/r/1691414091-2260697-1-git-send-email-radhey.shyam.pandey@amd.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-08-14 19:03:39 -07:00
..
3com 3c589_cs: Fix an error handling path in tc589_probe() 2023-05-22 19:17:58 -07:00
8390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-05-18 14:39:34 -07:00
actions
adaptec
adi
aeroflex
agere
alacritech
allwinner
alteon
altera net: altera_tse: explicitly disable autoscan on the regmap-mdio bus 2023-06-07 13:30:12 -07:00
amazon net: ena: fix shift-out-of-bounds in exponential backoff 2023-07-12 15:57:57 -07:00
amd pds_core: use vmalloc_array and vcalloc 2023-06-27 09:30:23 -07:00
apm
apple
aquantia net: introduce and use skb_frag_fill_page_desc() 2023-05-13 19:47:56 +01:00
arc net: arc: Make arc_emac_remove() return void 2023-05-19 13:33:28 +01:00
asix
atheros ethernet: atheros: fix return value check in atl1e_tso_csum() 2023-07-24 15:43:02 -07:00
broadcom bnxt_en: Fix max_mtu setting for multi-buf XDP 2023-08-01 15:04:58 -07:00
brocade bna: Remove error checking for debugfs_create_dir() 2023-07-14 09:09:12 +01:00
cadence net: macb: In ZynqMP resume always configure PS GTR for non-wakeup source 2023-08-14 19:03:39 -07:00
calxeda
cavium Networking changes for 6.5. 2023-06-28 16:43:10 -07:00
chelsio sock: Remove ->sendpage*() in favour of sendmsg(MSG_SPLICE_PAGES) 2023-06-24 15:50:13 -07:00
cirrus net: isa: include net/Space.h 2023-05-17 21:27:30 -07:00
cisco
cortina
davicom spi: Updates for v6.4 2023-04-27 11:02:26 -07:00
dec
dlink
emulex benet: fix return value check in be_lancer_xmit_workarounds() 2023-07-27 10:31:38 +02:00
engleder net/sched: taprio: replace tc_taprio_qopt_offload :: enable with a "cmd" enum 2023-05-31 10:00:30 +01:00
ezchip
faraday
freescale net: enetc: remove of_device_is_available() handling 2023-08-09 09:18:31 +01:00
fujitsu
fungible net: tls: make the offload check helper take skb not socket 2023-06-15 09:01:05 +01:00
google gve: unify driver name usage 2023-07-10 08:29:55 +01:00
hisilicon net: hns3: fix strscpy causing content truncation issue 2023-08-10 11:47:56 -07:00
huawei
i825xx net: ethernet: i825xx: sun3_8256: Add SPDX license identifier 2023-05-16 15:38:07 +02:00
ibm ibmvnic: Ensure login failure recovery is safe from other resets 2023-08-10 10:36:36 -07:00
intel iavf: fix potential races for FDIR filters 2023-08-08 16:38:28 -07:00
litex net: ethernet: litex: add support for 64 bit stats 2023-06-15 22:56:46 -07:00
marvell net: marvell: prestera: fix handling IPv4 routes with nhid 2023-08-07 19:20:50 -07:00
mediatek net: ethernet: mtk_eth_soc: always mtk_get_ib1_pkt_type 2023-07-19 21:15:04 -07:00
mellanox net/mlx5e: Add capability check for vnic counters 2023-08-07 11:48:40 -07:00
micrel
microchip net: lan743x: select FIXED_PHY 2023-07-09 11:23:47 +01:00
microsoft net: mana: Fix MANA VF unload when hardware is unresponsive 2023-08-10 10:27:58 -07:00
moxa
mscc drivers:net: fix return value check in ocelot_fdma_receive_skb 2023-07-19 12:27:09 +01:00
myricom net: move gso declarations and functions to their own files 2023-06-10 00:11:41 -07:00
natsemi
neterion
netronome nfp: clean mc addresses in application firmware when closing port 2023-07-05 10:59:12 -07:00
ni
nvidia forcedeth: Fix an error handling path in nv_probe() 2023-05-22 19:17:28 -07:00
nxp
oki-semi net: pch_gbe: Allow build on MIPS_GENERIC kernel 2023-06-08 19:18:32 -07:00
packetengines
pasemi
pensando ionic: Add missing err handling for queue reconfig 2023-08-06 16:44:03 +01:00
qlogic qed: Fix scheduling in a tasklet while getting stats 2023-07-29 17:09:18 +01:00
qualcomm drivers: net: fix return value check in emac_tso_csum() 2023-07-19 12:27:09 +01:00
rdc
realtek Revert "r8169: disable ASPM during NAPI poll" 2023-07-19 21:09:11 -07:00
renesas Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-06-15 22:19:41 -07:00
rocker
samsung net: samsung: sxgbe: Make sxgbe_drv_remove() return void 2023-05-12 08:49:49 +01:00
seeq
sfc sfc: fix field-spanning memcpy in selftest 2023-07-31 14:27:53 -07:00
sgi
silan
sis
smsc
socionext net: netsec: Ignore 'phy-mode' on SynQuacer in DT mode 2023-08-01 14:59:45 -07:00
stmicro net: stmmac: tegra: Properly allocate clock bulk data 2023-07-29 16:59:51 +01:00
sun sunvnet: fix sparc64 build error after gso code split 2023-06-15 22:47:13 -07:00
sunplus
synopsys
tehuti
ti net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field()/cpsw_ale_set_field() 2023-07-14 08:36:43 +01:00
toshiba
tundra
vertexcom
via
wangxun net: ethernet: Remove repeating expression 2023-07-14 09:11:10 +01:00
wiznet
xilinx net: ll_temac: fix error checking of irq_of_parse_and_map() 2023-08-01 14:38:17 -07:00
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c
jme.h
Kconfig
korina.c net: korina: handle clk prepare error in korina_probe() 2023-08-01 14:58:34 -07:00
lantiq_etop.c
lantiq_xrx200.c
Makefile