aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
diff options
context:
space:
mode:
authorSara Sharon <sara.sharon@intel.com>2016-02-15 10:26:48 -0500
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>2016-02-27 15:00:06 -0500
commit88076015f80f7645b1eaada6291f4a23ab96bd8f (patch)
treef1075a0190648caa1537749b3d02fe0d0f981c55 /drivers/net/wireless/intel/iwlwifi/pcie/rx.c
parent3af512d6aac7eb6420086f124abb4426f5f4b369 (diff)
iwlwifi: pcie: configure more RFH settings
Fine tune RFH registers further: * Set default queue explicitly * Set RFH to drop frames exceeding RB size * Set the maximum rx transfer size to DRAM to 128 instead of 64 Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/pcie/rx.c')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/pcie/rx.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
index c0db681d66d1..398dd9332345 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
@@ -783,16 +783,26 @@ static void iwl_pcie_rx_mq_hw_init(struct iwl_trans *trans)
783 * Single frame mode 783 * Single frame mode
784 * Rx buffer size 4 or 8k or 12k 784 * Rx buffer size 4 or 8k or 12k
785 * Min RB size 4 or 8 785 * Min RB size 4 or 8
786 * Drop frames that exceed RB size
786 * 512 RBDs 787 * 512 RBDs
787 */ 788 */
788 iwl_write_prph(trans, RFH_RXF_DMA_CFG, 789 iwl_write_prph(trans, RFH_RXF_DMA_CFG,
789 RFH_DMA_EN_ENABLE_VAL | 790 RFH_DMA_EN_ENABLE_VAL |
790 rb_size | RFH_RXF_DMA_SINGLE_FRAME_MASK | 791 rb_size | RFH_RXF_DMA_SINGLE_FRAME_MASK |
791 RFH_RXF_DMA_MIN_RB_4_8 | 792 RFH_RXF_DMA_MIN_RB_4_8 |
793 RFH_RXF_DMA_DROP_TOO_LARGE_MASK |
792 RFH_RXF_DMA_RBDCB_SIZE_512); 794 RFH_RXF_DMA_RBDCB_SIZE_512);
793 795
796 /*
797 * Activate DMA snooping.
798 * Set RX DMA chunk size to 128 bit
799 * Default queue is 0
800 */
794 iwl_write_prph(trans, RFH_GEN_CFG, RFH_GEN_CFG_RFH_DMA_SNOOP | 801 iwl_write_prph(trans, RFH_GEN_CFG, RFH_GEN_CFG_RFH_DMA_SNOOP |
795 RFH_GEN_CFG_SERVICE_DMA_SNOOP); 802 RFH_GEN_CFG_RB_CHUNK_SIZE |
803 (DEFAULT_RXQ_NUM << RFH_GEN_CFG_DEFAULT_RXQ_NUM_POS) |
804 RFH_GEN_CFG_SERVICE_DMA_SNOOP);
805 /* Enable the relevant rx queues */
796 iwl_write_prph(trans, RFH_RXF_RXQ_ACTIVE, enabled); 806 iwl_write_prph(trans, RFH_RXF_RXQ_ACTIVE, enabled);
797 807
798 /* Set interrupt coalescing timer to default (2048 usecs) */ 808 /* Set interrupt coalescing timer to default (2048 usecs) */