diff options
author | Sara Sharon <sara.sharon@intel.com> | 2016-02-15 10:26:48 -0500 |
---|---|---|
committer | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2016-02-27 15:00:06 -0500 |
commit | 88076015f80f7645b1eaada6291f4a23ab96bd8f (patch) | |
tree | f1075a0190648caa1537749b3d02fe0d0f981c55 /drivers/net/wireless/intel/iwlwifi/pcie/rx.c | |
parent | 3af512d6aac7eb6420086f124abb4426f5f4b369 (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.c | 12 |
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) */ |