• Claudiu Beznea's avatar
    net: phy: micrel: use kszphy_suspend()/kszphy_resume for irq aware devices · f1131b9c
    Claudiu Beznea authored
    On a setup with KSZ9131 and MACB drivers it happens on suspend path, from
    time to time, that the PHY interrupt arrives after PHY and MACB were
    suspended (PHY via genphy_suspend(), MACB via macb_suspend()). In this
    case the phy_read() at the beginning of kszphy_handle_interrupt() will
    fail (as MACB driver is suspended at this time) leading to phy_error()
    being called and a stack trace being displayed on console. To solve this
    .suspend/.resume functions for all KSZ devices implementing
    .handle_interrupt were replaced with kszphy_suspend()/kszphy_resume()
    which disable/enable interrupt before/after calling
    genphy_suspend()/genphy_resume().
    
    The fix has been adapted for all KSZ devices which implements
    .handle_interrupt but it has been tested only on KSZ9131.
    
    Fixes: 59ca4e58
    
     ("net: phy: micrel: implement generic .handle_interrupt() callback")
    Signed-off-by: default avatarClaudiu Beznea <claudiu.beznea@microchip.com>
    Reviewed-by: Andrew Lunn <an...
    f1131b9c
micrel.c 50.1 KB