• M
    net: socionext: reset hardware in ndo_stop · 9a00b697
    Masahisa KOJIMA 提交于
    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: NMasahisa KOJIMA <masahisa.kojima@linaro.org>
    Fixes: 533dd11a ("net: socionext: Add Synquacer NetSec driver")
    Signed-off-by: NJassi Brar <jaswinder.singh@linaro.org>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    9a00b697
netsec.c 44.5 KB