OSDN Git Service

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)
commitb6df7d61c8776a882dd47ba4714d1445dd7ef2d9
treec7fb9230e951946cafc55f6c724e5997038fd680
parenteed635699abaacebc9b19a2f9de9ddc688c390c2
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