• Jaedon Shin's avatar
    net: bcmgenet: fix uncleaned dma flags · b6df7d61
    Jaedon Shin authored
    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: default avatarJaedon Shin <jaedon.shin@gmail.com>
    Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b6df7d61
bcmgenet.c 89.6 KB