summaryrefslogtreecommitdiff
path: root/drivers/net/phy/bcm84881.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/phy/bcm84881.c')
-rw-r--r--drivers/net/phy/bcm84881.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/phy/bcm84881.c b/drivers/net/phy/bcm84881.c
index 9717a1626f3f..ac14697b2979 100644
--- a/drivers/net/phy/bcm84881.c
+++ b/drivers/net/phy/bcm84881.c
@@ -31,6 +31,8 @@ static int bcm84881_wait_init(struct phy_device *phydev)
static int bcm84881_config_init(struct phy_device *phydev)
{
+ phy_interface_zero(phydev->possible_interfaces);
+
switch (phydev->interface) {
case PHY_INTERFACE_MODE_SGMII:
case PHY_INTERFACE_MODE_2500BASEX:
@@ -39,6 +41,11 @@ static int bcm84881_config_init(struct phy_device *phydev)
default:
return -ENODEV;
}
+
+ __set_bit(PHY_INTERFACE_MODE_SGMII, phydev->possible_interfaces);
+ __set_bit(PHY_INTERFACE_MODE_2500BASEX, phydev->possible_interfaces);
+ __set_bit(PHY_INTERFACE_MODE_10GBASER, phydev->possible_interfaces);
+
return 0;
}
@@ -51,6 +58,10 @@ static int bcm84881_probe(struct phy_device *phydev)
(phydev->c45_ids.devices_in_package & mmd_mask) != mmd_mask)
return -ENODEV;
+ __set_bit(PHY_INTERFACE_MODE_SGMII, phydev->supported_interfaces);
+ __set_bit(PHY_INTERFACE_MODE_2500BASEX, phydev->supported_interfaces);
+ __set_bit(PHY_INTERFACE_MODE_10GBASER, phydev->supported_interfaces);
+
return 0;
}