• Ivo van Doorn's avatar
    rt2x00: Improve TX status entry validation · bc8a979e
    Ivo van Doorn authored
    The TX_STA_FIFO contains some information for identifying
    a outgoing frame, however matching by WCID and ACK status is
    not sufficient to 100% identify the macthing queue_entry structure
    (containing the SKB buffer) which belongs to the status report.
    
    Within TX_STA_FIFO we have a 4-bit field named PACKETID, which is
    currently used to encode the queue id. The queue ID is however
    limited to values from 0 to 3, which means 2 bits are sufficient
    to encode the value. With the remaining 2 bits we can encode a
    partial queue_entry index number. The value of PACKETID is not
    allowed to become 0, with the queue ID ranging from 0 to 3, at least
    one of the bits for the entry identification must be 1.
    
    That leaves us with 3 possible values we can still encode in the
    bits. Altough this doesn't allow 100% accurate matching of the
    TX_STA_FIFO queue to a queue_entry structure, it at least improves
    the accuracy. This allows us to better detect if we have missed the
    TX_STA_FIFO report, which in turn reduces the number of watchdog
    warnings regarding the TX status timeout.
    Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    bc8a979e
rt2800.h 61.2 KB