linux/drivers/net/ethernet
Doug Berger 1f51548627 net: bcmgenet: soft reset 40nm EPHYs before MAC init
It turns out that the "Workaround for putting the PHY in IDDQ mode"
used by the internal EPHYs on 40nm Set-Top Box chips when powering
down puts the interface to the GENET MAC in a state that can cause
subsequent MAC resets to be incomplete.

Rather than restore the forced soft reset when powering up internal
PHYs, this commit moves the invocation of phy_init_hw earlier in
the MAC initialization sequence to just before the MAC reset in the
open and resume functions. This allows the interface to be stable
and allows the MAC resets to be successful.

The bcmgenet_mii_probe() function is split in two to accommodate
this. The new function bcmgenet_mii_connect() handles the first
half of the functionality before the MAC initialization, and the
bcmgenet_mii_config() function is extended to provide the remaining
PHY configuration following the MAC initialization.

Fixes: 484bfa1507 ("Revert "net: bcmgenet: Software reset EPHY after power on"")
Signed-off-by: Doug Berger <opendmb@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-18 10:00:07 -07:00
..
3com
8390
adaptec
aeroflex
agere
alacritech
allwinner drivers: net: Fix Kconfig indentation 2019-09-26 08:56:17 +02:00
alteon
altera
amazon net: ena: clean up indentation issue 2019-09-27 20:32:02 +02:00
amd Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-09-02 11:20:17 -07:00
apm
apple
aquantia net: aquantia: correctly handle macvlan and multicast coexistence 2019-10-14 17:01:53 -07:00
arc
atheros net: ag71xx: fix mdio subnode support 2019-10-01 10:19:19 -07:00
aurora
broadcom net: bcmgenet: soft reset 40nm EPHYs before MAC init 2019-10-18 10:00:07 -07:00
brocade
cadence net: macb: Remove dead code 2019-09-25 13:59:43 +02:00
calxeda
cavium net: cavium: Use the correct style for SPDX License Identifier 2019-10-15 15:00:56 -07:00
chelsio cxgb4:Fix out-of-bounds MSI-X info array access 2019-10-04 14:42:13 -07:00
cirrus cirrus: cs89x0: remove set but not used variable 'lp' 2019-08-25 19:48:59 -07:00
cisco
cortina
davicom
dec
dlink
emulex drivers: net: Fix Kconfig indentation 2019-09-26 08:56:17 +02:00
ezchip ezchip: nps_enet: use devm_platform_ioremap_resource() to simplify code 2019-08-21 13:42:13 -07:00
faraday
freescale dpaa2-eth: Fix TX FQID values 2019-10-17 15:27:29 -04:00
fujitsu
google gve: Copy and paste bug in gve_get_stats() 2019-08-21 20:50:26 -07:00
hisilicon net: hisilicon: Fix usage of uninitialized variable in function mdio_sc_cfg_reg_write() 2019-10-02 14:20:22 -07:00
hp
huawei
i825xx net: i82596: fix dma_alloc_attr for sni_82596 2019-10-15 20:50:05 -07:00
ibm net/ibmvnic: Fix EOI when running in XIVE mode. 2019-10-13 11:18:56 -07:00
intel pci-v5.4-changes 2019-09-23 19:16:01 -07:00
marvell skge: fix checksum byte order 2019-09-24 16:53:19 +02:00
mediatek net: ethernet: mediatek: Fix MT7629 missing GMII mode support 2019-10-15 18:03:35 -07:00
mellanox net/mlx5: DR, Allow insertion of duplicate rules 2019-10-08 16:14:50 -07:00
micrel Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2019-09-18 12:34:53 -07:00
microchip lan743x: remove redundant assignment to variable rx_process_result 2019-09-06 16:47:07 +02:00
moxa
mscc net: mscc: ocelot: add missing of_node_put after calling of_get_child_by_name 2019-10-01 10:01:58 -07:00
myricom
natsemi net: sonic: replace dev_kfree_skb in sonic_send_packet 2019-09-11 09:14:01 +01:00
neterion
netronome Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-09-28 17:47:33 -07:00
ni net: nixge: Fix a signedness bug in nixge_probe() 2019-09-27 10:20:36 +02:00
nvidia Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-09-15 14:17:27 +02:00
nxp net: lpc_eth: avoid resetting twice 2019-10-13 11:15:25 -07:00
oki-semi
packetengines ethernet: Delete unnecessary checks before the macro call “dev_kfree_skb” 2019-08-22 16:22:04 -07:00
pasemi
pensando ionic: fix stats memory dereference 2019-10-07 09:41:56 -04:00
qlogic net: qlogic: Fix memory leak in ql_alloc_large_buffers 2019-10-04 18:33:13 -07:00
qualcomm ethernet: Delete unnecessary checks before the macro call “dev_kfree_skb” 2019-08-22 16:22:04 -07:00
rdc
realtek r8169: fix jumbo packet handling on resume from suspend 2019-10-10 16:25:46 -07:00
renesas ravb: TROCR register is only present on R-Car Gen3 2019-09-06 16:46:10 +02:00
rocker rocker: add missing init_net check in FIB notifier 2019-09-05 12:14:10 +02:00
samsung net: sxgbe: use devm_platform_ioremap_resource() to simplify code 2019-08-21 13:42:12 -07:00
seeq net: seeq: Fix the function used to release some memory in an error handling path 2019-09-01 12:10:11 -07:00
sfc
sgi net: sgi: ioc3-eth: no need to stop queue set_multicast_list 2019-08-30 13:54:36 -07:00
silan
sis
smsc ethernet: Delete unnecessary checks before the macro call “dev_kfree_skb” 2019-08-22 16:22:04 -07:00
socionext net: socionext: netsec: always grab descriptor lock 2019-10-01 09:07:47 -07:00
stmicro net: stmmac: fix argument to stmmac_pcs_ctrl_ane() 2019-10-17 15:31:04 -04:00
sun ethernet: Delete unnecessary checks before the macro call “dev_kfree_skb” 2019-08-22 16:22:04 -07:00
synopsys
tehuti
ti davinci_cpdma: make cpdma_chan_split_pool static 2019-10-15 20:56:14 -07:00
toshiba net: spider_net: Use struct_size() helper 2019-08-29 17:53:59 -07:00
tundra
via via-rhine: use devm_platform_ioremap_resource() to simplify code 2019-08-21 13:42:12 -07:00
wiznet
xilinx net: axienet: fix a signedness bug in probe 2019-09-27 10:17:22 +02:00
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c pci-v5.4-changes 2019-09-23 19:16:01 -07:00
jme.h
Kconfig net: remove netx ethernet driver 2019-09-21 19:08:31 -07:00
korina.c
lantiq_etop.c
lantiq_xrx200.c
Makefile net: remove netx ethernet driver 2019-09-21 19:08:31 -07:00