• Radhey Shyam Pandey's avatar
    net: macb: In ZynqMP resume always configure PS GTR for non-wakeup source · 6c461e39
    Radhey Shyam Pandey authored
    On Zynq UltraScale+ MPSoC ubuntu platform when systemctl issues suspend,
    network manager bring down the interface and goes into suspend. When it
    wakes up it again enables the interface.
    
    This leads to xilinx-psgtr "PLL lock timeout" on interface bringup, as
    the power management controller power down the entire FPD (including
    SERDES) if none of the FPD devices are in use and serdes is not
    initialized on resume.
    
    $ sudo rtcwake -m no -s 120 -v
    $ sudo systemctl suspend  <this does ifconfig eth1 down>
    $ ifconfig eth1 up
    xilinx-psgtr fd400000.phy: lane 0 (type 10, protocol 5): PLL lock timeout
    phy phy-fd400000.phy.0: phy poweron failed --> -110
    
    macb driver is called in this way:
    1. macb_close: Stop network interface. In this function, it
       reset MACB IP and disables PHY and network interface.
    
    2. macb_suspend: It is called in kernel suspend flow. But because
       network interface has been disabled(netif_running(ndev) is
       false), it does nothing and returns directly;
    
    3. System goes into suspend state. Some time later, system is
       waken up by RTC wakeup device;
    
    4. macb_resume: It does nothing because network interface has
       been disabled;
    
    5. macb_open: It is called to enable network interface again. ethernet
       interface is initialized in this API but serdes which is power-off
       by PMUFW during FPD-off suspend is not initialized again and so
       we hit GT PLL lock issue on open.
    
    To resolve this PLL timeout issue always do PS GTR initialization
    when ethernet device is configured as non-wakeup source.
    
    Fixes: f22bd29b ("net: macb: Fix ZynqMP SGMII non-wakeup source resume failure")
    Fixes: 8b73fa3a ("net: macb: Added ZynqMP-specific initialization")
    Signed-off-by: default avatarRadhey Shyam Pandey <radhey.shyam.pandey@amd.com>
    Link: https://lore.kernel.org/r/1691414091-2260697-1-git-send-email-radhey.shyam.pandey@amd.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    6c461e39
macb_main.c 139 KB