| From foo@baz Sat Sep 26 11:13:07 PDT 2015 |
| From: Florian Fainelli <f.fainelli@gmail.com> |
| Date: Sat, 8 Aug 2015 12:58:57 -0700 |
| Subject: net: dsa: Do not override PHY interface if already configured |
| |
| From: Florian Fainelli <f.fainelli@gmail.com> |
| |
| [ Upstream commit 211c504a444710b1d8ce3431ac19f2578602ca27 ] |
| |
| In case we need to divert reads/writes using the slave MII bus, we may have |
| already fetched a valid PHY interface property from Device Tree, and that |
| mode is used by the PHY driver to make configuration decisions. |
| |
| If we could not fetch the "phy-mode" property, we will assign p->phy_interface |
| to PHY_INTERFACE_MODE_NA, such that we can actually check for that condition as |
| to whether or not we should override the interface value. |
| |
| Fixes: 19334920eaf7 ("net: dsa: Set valid phy interface type") |
| Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/dsa/slave.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/net/dsa/slave.c |
| +++ b/net/dsa/slave.c |
| @@ -732,7 +732,8 @@ static int dsa_slave_phy_connect(struct |
| return -ENODEV; |
| |
| /* Use already configured phy mode */ |
| - p->phy_interface = p->phy->interface; |
| + if (p->phy_interface == PHY_INTERFACE_MODE_NA) |
| + p->phy_interface = p->phy->interface; |
| phy_connect_direct(slave_dev, p->phy, dsa_slave_adjust_link, |
| p->phy_interface); |
| |