Martin Blumenstingl e3230494b5 net: phy: realtek: fix enabling of the TX-delay for RTL8211F
The old logic always enabled the TX-delay when the phy-mode was set to
PHY_INTERFACE_MODE_RGMII. There are dedicated phy-modes which tell the
PHY driver to enable the RX and/or TX delays:
- PHY_INTERFACE_MODE_RGMII should disable the RX and TX delay in the
  PHY (if required, the MAC should add the delays in this case)
- PHY_INTERFACE_MODE_RGMII_ID should enable RX and TX delay in the PHY
- PHY_INTERFACE_MODE_RGMII_TXID should enable the TX delay in the PHY
- PHY_INTERFACE_MODE_RGMII_RXID should enable the RX delay in the PHY
  (currently not supported by RTL8211F)

With this patch we enable the TX delay for PHY_INTERFACE_MODE_RGMII_ID
and PHY_INTERFACE_MODE_RGMII_TXID.
Additionally we now explicity disable the TX-delay, which seems to be
enabled automatically after a hard-reset of the PHY (by triggering it's
reset pin) to get a consistent state (as defined by the phy-mode).

This fixes a compatibility problem with some SoCs where the TX-delay was
also added by the MAC. With the TX-delay being applied twice the TX
clock was off and TX traffic was broken or very slow (<10Mbit/s) on
1000Mbit/s links.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-28 12:06:54 -05:00
..
2016-11-13 10:22:07 -08:00
2016-11-16 11:10:58 -08:00
2016-11-16 20:46:32 +01:00
2016-11-17 13:53:02 -08:00
2016-10-21 21:40:29 +02:00
2016-09-27 12:33:47 +02:00
2016-10-07 21:23:40 -07:00
2016-11-05 10:52:29 -07:00
2016-11-16 12:39:57 -07:00
2016-10-07 21:23:40 -07:00
2016-11-11 17:02:01 -08:00
2016-10-06 17:03:49 -07:00
2016-11-22 13:48:05 -08:00
2016-10-14 11:07:42 -07:00
2016-11-13 10:13:33 -08:00
2016-11-18 15:49:31 +01:00
2016-11-01 09:04:04 -06:00
2016-10-24 19:52:24 -07:00