linux/drivers/net/ethernet/broadcom
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
..
bnx2x bnx2x: Fix VF's VLAN reconfiguration in reload. 2019-08-18 12:45:07 -07:00
bnxt bnxt_en: Add a new BNXT_FW_RESET_STATE_POLL_FW_DOWN state. 2019-09-16 16:44:27 +02:00
genet net: bcmgenet: soft reset 40nm EPHYs before MAC init 2019-10-18 10:00:07 -07:00
b44.c net: b44: replace dev_kfree_skb_xxx by dev_consume_skb_xxx for drop profiles 2019-01-29 10:11:42 -08:00
b44.h
bcm63xx_enet.c bcm63xx_enet: use devm_platform_ioremap_resource() to simplify code 2019-08-01 13:10:34 -04:00
bcm63xx_enet.h
bcmsysport.c net: broadcom/bcmsysport: Fix signedness in bcm_sysport_probe() 2019-09-27 10:02:24 +02:00
bcmsysport.h Generic DIM 2019-06-27 12:42:51 -07:00
bgmac-bcma-mdio.c
bgmac-bcma.c net: ethernet: support of_get_mac_address new ERR_PTR error 2019-05-07 12:22:47 -07:00
bgmac-platform.c net: Remove dev_err() usage after platform_get_irq() 2019-07-30 14:37:35 -07:00
bgmac.c net: Use skb accessors in network drivers 2019-07-22 20:47:56 -07:00
bgmac.h net: bgmac: Correctly annotate register space 2018-04-01 22:20:48 -04:00
bnx2_fw.h
bnx2.c net: broadcom: Use dev_get_drvdata 2019-07-23 13:02:41 -07:00
bnx2.h
cnic_defs.h
cnic_if.h
cnic.c cnic: Explicitly initialize all reference counts to 0. 2019-08-05 13:21:55 -07:00
cnic.h
Kconfig net: ethernet: broadcom: have drivers select DIMLIB as needed 2019-10-15 10:58:08 -07:00
Makefile
sb1250-mac.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
tg3.c net: broadcom: Use dev_get_drvdata 2019-07-23 13:02:41 -07:00
tg3.h broadcom: tg3: fix use of SPEED_UNKNOWN ethtool constant 2019-04-08 16:30:43 -07:00