From: Nathan Rossi Date: Sun, 5 Mar 2017 14:36:23 +0000 (+1000) Subject: net: zynq_gem: Fix masking of supported phydev features X-Git-Tag: v2017.03~18^2 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2c2ab8d65ff6c95a8af0fdb90cb34a777c28e3a1;p=oweals%2Fu-boot.git 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 Fixes: 80243528ef ("net: gem: Fix gem driver on 1Gbps LAN") Signed-off-by: Nathan Rossi Tested-by: Arno Steffens Cc: Joe Hershberger Cc: Michal Simek Acked-by: Joe Hershberger Acked-by: Michal Simek --- diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c index 86dd03feda..a160564439 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;