Skip to content
Snippets Groups Projects
Forked from Reform / reform-boundary-uboot
Source project has a limited visibility.
  • Jerome Brunet's avatar
    30cbb524
    net: phy: meson-gxl: detect LPA corruption · 30cbb524
    Jerome Brunet authored
    This patch is ported from the Linux patch posted at [1] and applied to
    net tree as commit f1e2400a80ff.
    
    The purpose of this change is to fix the incorrect detection of the link
    partner (LP) advertised capabilities which sometimes happens with this PHY
    (roughly 1 time in a dozen)
    
    This issue may cause the link to be negotiated at 10Mbps/Full or
    10Mbps/Half when 100MBps/Full is actually possible. In some case, the link
    is even completely broken and no communication is possible.
    
    To detect the corruption, we must look for a magic undocumented bit in the
    WOL bank (hint given by the SoC vendor kernel) but this is not enough to
    cover all cases. We also have to look at the LPA ack. If the LP supports
    Aneg but did not ack our base code when aneg is completed, we assume
    something went wrong.
    
    The detection of a corrupted LPA triggers a restart of the aneg process.
    This solves the problem but may take up to 6 retries to complete.
    
    [1] https://lkml.kernel.org/r/20171208110811.30789-1-jbrunet@baylibre.com
    
    
    
    Fixes: 8995a96d ("net: phy: Add Amlogic Meson GXL Internal PHY support")
    Signed-off-by: default avatarJerome Brunet <jbrunet@baylibre.com>
    Signed-off-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
    30cbb524
    History
    net: phy: meson-gxl: detect LPA corruption
    Jerome Brunet authored
    This patch is ported from the Linux patch posted at [1] and applied to
    net tree as commit f1e2400a80ff.
    
    The purpose of this change is to fix the incorrect detection of the link
    partner (LP) advertised capabilities which sometimes happens with this PHY
    (roughly 1 time in a dozen)
    
    This issue may cause the link to be negotiated at 10Mbps/Full or
    10Mbps/Half when 100MBps/Full is actually possible. In some case, the link
    is even completely broken and no communication is possible.
    
    To detect the corruption, we must look for a magic undocumented bit in the
    WOL bank (hint given by the SoC vendor kernel) but this is not enough to
    cover all cases. We also have to look at the LPA ack. If the LP supports
    Aneg but did not ack our base code when aneg is completed, we assume
    something went wrong.
    
    The detection of a corrupted LPA triggers a restart of the aneg process.
    This solves the problem but may take up to 6 retries to complete.
    
    [1] https://lkml.kernel.org/r/20171208110811.30789-1-jbrunet@baylibre.com
    
    
    
    Fixes: 8995a96d ("net: phy: Add Amlogic Meson GXL Internal PHY support")
    Signed-off-by: default avatarJerome Brunet <jbrunet@baylibre.com>
    Signed-off-by: default avatarNeil Armstrong <narmstrong@baylibre.com>