]> git.baikalelectronics.ru Git - kernel.git/commit
net: bcmgenet: fix uncleaned dma flags
authorJaedon Shin <jaedon.shin@gmail.com>
Fri, 21 Aug 2015 01:08:26 +0000 (10:08 +0900)
committerDavid S. Miller <davem@davemloft.net>
Mon, 24 Aug 2015 06:00:41 +0000 (23:00 -0700)
commit06f6018b328161b1fe7c77007ce191a972773009
treec7fb9230e951946cafc55f6c724e5997038fd680
parent2fdb5f141751e448e911b6c37b75a11ee3090a0e
net: bcmgenet: fix uncleaned dma flags

Clean the dma flags of multiq ring buffer int the interface stop
process. This patch fixes that the genet is not running while the
interface is re-enabled.

$ ifup eth0 - running after booting
$ ifdown eth0
$ ifup eth0 - not running and occur tx_timeout

The bcmgenet_dma_disable() in bcmgenet_open() do clean ring16 dma flag
only. If the genet has multiq, the dma register is not cleaned. and
bcmgenet_init_dma() is not done correctly. in case
GENET_V2(tx_queues=4), tdma_ctrl has 0x1e after running
bcmgenet_dma_disable().

Signed-off-by: Jaedon Shin <jaedon.shin@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/genet/bcmgenet.c