]> git.baikalelectronics.ru Git - kernel.git/commit
net: socionext: reset hardware in ndo_stop
authorMasahisa KOJIMA <masahisa.kojima@linaro.org>
Mon, 16 Apr 2018 07:39:59 +0000 (13:09 +0530)
committerDavid S. Miller <davem@davemloft.net>
Mon, 16 Apr 2018 17:46:38 +0000 (13:46 -0400)
commit228044a431e570f13b5c9f429897be18d8c4dd82
treef9cabf09947f1972b6584034deff67bc0d8b0b96
parentdc6e48194442eb9f4f9e0a05ad13f8c3773063b4
net: socionext: reset hardware in ndo_stop

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: Masahisa KOJIMA <masahisa.kojima@linaro.org>
Fixes: f58ac80bf63d ("net: socionext: Add Synquacer NetSec driver")
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/socionext/netsec.c