• Masahisa KOJIMA's avatar
    net: socionext: reset hardware in ndo_stop · 9a00b697
    Masahisa KOJIMA authored
    When the interface is down, head/tail of the descriptor
    ring address is set to 0 in netsec_netdev_stop().
    But netsec hardware still keeps the previous descriptor
    ring address, so there is inconsistency between driver
    and hardware after interface is up at a later time.
    To address this inconsistency, add netsec_reset_hardware()
    when the interface is down.
    
    In addition, to minimize the reset process,
    add flag to decide whether driver loads the netsec microcode.
    Even if driver resets the netsec hardware, netsec microcode
    keeps resident on RAM, so it is ok we only load the microcode
    at initialization.
    
    This patch is critical for installation over network.
    Signed-off-by: default avatarMasahisa KOJIMA <masahisa.kojima@linaro.org>
    Fixes: 533dd11a ("net: socionext: Add Synquacer NetSec driver")
    Signed-off-by: default avatarJassi Brar <jaswinder.singh@linaro.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9a00b697
netsec.c 44.5 KB