summaryrefslogtreecommitdiffstats
path: root/drivers/net/phy/smsc.c
diff options
context:
space:
mode:
authorMarco Felsch <m.felsch@pengutronix.de>2020-09-09 15:44:58 +0200
committerDavid S. Miller <davem@davemloft.net>2020-09-09 14:15:02 -0700
commit436e380064ea27924f65b9af47876032c4162cf2 (patch)
tree51343b9c26d87d9f9b5fb89474d0f365bedaf63f /drivers/net/phy/smsc.c
parent7365494550f6e96b8e444201bf5fdaec40e7e007 (diff)
downloadlinux-436e380064ea27924f65b9af47876032c4162cf2.tar.bz2
net: phy: smsc: simplify config_init callback
Exit the driver specific config_init hook early if energy detection is disabled. We can do this because we don't need to clear the interrupt status here. Clearing the status should be removed anyway since this is handled by the phy_enable_interrupts(). Signed-off-by: Marco Felsch <m.felsch@pengutronix.de> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/phy/smsc.c')
-rw-r--r--drivers/net/phy/smsc.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/net/phy/smsc.c b/drivers/net/phy/smsc.c
index 19ab2821cff0..0bcdf927a790 100644
--- a/drivers/net/phy/smsc.c
+++ b/drivers/net/phy/smsc.c
@@ -73,19 +73,21 @@ static int smsc_phy_ack_interrupt(struct phy_device *phydev)
static int smsc_phy_config_init(struct phy_device *phydev)
{
struct smsc_phy_priv *priv = phydev->priv;
+ int rc;
+
+ if (!priv->energy_enable)
+ return 0;
- int rc = phy_read(phydev, MII_LAN83C185_CTRL_STATUS);
+ rc = phy_read(phydev, MII_LAN83C185_CTRL_STATUS);
if (rc < 0)
return rc;
- if (priv->energy_enable) {
- /* Enable energy detect mode for this SMSC Transceivers */
- rc = phy_write(phydev, MII_LAN83C185_CTRL_STATUS,
- rc | MII_LAN83C185_EDPWRDOWN);
- if (rc < 0)
- return rc;
- }
+ /* Enable energy detect mode for this SMSC Transceivers */
+ rc = phy_write(phydev, MII_LAN83C185_CTRL_STATUS,
+ rc | MII_LAN83C185_EDPWRDOWN);
+ if (rc < 0)
+ return rc;
return smsc_phy_ack_interrupt(phydev);
}