iwlwifi: mvm: write the correct internal TXF index
authorGolan Ben-Ami <golan.ben.ami@intel.com>
Wed, 15 Jun 2016 06:16:24 +0000 (09:16 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Wed, 6 Jul 2016 06:52:44 +0000 (09:52 +0300)
The TX fifos are arranged consecutively in the SMEM, beginning
with the regular fifos, and tailed by the internal fifos.
In the current code, while trying to read the internal fifos,
we read the fifos beginning with the index zero.
By doing this we actually re-read the regular fifos.

In order to read the internal fifos, start the reading index
from the number of regular fifos configured by the fw.

Signed-off-by: Golan Ben-Ami <golan.ben.ami@intel.com>
Fixes: 39654cb3a6a2 ("iwlwifi: don't access a nonexistent register upon assert")
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c

index 1ece19dcd9ac8a964cd6807f564c157c58285d41..6e692a8f5cda0de4746ff8cddba050c9adc024cb 100644 (file)
@@ -288,7 +288,8 @@ static void iwl_mvm_dump_fifos(struct iwl_mvm *mvm,
                        fifo_hdr->fifo_num = cpu_to_le32(i);
 
                        /* Mark the number of TXF we're pulling now */
-                       iwl_trans_write_prph(mvm->trans, TXF_CPU2_NUM, i);
+                       iwl_trans_write_prph(mvm->trans, TXF_CPU2_NUM, i +
+                               ARRAY_SIZE(mvm->shared_mem_cfg.txfifo_size));
 
                        fifo_hdr->available_bytes =
                                cpu_to_le32(iwl_trans_read_prph(mvm->trans,