* Tony Lindgren <t...@atomide.com> [190110 13:27]:
> * Heiner Kallweit <hkallwe...@gmail.com> [190110 19:41]:
> > On 10.01.2019 20:24, Florian Fainelli wrote:
> > > On 1/10/19 11:22 AM, Heiner Kallweit wrote:
> > >> 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 <t...@atomide.com>
> > >> Signed-off-by: Heiner Kallweit <hkallwe...@gmail.com>
> > > 
> > > Thanks a lot for following up with the people at TI on this. We should
> > > really get a better understanding of what the issue is, and whether
> > > there is a possibly better workaround that could be developed which is
> > > not just as hard as a big hammer software reset. Maybe we can get some
> > > people/contacts at Micrel to help here.
> > > 
> > In ksz9031_config_init() quite some settings are done and IMO it's not
> > that unusual that it takes a soft reset for such settings to become
> > effective. But I agree it would be nice if somebody from the PHY vendor
> > could comment on whether a soft reset is actually needed. Not sure who
> > has a contact to Microchip.
> 
> Adding Sekhar to Cc, maybe he has some contacts to ask.

Oops.. Second attempt of adding Sekhar to Cc.

> > If the feedback takes time it may be better to apply the soft reset as
> > fix and replace it later in case we have a less intrusive option.
> 
> Yes please let's fix the regression first and then patch
> more later as needed.
> 
> Regards,
> 
> Tony
> 
> > >> ---
> > >>  drivers/net/phy/micrel.c | 1 +
> > >>  1 file changed, 1 insertion(+)
> > >>
> > >> diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
> > >> index c33384710..7828d17f0 100644
> > >> --- a/drivers/net/phy/micrel.c
> > >> +++ b/drivers/net/phy/micrel.c
> > >> @@ -1070,6 +1070,7 @@ static struct phy_driver ksphy_driver[] = {
> > >>          .driver_data    = &ksz9021_type,
> > >>          .probe          = kszphy_probe,
> > >>          .config_init    = ksz9031_config_init,
> > >> +        .soft_reset     = genphy_soft_reset,
> > >>          .read_status    = ksz9031_read_status,
> > >>          .ack_interrupt  = kszphy_ack_interrupt,
> > >>          .config_intr    = kszphy_config_intr,
> > >>
> > > 
> > > 
> > 

Reply via email to