net: phy: ensure Gigabit features are masked off if requested
authorFlorian Fainelli <f.fainelli@gmail.com>
Mon, 3 Feb 2014 20:35:46 +0000 (12:35 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 5 Feb 2014 04:15:51 +0000 (20:15 -0800)
commit5273e3a5ca94fbeb8e07d31203069220d5e682aa
treefe7b2b94abe1a8851cae5b6c3ffbd16bd1209b4a
parent62ad968402466c4777a6634c86010e86521bc745
net: phy: ensure Gigabit features are masked off if requested

When a Gigabit PHY device is connected to a 10/100Mbits capable Ethernet
MAC, the driver will restrict the phydev->supported modes to mask off
Gigabit. If the Gigabit PHY comes out of reset with the Gigabit features
set by default in MII_CTRL1000, it will keep advertising these feature,
so by the time we call genphy_config_advert(), the condition on
phydev->supported having the Gigabit features on is false, and we do not
update MII_CTRL1000 with updated values, and we keep advertising Gigabit
features, eventually configuring the PHY for Gigabit whilst the Ethernet
MAC does not support that.

This patches fixes the problem by ensuring that the Gigabit feature bits
are always cleared in MII_CTRL1000, if the PHY happens to be a Gigabit
PHY, and then, if Gigabit features are supported, setting those and
updating MII_CTRL1000 accordingly.

Reported-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy_device.c