summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorNathan Rossi <nathan@nathanrossi.com>2017-03-06 00:36:23 +1000
committerJoe Hershberger <joe.hershberger@ni.com>2017-03-07 11:27:33 -0600
commit2c2ab8d65ff6c95a8af0fdb90cb34a777c28e3a1 (patch)
tree897d2859f01882a57c94db1286c864e33f31da38 /drivers/net
parent3fd2b3aa19b9479b5e785087e4951d3a7bbb87be (diff)
downloadu-boot-imx-2c2ab8d65ff6c95a8af0fdb90cb34a777c28e3a1.zip
u-boot-imx-2c2ab8d65ff6c95a8af0fdb90cb34a777c28e3a1.tar.gz
u-boot-imx-2c2ab8d65ff6c95a8af0fdb90cb34a777c28e3a1.tar.bz2
net: zynq_gem: Fix masking of supported phydev features
When the zynq_gem driver initializes the phy it sets the supported features that the phy can support and advertise. However instead of masking the supported features such that it limits the available features it sets the phy to have the exact supported features of the zynq_gem. This is problematic as it will enable features that a phy does not have or cannot advertise. Specifically this appears as an issue when using a phy that is only capable of 10/100, but the zynq_gem driver will override this and try to enable and advertise 10/100/1000. Reported-by: Arno Steffens <star@gmx.li> Fixes: 80243528ef ("net: gem: Fix gem driver on 1Gbps LAN") Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Tested-by: Arno Steffens <star@gmx.li> Cc: Joe Hershberger <joe.hershberger@ni.com> Cc: Michal Simek <michal.simek@xilinx.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com> Acked-by: Michal Simek <michal.simek@xilinx.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/zynq_gem.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
index 86dd03f..a160564 100644
--- a/drivers/net/zynq_gem.c
+++ b/drivers/net/zynq_gem.c
@@ -340,7 +340,7 @@ static int zynq_phy_init(struct udevice *dev)
if (!priv->phydev)
return -ENODEV;
- priv->phydev->supported = supported | ADVERTISED_Pause |
+ priv->phydev->supported &= supported | ADVERTISED_Pause |
ADVERTISED_Asym_Pause;
priv->phydev->advertising = priv->phydev->supported;