• Claudiu Manoil's avatar
    gianfar: Restore link state settings after MAC reset · 2a4eebf0
    Claudiu Manoil authored
    There are some MAC registers that need to be kept in sync
    with the link state parameters, see adjust_link().
    However, after a MAC soft reset default values for
    these registers are assumed.  In some cases (excepting
    if down/ if up for example) adjust_link() does not see
    that these values were reset to default because the
    priv->old* link parameters were left unchanged.
    So, reset the priv->old* link params as well during a
    MAC reset to let adjust_link() restore the MAC link
    settings to the actual link state values.
    
    Fixes following case, for example:
    Setting link to 100M, changing MTU (implies MAC reset),
    link state remains unchanged to 100M but MAC registers
    were reset to default (1G) breaking the connectivity w/
    the PHY.  Closing and re-opening the interface would
    restore the MAC link parameters to the correct values.
    Signed-off-by: default avatarClaudiu Manoil <claudiu.manoil@freescale.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2a4eebf0
gianfar.c 92.8 KB