• Iestyn C. Elfick's avatar
    b43: A fix for DMA transmission sequence errors · 18698bd2
    Iestyn C. Elfick authored
    commit b251412d upstream.
    
    Intermittently, b43 will report "Out of order TX status report on DMA ring".
    When this happens, the driver must be reset before communication can resume.
    The cause of the problem is believed to be an error in the closed-source
    firmware; however, all versions of the firmware are affected.
    
    This change uses the observation that the expected status is always 2 less
    than the observed value, and supplies a fake status report to skip one
    header/data pair.
    
    Not all devices suffer from this problem, but it can occur several times
    per second under heavy load. As each occurence kills the unmodified driver,
    this patch makes if possible for the affected devices to function. The patch
    logs only the first instance of the reset operation to prevent spamming
    the logs.
    Tested-by: default avatarChris Vine <chris@cvine.freeserve.co.uk>
    Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    18698bd2
dma.c 46.9 KB