• Golan Ben Ami's avatar
    iwlwifi: cancel the injective function between hw pointers to tfd entry index · f5955a6c
    Golan Ben Ami authored
    Nowadays, the tfd queue max size is 2^8, and the reserved size in the
    command header sequence field for the tfd entry index is 8 bits,
    allowing an injective function from the hw pointers to the tfd entry index
    in the sequence field.
    
    In 22560 devices the tfd queue max size is 2^16, meaning that
    the hw pointers are 16 bit long (allowing to point to each entry
    in the tfd queue). However, the reserved space in the sequence field for
    the tfd entry doesn't change, and we are limited to 8 bit.
    This requires cancelling the injective function from hw pointer to
    tfd entry in the sequence number.
    
    Use iwl_pcie_get_cmd_index to wrap the hw pointer's to the n_window
    size, which is maximum 256 in tx queues, and so, keep the injective
    function between the window wrapped hw pointers to tfd entry index in
    the sequence.
    Signed-off-by: default avatarGolan Ben Ami <golan.ben.ami@intel.com>
    Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
    f5955a6c
tx.c 67.9 KB