• Max Filippov's avatar
    p54spi: use firmware/DMA bug workaround that work under hight load in p54spi_rx · ff561ac8
    Max Filippov authored
    Under high load first data word, read after available data size
    is sometimes lost in p54spi_rx. It seems to depend on frequency
    of interrupts and latency of data read request relatively to
    'data available' interrupt. The worst consequence of this bug
    is loss of packet transmission acknowledgement, which in turn
    causes overflow of tx queues and permanent link loss.
    
    Read data size and first data word in one SPI transaction.
    No packets from LMAC should have length less than 1 word,
    so this shouldn't interfere with the next read transaction.
    
    Also call p54spi_sleep if p54spi_wake succeeded.
    Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    ff561ac8
p54spi.c 17.9 KB