• Claudiu Beznea's avatar
    net: macb: restart tx after tx used bit read · 42983885
    Claudiu Beznea authored
    On some platforms (currently detected only on SAMA5D4) TX might stuck
    even the pachets are still present in DMA memories and TX start was
    issued for them. This happens due to race condition between MACB driver
    updating next TX buffer descriptor to be used and IP reading the same
    descriptor. In such a case, the "TX USED BIT READ" interrupt is asserted.
    GEM/MACB user guide specifies that if a "TX USED BIT READ" interrupt
    is asserted TX must be restarted. Restart TX if used bit is read and
    packets are present in software TX queue. Packets are removed from software
    TX queue if TX was successful for them (see macb_tx_interrupt()).
    Signed-off-by: default avatarClaudiu Beznea <claudiu.beznea@microchip.com>
    Acked-by: default avatarNicolas Ferre <nicolas.ferre@microchip.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    42983885
macb_main.c 107 KB