|
@@ -144,41 +144,11 @@ static int at803x_resume(struct phy_device *phydev)
|
|
|
|
|
|
static int at803x_config_init(struct phy_device *phydev)
|
|
|
{
|
|
|
- int val;
|
|
|
int ret;
|
|
|
- u32 features;
|
|
|
-
|
|
|
- features = SUPPORTED_TP | SUPPORTED_MII | SUPPORTED_AUI |
|
|
|
- SUPPORTED_FIBRE | SUPPORTED_BNC;
|
|
|
-
|
|
|
- val = phy_read(phydev, MII_BMSR);
|
|
|
- if (val < 0)
|
|
|
- return val;
|
|
|
-
|
|
|
- if (val & BMSR_ANEGCAPABLE)
|
|
|
- features |= SUPPORTED_Autoneg;
|
|
|
- if (val & BMSR_100FULL)
|
|
|
- features |= SUPPORTED_100baseT_Full;
|
|
|
- if (val & BMSR_100HALF)
|
|
|
- features |= SUPPORTED_100baseT_Half;
|
|
|
- if (val & BMSR_10FULL)
|
|
|
- features |= SUPPORTED_10baseT_Full;
|
|
|
- if (val & BMSR_10HALF)
|
|
|
- features |= SUPPORTED_10baseT_Half;
|
|
|
-
|
|
|
- if (val & BMSR_ESTATEN) {
|
|
|
- val = phy_read(phydev, MII_ESTATUS);
|
|
|
- if (val < 0)
|
|
|
- return val;
|
|
|
-
|
|
|
- if (val & ESTATUS_1000_TFULL)
|
|
|
- features |= SUPPORTED_1000baseT_Full;
|
|
|
- if (val & ESTATUS_1000_THALF)
|
|
|
- features |= SUPPORTED_1000baseT_Half;
|
|
|
- }
|
|
|
|
|
|
- phydev->supported = features;
|
|
|
- phydev->advertising = features;
|
|
|
+ ret = genphy_config_init(phydev);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
|
|
|
if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID) {
|
|
|
ret = phy_write(phydev, AT803X_DEBUG_ADDR,
|