diff options
author | Richard Leitner <richard.leitner@skidata.com> | 2017-12-11 13:17:00 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-12-13 11:22:54 -0500 |
commit | 1b0a83ac04e383e3bed21332962b90710fcf2828 (patch) | |
tree | 251b3f0f1e9d6b490d0d3bac90e94dc78f645a0e /drivers/net/ethernet/freescale/gianfar.c | |
parent | 7f64e5b18ebb673cec2df334b8e0bda77df10376 (diff) | |
download | linux-1b0a83ac04e383e3bed21332962b90710fcf2828.tar.bz2 |
net: fec: add phy_reset_after_clk_enable() support
Some PHYs (for example the SMSC LAN8710/LAN8720) doesn't allow turning
the refclk on and off again during operation (according to their
datasheet). Nonetheless exactly this behaviour was introduced for power
saving reasons by commit e8fcfcd5684a ("net: fec: optimize the clock management to save power").
Therefore add support for the phy_reset_after_clk_enable function from
phylib to mitigate this issue.
Generally speaking this issue is only relevant if the ref clk for the
PHY is generated by the SoC and therefore the PHY is configured to
"REF_CLK In Mode". In our specific case (PCB) this problem does occur at
about every 10th to 50th POR of an LAN8710 connected to an i.MX6SOLO
SoC. The typical symptom of this problem is a "swinging" ethernet link.
Similar issues were reported by users of the NXP forum:
https://community.nxp.com/thread/389902
https://community.nxp.com/message/309354
With this patch applied the issue didn't occur for at least a few
hundret PORs of our board.
Fixes: e8fcfcd5684a ("net: fec: optimize the clock management to save power")
Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/freescale/gianfar.c')
0 files changed, 0 insertions, 0 deletions