History

net: phy: marvell10g: Fix Multi-G advertisement to only advertise 10G

Some Marvell Alaska PHYs support 2.5G, 5G and 10G BaseT links. Their default behaviour is to advertise all of these modes, but at the moment, only 10GBaseT is supported. To prevent link partners from establishing link at that speed, clear these modes upon configuring aneg parameters.

Maxime Chevallier committed 7 years ago

Commit 61a65d31 parent ea34a001 file · +5 −1Browse files

Unified · Split

drivers/net/phy/marvell10g.c+5−1
@@ -26,6 +26,8 @@ · 25 unmodified lines
26#include <linux/marvell_phy.h>26#include <linux/marvell_phy.h>
27#include <linux/phy.h>27#include <linux/phy.h>
28 28
29#define MDIO_AN_10GBT_CTRL_ADV_NBT_MASK 0x01e0
30
29enum {31enum {
30 MV_PCS_BASE_T = 0x0000,32 MV_PCS_BASE_T = 0x0000,
31 MV_PCS_BASE_R = 0x1000,33 MV_PCS_BASE_R = 0x1000,
@@ -386,8 +388,10 @@ static int mv3310_config_aneg(struct phy_device *phydev) · 354 unmodified lines
386 else388 else
387 reg = 0;389 reg = 0;
388 390
391 /* Make sure we clear unsupported 2.5G/5G advertising */
389 ret = mv3310_modify(phydev, MDIO_MMD_AN, MDIO_AN_10GBT_CTRL,392 ret = mv3310_modify(phydev, MDIO_MMD_AN, MDIO_AN_10GBT_CTRL,
390 MDIO_AN_10GBT_CTRL_ADV10G, reg);393 MDIO_AN_10GBT_CTRL_ADV10G |
394 MDIO_AN_10GBT_CTRL_ADV_NBT_MASK, reg);
391 if (ret < 0)395 if (ret < 0)
392 return ret;396 return ret;
393 if (ret > 0)397 if (ret > 0)