diff options
author | Sara Sharon <sara.sharon@intel.com> | 2016-12-07 05:22:11 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-05-14 08:00:16 -0400 |
commit | 20a9de99a0da9021e9d00db635bab47eeb3ca978 (patch) | |
tree | 9dcf3256fd16705629175ff19f4bff53a6bbb651 | |
parent | 562c868d94a87af8595541c5b9f2f8944e9bf850 (diff) |
iwlwifi: pcie: fix the set of DMA memory mask
commit 2c6262b754f3c3338cb40b23880a3ac1f4693b25 upstream.
Our 9000 device supports 64 bit DMA address for RX only, and
not for TX.
Setting DMA mask to 64 for the whole device is erroneous - we
can do it only for a000 devices where device is capable of
both RX & TX DMA with 64 bit address space.
Fixes: 96a6497bc3ed ("iwlwifi: pcie: add 9000 series multi queue rx DMA support")
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c index 9ba45b089a5d..10ef44e8ecd5 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c | |||
@@ -2929,16 +2929,12 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev, | |||
2929 | PCIE_LINK_STATE_CLKPM); | 2929 | PCIE_LINK_STATE_CLKPM); |
2930 | } | 2930 | } |
2931 | 2931 | ||
2932 | if (cfg->mq_rx_supported) | ||
2933 | addr_size = 64; | ||
2934 | else | ||
2935 | addr_size = 36; | ||
2936 | |||
2937 | if (cfg->use_tfh) { | 2932 | if (cfg->use_tfh) { |
2933 | addr_size = 64; | ||
2938 | trans_pcie->max_tbs = IWL_TFH_NUM_TBS; | 2934 | trans_pcie->max_tbs = IWL_TFH_NUM_TBS; |
2939 | trans_pcie->tfd_size = sizeof(struct iwl_tfh_tfd); | 2935 | trans_pcie->tfd_size = sizeof(struct iwl_tfh_tfd); |
2940 | |||
2941 | } else { | 2936 | } else { |
2937 | addr_size = 36; | ||
2942 | trans_pcie->max_tbs = IWL_NUM_OF_TBS; | 2938 | trans_pcie->max_tbs = IWL_NUM_OF_TBS; |
2943 | trans_pcie->tfd_size = sizeof(struct iwl_tfd); | 2939 | trans_pcie->tfd_size = sizeof(struct iwl_tfd); |
2944 | } | 2940 | } |