stmmac: do not poll phy handler when attach a switch
authorGiuseppe Cavallaro <peppe.cavallaro@st.com>
Mon, 29 Feb 2016 13:27:39 +0000 (14:27 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 2 Mar 2016 19:21:33 +0000 (14:21 -0500)
This patch avoids to call the stmmac_adjust_link when
the driver is connected to a switch by using the FIXED_PHY
support. Prior this patch the phydev->irq was set as PHY_POLL
so periodically the phy handler was invoked spending useless
time because the link cannot actually change.
Note that the stmmac_adjust_link will be called just one
time and this guarantees that the ST glue logic will be
setup according to the mode and speed fixed.

Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: Alexandre TORGUE <alexandre.torgue@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

index 90b2612db03aba43907075ef374e420511c5dec8..eab7ac0f5bc1750c0120ca61dcb82dfca58f04c8 100644 (file)
@@ -866,6 +866,11 @@ static int stmmac_init_phy(struct net_device *dev)
                phy_disconnect(phydev);
                return -ENODEV;
        }
+
+       /* If attached to a switch, there is no reason to poll phy handler */
+       if (!strcmp(priv->plat->phy_bus_name, "fixed"))
+               phydev->irq = PHY_IGNORE_INTERRUPT;
+
        pr_debug("stmmac_init_phy:  %s: attached to PHY (UID 0x%x)"
                 " Link = %d\n", dev->name, phydev->phy_id, phydev->link);