Skip to content

Commit 31739ea

Browse files
Doug Bergerdavem330
authored andcommitted
net: bcmgenet: remove bcmgenet_internal_phy_setup()
Commit 6ac3ce8 ("net: bcmgenet: Remove excessive PHY reset") removed the bcmgenet_mii_reset() function from bcmgenet_power_up() and bcmgenet_internal_phy_setup() functions. In so doing it broke the reset of the internal PHY devices used by the GENETv1-GENETv3 which required this reset before the UniMAC was enabled. It also broke the internal GPHY devices used by the GENETv4 because the config_init that installed the AFE workaround was no longer occurring after the reset of the GPHY performed by bcmgenet_phy_power_set() in bcmgenet_internal_phy_setup(). In addition the code in bcmgenet_internal_phy_setup() related to the "enable APD" comment goes with the bcmgenet_mii_reset() so it should have also been removed. Commit bd4060a ("net: bcmgenet: Power on integrated GPHY in bcmgenet_power_up()") moved the bcmgenet_phy_power_set() call to the bcmgenet_power_up() function, but failed to remove it from the bcmgenet_internal_phy_setup() function. Had it done so, the bcmgenet_internal_phy_setup() function would have been empty and could have been removed at that time. Commit 5dbebbb ("net: bcmgenet: Software reset EPHY after power on") was submitted to correct the functional problems introduced by commit 6ac3ce8 ("net: bcmgenet: Remove excessive PHY reset"). It was included in v4.4 and made available on 4.3-stable. Unfortunately, it didn't fully revert the commit because this bcmgenet_mii_reset() doesn't apply the soft reset to the internal GPHY used by GENETv4 like the previous one did. This prevents the restoration of the AFE work- arounds for internal GPHY devices after the bcmgenet_phy_power_set() in bcmgenet_internal_phy_setup(). This commit takes the alternate approach of removing the unnecessary bcmgenet_internal_phy_setup() function which shouldn't have been in v4.3 so that when bcmgenet_mii_reset() was restored it should have only gone into bcmgenet_power_up(). This will avoid the problems while also removing the redundancy (and hopefully some of the confusion). Fixes: 6ac3ce8 ("net: bcmgenet: Remove excessive PHY reset") Signed-off-by: Doug Berger <[email protected]> Reviewed-by: Florian Fainelli <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent d515684 commit 31739ea

File tree

1 file changed

+0
-15
lines changed
  • drivers/net/ethernet/broadcom/genet

1 file changed

+0
-15
lines changed

drivers/net/ethernet/broadcom/genet/bcmmii.c

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -220,20 +220,6 @@ void bcmgenet_phy_power_set(struct net_device *dev, bool enable)
220220
udelay(60);
221221
}
222222

223-
static void bcmgenet_internal_phy_setup(struct net_device *dev)
224-
{
225-
struct bcmgenet_priv *priv = netdev_priv(dev);
226-
u32 reg;
227-
228-
/* Power up PHY */
229-
bcmgenet_phy_power_set(dev, true);
230-
/* enable APD */
231-
reg = bcmgenet_ext_readl(priv, EXT_EXT_PWR_MGMT);
232-
reg |= EXT_PWR_DN_EN_LD;
233-
bcmgenet_ext_writel(priv, reg, EXT_EXT_PWR_MGMT);
234-
bcmgenet_mii_reset(dev);
235-
}
236-
237223
static void bcmgenet_moca_phy_setup(struct bcmgenet_priv *priv)
238224
{
239225
u32 reg;
@@ -281,7 +267,6 @@ int bcmgenet_mii_config(struct net_device *dev)
281267

282268
if (priv->internal_phy) {
283269
phy_name = "internal PHY";
284-
bcmgenet_internal_phy_setup(dev);
285270
} else if (priv->phy_interface == PHY_INTERFACE_MODE_MOCA) {
286271
phy_name = "MoCA";
287272
bcmgenet_moca_phy_setup(priv);

0 commit comments

Comments
 (0)