All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [net] net: phy: micrel: set soft_reset callback to genphy_soft_reset, for KSZ9031
@ 2019-03-28  5:55 Smith, Andrew
  0 siblings, 0 replies; only message in thread
From: Smith, Andrew @ 2019-03-28  5:55 UTC (permalink / raw)
  To: andrew, f.fainelli, davem; +Cc: netdev, netdev, tony

> So far genphy_soft_reset was used automatically if the PHY driver
> didn't implement the soft_reset callback. This changed with the
> mentioned commit and broke KSZ9031. To fix this configure the
> KSZ9031 PHY driver to use genphy_soft_reset.
>
> Fixes: 6e2d85ec0559 ("net: phy: Stop with excessive soft reset")
> Reported-by: Tony Lindgren <tony@atomide.com>
> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>

Florian Fainelli, I have had this same issue with the KSZ8081 phy, but 
was able to solve it with the same change.

I think the root of this problem is related to the phy's interaction 
with the cpu on the mii bus.

I have a board with this phy and an IMX6ULL cpu that requires this 
change to function normally.

I also have a board with this phy and a IMX253 cpu, however it does not 
require this change to function normally. On this board the phy is 
clocked differently.

Here is a patch which solves the problem for me.

Thanks, Andrew

 From 0d6af3be283377556fe60d533f2fe85f5b8a7c2c Mon Sep 17 00:00:00 2001
From: Andrew <andrew.smith@digi.com>
Date: Thu, 28 Mar 2019 15:21:45 +1000
Subject: [PATCH] net: phy: micrel: set soft_reset callback to
  genphy_soft_reset for KSZ8081

A KSZ8081 phy taking 50mhz clock in from a IMX6ULL appears to require 
the soft
reset run in drivers/net/phy/phy_device.c:phy_init_hw to function normally.

This can be fixed by configuring the phy driver to use genphy_soft_reset,
simillarly to commit: 1d16073a3268

Fixes: 6e2d85ec0559 ("net: phy: Stop with excessive soft reset")
---
  linux/drivers/net/phy/micrel.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/linux/drivers/net/phy/micrel.c b/linux/drivers/net/phy/micrel.c
index 8d6005db75..56bacdd110 100644
--- a/linux/drivers/net/phy/micrel.c
+++ b/linux/drivers/net/phy/micrel.c
@@ -1088,6 +1088,7 @@ static struct phy_driver ksphy_driver[] = {
      .driver_data    = &ksz8081_type,
      .probe        = kszphy_probe,
      .config_init    = kszphy_config_init,
+    .soft_reset     = genphy_soft_reset,
      .ack_interrupt    = kszphy_ack_interrupt,
      .config_intr    = kszphy_config_intr,
      .get_sset_count = kszphy_get_sset_count,
-- 
2.11.0

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2019-03-28  5:55 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-28  5:55 [net] net: phy: micrel: set soft_reset callback to genphy_soft_reset, for KSZ9031 Smith, Andrew

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.