| From foo@baz Tue Aug 8 16:51:58 PDT 2017 |
| From: Marc Gonzalez <marc_gonzalez@sigmadesigns.com> |
| Date: Tue, 25 Jul 2017 14:35:03 +0200 |
| Subject: net: ethernet: nb8800: Handle all 4 RGMII modes identically |
| |
| From: Marc Gonzalez <marc_gonzalez@sigmadesigns.com> |
| |
| |
| [ Upstream commit 4813497b537c6208c90d6cbecac5072d347de900 ] |
| |
| Before commit bf8f6952a233 ("Add blurb about RGMII") it was unclear |
| whose responsibility it was to insert the required clock skew, and |
| in hindsight, some PHY drivers got it wrong. The solution forward |
| is to introduce a new property, explicitly requiring skew from the |
| node to which it is attached. In the interim, this driver will handle |
| all 4 RGMII modes identically (no skew). |
| |
| Fixes: 52dfc8301248 ("net: ethernet: add driver for Aurora VLSI NB8800 Ethernet controller") |
| Signed-off-by: Marc Gonzalez <marc_gonzalez@sigmadesigns.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/aurora/nb8800.c | 9 ++++----- |
| 1 file changed, 4 insertions(+), 5 deletions(-) |
| |
| --- a/drivers/net/ethernet/aurora/nb8800.c |
| +++ b/drivers/net/ethernet/aurora/nb8800.c |
| @@ -608,7 +608,7 @@ static void nb8800_mac_config(struct net |
| mac_mode |= HALF_DUPLEX; |
| |
| if (gigabit) { |
| - if (priv->phy_mode == PHY_INTERFACE_MODE_RGMII) |
| + if (phy_interface_is_rgmii(dev->phydev)) |
| mac_mode |= RGMII_MODE; |
| |
| mac_mode |= GMAC_MODE; |
| @@ -1295,11 +1295,10 @@ static int nb8800_tangox_init(struct net |
| break; |
| |
| case PHY_INTERFACE_MODE_RGMII: |
| - pad_mode = PAD_MODE_RGMII; |
| - break; |
| - |
| + case PHY_INTERFACE_MODE_RGMII_ID: |
| + case PHY_INTERFACE_MODE_RGMII_RXID: |
| case PHY_INTERFACE_MODE_RGMII_TXID: |
| - pad_mode = PAD_MODE_RGMII | PAD_MODE_GTX_CLK_DELAY; |
| + pad_mode = PAD_MODE_RGMII; |
| break; |
| |
| default: |