mirror of https://gitee.com/openkylin/linux.git
net: phy: at803x: stop switching phy delay config needlessly
This driver does a funny dance disabling and re-enabling RX and/or TX delays. In any of the RGMII-ID modes, it first disables the delays, just to re-enable them again right away. This looks like a needless exercise. Just enable the respective delays when in any of the relevant 'id' modes, and disable them otherwise. Also, remove comments which don't add anything that can't be seen by looking at the code. Signed-off-by: André Draszik <git@andred.net> CC: Andrew Lunn <andrew@lunn.ch> CC: Florian Fainelli <f.fainelli@gmail.com> CC: Heiner Kallweit <hkallweit1@gmail.com> CC: "David S. Miller" <davem@davemloft.net> CC: netdev@vger.kernel.org Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
125b7e0949
commit
bb0ce4c151
|
@ -257,36 +257,20 @@ static int at803x_config_init(struct phy_device *phydev)
|
||||||
* after HW reset: RX delay enabled and TX delay disabled
|
* after HW reset: RX delay enabled and TX delay disabled
|
||||||
* after SW reset: RX delay enabled, while TX delay retains the
|
* after SW reset: RX delay enabled, while TX delay retains the
|
||||||
* value before reset.
|
* value before reset.
|
||||||
*
|
|
||||||
* So let's first disable the RX and TX delays in PHY and enable
|
|
||||||
* them based on the mode selected (this also takes care of RGMII
|
|
||||||
* mode where we expect delays to be disabled)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ret = at803x_disable_rx_delay(phydev);
|
|
||||||
if (ret < 0)
|
|
||||||
return ret;
|
|
||||||
ret = at803x_disable_tx_delay(phydev);
|
|
||||||
if (ret < 0)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID ||
|
if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID ||
|
||||||
phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID) {
|
phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID)
|
||||||
/* If RGMII_ID or RGMII_RXID are specified enable RX delay,
|
|
||||||
* otherwise keep it disabled
|
|
||||||
*/
|
|
||||||
ret = at803x_enable_rx_delay(phydev);
|
ret = at803x_enable_rx_delay(phydev);
|
||||||
if (ret < 0)
|
else
|
||||||
return ret;
|
ret = at803x_disable_rx_delay(phydev);
|
||||||
}
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID ||
|
if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID ||
|
||||||
phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID) {
|
phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID)
|
||||||
/* If RGMII_ID or RGMII_TXID are specified enable TX delay,
|
|
||||||
* otherwise keep it disabled
|
|
||||||
*/
|
|
||||||
ret = at803x_enable_tx_delay(phydev);
|
ret = at803x_enable_tx_delay(phydev);
|
||||||
}
|
else
|
||||||
|
ret = at803x_disable_tx_delay(phydev);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue