Skip to content

Commit

Permalink
net: phy: icplus: don't set APS_EN bit on IP101G
Browse files Browse the repository at this point in the history
This bit is reserved as 'always-write-1'. While this is not a particular
error, because we are only setting it, guard it by checking the model to
prevent errors in the future.

Signed-off-by: Michael Walle <michael@walle.cc>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Michael Walle authored and David S. Miller committed Feb 11, 2021
1 parent 675115b commit eeac7d4
Showing 1 changed file with 20 additions and 7 deletions.
27 changes: 20 additions & 7 deletions drivers/net/phy/icplus.c
Original file line number Diff line number Diff line change
Expand Up @@ -208,10 +208,10 @@ static int ip101a_g_probe(struct phy_device *phydev)
return 0;
}

static int ip101a_g_config_init(struct phy_device *phydev)
static int ip101a_g_config_intr_pin(struct phy_device *phydev)
{
struct ip101a_g_phy_priv *priv = phydev->priv;
int err, c;
int err;

/* configure the RXER/INTR_32 pin of the 32-pin IP101GR if needed: */
switch (priv->sel_intr32) {
Expand Down Expand Up @@ -241,11 +241,24 @@ static int ip101a_g_config_init(struct phy_device *phydev)
break;
}

return 0;
}

static int ip101a_config_init(struct phy_device *phydev)
{
int ret;

/* Enable Auto Power Saving mode */
c = phy_read(phydev, IP10XX_SPEC_CTRL_STATUS);
c |= IP101A_G_APS_ON;
ret = phy_set_bits(phydev, IP10XX_SPEC_CTRL_STATUS, IP101A_G_APS_ON);
if (ret)
return ret;

return phy_write(phydev, IP10XX_SPEC_CTRL_STATUS, c);
return ip101a_g_config_intr_pin(phydev);
}

static int ip101g_config_init(struct phy_device *phydev)
{
return ip101a_g_config_intr_pin(phydev);
}

static int ip101a_g_ack_interrupt(struct phy_device *phydev)
Expand Down Expand Up @@ -379,7 +392,7 @@ static struct phy_driver icplus_driver[] = {
.probe = ip101a_g_probe,
.config_intr = ip101a_g_config_intr,
.handle_interrupt = ip101a_g_handle_interrupt,
.config_init = ip101a_g_config_init,
.config_init = ip101a_config_init,
.soft_reset = genphy_soft_reset,
.suspend = genphy_suspend,
.resume = genphy_resume,
Expand All @@ -389,7 +402,7 @@ static struct phy_driver icplus_driver[] = {
.probe = ip101a_g_probe,
.config_intr = ip101a_g_config_intr,
.handle_interrupt = ip101a_g_handle_interrupt,
.config_init = ip101a_g_config_init,
.config_init = ip101g_config_init,
.soft_reset = genphy_soft_reset,
.suspend = genphy_suspend,
.resume = genphy_resume,
Expand Down

0 comments on commit eeac7d4

Please sign in to comment.