]> git.baikalelectronics.ru Git - kernel.git/commit
net: bcmgenet: soft reset 40nm EPHYs before MAC init
authorDoug Berger <opendmb@gmail.com>
Wed, 16 Oct 2019 23:06:31 +0000 (16:06 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Oct 2019 17:00:07 +0000 (10:00 -0700)
commitb5cfda668daad1fd10badac4e5bb41f7ac522027
tree57627f60d4df5c10c15bd21b824ebf45f99e8f69
parent552de589f16543b945d829d1dcc180c7d74a862d
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: 72765e6b8b57 ("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>
drivers/net/ethernet/broadcom/genet/bcmgenet.c
drivers/net/ethernet/broadcom/genet/bcmgenet.h
drivers/net/ethernet/broadcom/genet/bcmmii.c