iwlwifi: pcie: support new write pointer width
authorSara Sharon <sara.sharon@intel.com>
Thu, 8 Dec 2016 10:05:58 +0000 (12:05 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Wed, 19 Apr 2017 19:20:53 +0000 (22:20 +0300)
In a000 devices we have 16 bytes for the TFD index and 16 for the
queue, in order to support 512 queues.

Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c

index af5b97c82c5ea6c6e5e67f2e97d811cd31270f9a..e8eb1128279543f799819df779df3ba8b229b833 100644 (file)
@@ -109,7 +109,7 @@ static void iwl_pcie_gen2_txq_inc_wr_ptr(struct iwl_trans *trans,
         */
        if (!txq->block)
                iwl_write32(trans, HBUS_TARG_WRPTR,
-                           txq->write_ptr | (txq->id << 8));
+                           txq->write_ptr | (txq->id << 16));
 }
 
 static u8 iwl_pcie_gen2_get_num_tbs(struct iwl_trans *trans,
@@ -825,7 +825,7 @@ int iwl_trans_pcie_dyn_txq_alloc(struct iwl_trans *trans,
        txq->read_ptr = (ssn & 0xff);
        txq->write_ptr = (ssn & 0xff);
        iwl_write_direct32(trans, HBUS_TARG_WRPTR,
-                          (ssn & 0xff) | (cmd->scd_queue << 8));
+                          (ssn & 0xff) | (cmd->scd_queue << 16));
 
        IWL_DEBUG_TX_QUEUES(trans, "Activate queue %d WrPtr: %d\n",
                            cmd->scd_queue, ssn & 0xff);