diff options
author | Horatiu Vultur <horatiu.vultur@microchip.com> | 2021-12-11 22:47:17 +0100 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2021-12-14 14:24:48 +0530 |
commit | 9d031a51b399b368b180886632402273bf53d6a2 (patch) | |
tree | 24853c527b60bbe8ca32678e59479e535c99f9c5 /drivers/phy | |
parent | 16c57fff8390bf494b10c8321293295493e91a0b (diff) |
phy: lan966x: Remove set_speed function
Remove the set_speed function and allow the driver to figure out the
speed at which needs to configure the serdes based on the interface type.
Fixes: 305524902a0045 ("phy: Add lan966x ethernet serdes PHY driver")
Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Link: https://lore.kernel.org/r/20211211214717.1284306-1-horatiu.vultur@microchip.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/phy')
-rw-r--r-- | drivers/phy/microchip/lan966x_serdes.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/drivers/phy/microchip/lan966x_serdes.c b/drivers/phy/microchip/lan966x_serdes.c index c0b80a176387..e86a879b92b5 100644 --- a/drivers/phy/microchip/lan966x_serdes.c +++ b/drivers/phy/microchip/lan966x_serdes.c @@ -392,6 +392,11 @@ static int serdes_set_mode(struct phy *phy, enum phy_mode mode, int submode) if (mode != PHY_MODE_ETHERNET) return -EOPNOTSUPP; + if (submode == PHY_INTERFACE_MODE_2500BASEX) + macro->speed = SPEED_2500; + else + macro->speed = SPEED_1000; + if (submode == PHY_INTERFACE_MODE_1000BASEX || submode == PHY_INTERFACE_MODE_2500BASEX) submode = PHY_INTERFACE_MODE_SGMII; @@ -427,19 +432,8 @@ static int serdes_set_mode(struct phy *phy, enum phy_mode mode, int submode) return -EINVAL; } -static int serdes_set_speed(struct phy *phy, int speed) -{ - struct serdes_macro *macro = phy_get_drvdata(phy); - - macro->speed = speed; - - return lan966x_sd6g40_setup(macro, macro->idx - (CU_MAX + 1), - macro->mode); -} - static const struct phy_ops serdes_ops = { .set_mode = serdes_set_mode, - .set_speed = serdes_set_speed, .owner = THIS_MODULE, }; @@ -482,7 +476,6 @@ static int serdes_phy_create(struct serdes_ctrl *ctrl, u8 idx, struct phy **phy) macro->idx = idx; macro->ctrl = ctrl; - macro->speed = SPEED_1000; macro->port = -1; phy_set_drvdata(*phy, macro); |