diff options
Diffstat (limited to 'drivers/net/phy/bcm84881.c')
-rw-r--r-- | drivers/net/phy/bcm84881.c | 11 |
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; } |