diff options
author | David S. Miller <davem@davemloft.net> | 2015-08-13 19:23:11 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-08-13 19:23:11 -0400 |
commit | 182ad468e70fc7e8ff2e5d64344c690beaa00ddd (patch) | |
tree | af0b9b8da89ed03629c71f6829845c301485d289 /drivers/net/wireless | |
parent | e8fed985d7bd6cda695e196028b54a5f3d2d91bb (diff) | |
parent | 5b3e2e14eaa2a98232a4f292341fb88438685734 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/ethernet/cavium/Kconfig
The cavium conflict was overlapping dependency
changes.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/b43/tables_nphy.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/scan.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/pcie/trans.c | 22 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/pcie/tx.c | 15 | ||||
-rw-r--r-- | drivers/net/wireless/rsi/rsi_91x_sdio_ops.c | 8 | ||||
-rw-r--r-- | drivers/net/wireless/rsi/rsi_91x_usb_ops.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/core.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8723be/sw.c | 1 |
8 files changed, 51 insertions, 10 deletions
diff --git a/drivers/net/wireless/b43/tables_nphy.c b/drivers/net/wireless/b43/tables_nphy.c index 25d1cbd34306..b2f0d245bcf3 100644 --- a/drivers/net/wireless/b43/tables_nphy.c +++ b/drivers/net/wireless/b43/tables_nphy.c | |||
@@ -3728,7 +3728,7 @@ const u32 *b43_nphy_get_tx_gain_table(struct b43_wldev *dev) | |||
3728 | switch (phy->rev) { | 3728 | switch (phy->rev) { |
3729 | case 6: | 3729 | case 6: |
3730 | case 5: | 3730 | case 5: |
3731 | if (sprom->fem.ghz5.extpa_gain == 3) | 3731 | if (sprom->fem.ghz2.extpa_gain == 3) |
3732 | return b43_ntab_tx_gain_epa_rev3_hi_pwr_2g; | 3732 | return b43_ntab_tx_gain_epa_rev3_hi_pwr_2g; |
3733 | /* fall through */ | 3733 | /* fall through */ |
3734 | case 4: | 3734 | case 4: |
diff --git a/drivers/net/wireless/iwlwifi/mvm/scan.c b/drivers/net/wireless/iwlwifi/mvm/scan.c index 5000bfcded61..5514ad6d4e54 100644 --- a/drivers/net/wireless/iwlwifi/mvm/scan.c +++ b/drivers/net/wireless/iwlwifi/mvm/scan.c | |||
@@ -1023,7 +1023,7 @@ static void iwl_mvm_scan_umac_dwell(struct iwl_mvm *mvm, | |||
1023 | cmd->scan_priority = | 1023 | cmd->scan_priority = |
1024 | iwl_mvm_scan_priority(mvm, IWL_SCAN_PRIORITY_EXT_6); | 1024 | iwl_mvm_scan_priority(mvm, IWL_SCAN_PRIORITY_EXT_6); |
1025 | 1025 | ||
1026 | if (iwl_mvm_scan_total_iterations(params) == 0) | 1026 | if (iwl_mvm_scan_total_iterations(params) == 1) |
1027 | cmd->ooc_priority = | 1027 | cmd->ooc_priority = |
1028 | iwl_mvm_scan_priority(mvm, IWL_SCAN_PRIORITY_EXT_6); | 1028 | iwl_mvm_scan_priority(mvm, IWL_SCAN_PRIORITY_EXT_6); |
1029 | else | 1029 | else |
diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c index 6203c4ad9bba..9e144e71da0b 100644 --- a/drivers/net/wireless/iwlwifi/pcie/trans.c +++ b/drivers/net/wireless/iwlwifi/pcie/trans.c | |||
@@ -478,10 +478,16 @@ static void iwl_pcie_apm_stop(struct iwl_trans *trans, bool op_mode_leave) | |||
478 | if (trans->cfg->device_family == IWL_DEVICE_FAMILY_7000) | 478 | if (trans->cfg->device_family == IWL_DEVICE_FAMILY_7000) |
479 | iwl_set_bits_prph(trans, APMG_PCIDEV_STT_REG, | 479 | iwl_set_bits_prph(trans, APMG_PCIDEV_STT_REG, |
480 | APMG_PCIDEV_STT_VAL_WAKE_ME); | 480 | APMG_PCIDEV_STT_VAL_WAKE_ME); |
481 | else if (trans->cfg->device_family == IWL_DEVICE_FAMILY_8000) | 481 | else if (trans->cfg->device_family == IWL_DEVICE_FAMILY_8000) { |
482 | iwl_set_bit(trans, CSR_DBG_LINK_PWR_MGMT_REG, | ||
483 | CSR_RESET_LINK_PWR_MGMT_DISABLED); | ||
482 | iwl_set_bit(trans, CSR_HW_IF_CONFIG_REG, | 484 | iwl_set_bit(trans, CSR_HW_IF_CONFIG_REG, |
483 | CSR_HW_IF_CONFIG_REG_PREPARE | | 485 | CSR_HW_IF_CONFIG_REG_PREPARE | |
484 | CSR_HW_IF_CONFIG_REG_ENABLE_PME); | 486 | CSR_HW_IF_CONFIG_REG_ENABLE_PME); |
487 | mdelay(1); | ||
488 | iwl_clear_bit(trans, CSR_DBG_LINK_PWR_MGMT_REG, | ||
489 | CSR_RESET_LINK_PWR_MGMT_DISABLED); | ||
490 | } | ||
485 | mdelay(5); | 491 | mdelay(5); |
486 | } | 492 | } |
487 | 493 | ||
@@ -575,6 +581,10 @@ static int iwl_pcie_prepare_card_hw(struct iwl_trans *trans) | |||
575 | if (ret >= 0) | 581 | if (ret >= 0) |
576 | return 0; | 582 | return 0; |
577 | 583 | ||
584 | iwl_set_bit(trans, CSR_DBG_LINK_PWR_MGMT_REG, | ||
585 | CSR_RESET_LINK_PWR_MGMT_DISABLED); | ||
586 | msleep(1); | ||
587 | |||
578 | for (iter = 0; iter < 10; iter++) { | 588 | for (iter = 0; iter < 10; iter++) { |
579 | /* If HW is not ready, prepare the conditions to check again */ | 589 | /* If HW is not ready, prepare the conditions to check again */ |
580 | iwl_set_bit(trans, CSR_HW_IF_CONFIG_REG, | 590 | iwl_set_bit(trans, CSR_HW_IF_CONFIG_REG, |
@@ -582,8 +592,10 @@ static int iwl_pcie_prepare_card_hw(struct iwl_trans *trans) | |||
582 | 592 | ||
583 | do { | 593 | do { |
584 | ret = iwl_pcie_set_hw_ready(trans); | 594 | ret = iwl_pcie_set_hw_ready(trans); |
585 | if (ret >= 0) | 595 | if (ret >= 0) { |
586 | return 0; | 596 | ret = 0; |
597 | goto out; | ||
598 | } | ||
587 | 599 | ||
588 | usleep_range(200, 1000); | 600 | usleep_range(200, 1000); |
589 | t += 200; | 601 | t += 200; |
@@ -593,6 +605,10 @@ static int iwl_pcie_prepare_card_hw(struct iwl_trans *trans) | |||
593 | 605 | ||
594 | IWL_ERR(trans, "Couldn't prepare the card\n"); | 606 | IWL_ERR(trans, "Couldn't prepare the card\n"); |
595 | 607 | ||
608 | out: | ||
609 | iwl_clear_bit(trans, CSR_DBG_LINK_PWR_MGMT_REG, | ||
610 | CSR_RESET_LINK_PWR_MGMT_DISABLED); | ||
611 | |||
596 | return ret; | 612 | return ret; |
597 | } | 613 | } |
598 | 614 | ||
diff --git a/drivers/net/wireless/iwlwifi/pcie/tx.c b/drivers/net/wireless/iwlwifi/pcie/tx.c index 2b86c2135de3..607acb53c847 100644 --- a/drivers/net/wireless/iwlwifi/pcie/tx.c +++ b/drivers/net/wireless/iwlwifi/pcie/tx.c | |||
@@ -1875,8 +1875,19 @@ int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb, | |||
1875 | 1875 | ||
1876 | /* start timer if queue currently empty */ | 1876 | /* start timer if queue currently empty */ |
1877 | if (q->read_ptr == q->write_ptr) { | 1877 | if (q->read_ptr == q->write_ptr) { |
1878 | if (txq->wd_timeout) | 1878 | if (txq->wd_timeout) { |
1879 | mod_timer(&txq->stuck_timer, jiffies + txq->wd_timeout); | 1879 | /* |
1880 | * If the TXQ is active, then set the timer, if not, | ||
1881 | * set the timer in remainder so that the timer will | ||
1882 | * be armed with the right value when the station will | ||
1883 | * wake up. | ||
1884 | */ | ||
1885 | if (!txq->frozen) | ||
1886 | mod_timer(&txq->stuck_timer, | ||
1887 | jiffies + txq->wd_timeout); | ||
1888 | else | ||
1889 | txq->frozen_expiry_remainder = txq->wd_timeout; | ||
1890 | } | ||
1880 | IWL_DEBUG_RPM(trans, "Q: %d first tx - take ref\n", q->id); | 1891 | IWL_DEBUG_RPM(trans, "Q: %d first tx - take ref\n", q->id); |
1881 | iwl_trans_pcie_ref(trans); | 1892 | iwl_trans_pcie_ref(trans); |
1882 | } | 1893 | } |
diff --git a/drivers/net/wireless/rsi/rsi_91x_sdio_ops.c b/drivers/net/wireless/rsi/rsi_91x_sdio_ops.c index b6cc9ff47fc2..1c6788aecc62 100644 --- a/drivers/net/wireless/rsi/rsi_91x_sdio_ops.c +++ b/drivers/net/wireless/rsi/rsi_91x_sdio_ops.c | |||
@@ -172,6 +172,7 @@ static int rsi_load_ta_instructions(struct rsi_common *common) | |||
172 | (struct rsi_91x_sdiodev *)adapter->rsi_dev; | 172 | (struct rsi_91x_sdiodev *)adapter->rsi_dev; |
173 | u32 len; | 173 | u32 len; |
174 | u32 num_blocks; | 174 | u32 num_blocks; |
175 | const u8 *fw; | ||
175 | const struct firmware *fw_entry = NULL; | 176 | const struct firmware *fw_entry = NULL; |
176 | u32 block_size = dev->tx_blk_size; | 177 | u32 block_size = dev->tx_blk_size; |
177 | int status = 0; | 178 | int status = 0; |
@@ -200,6 +201,10 @@ static int rsi_load_ta_instructions(struct rsi_common *common) | |||
200 | return status; | 201 | return status; |
201 | } | 202 | } |
202 | 203 | ||
204 | /* Copy firmware into DMA-accessible memory */ | ||
205 | fw = kmemdup(fw_entry->data, fw_entry->size, GFP_KERNEL); | ||
206 | if (!fw) | ||
207 | return -ENOMEM; | ||
203 | len = fw_entry->size; | 208 | len = fw_entry->size; |
204 | 209 | ||
205 | if (len % 4) | 210 | if (len % 4) |
@@ -210,7 +215,8 @@ static int rsi_load_ta_instructions(struct rsi_common *common) | |||
210 | rsi_dbg(INIT_ZONE, "%s: Instruction size:%d\n", __func__, len); | 215 | rsi_dbg(INIT_ZONE, "%s: Instruction size:%d\n", __func__, len); |
211 | rsi_dbg(INIT_ZONE, "%s: num blocks: %d\n", __func__, num_blocks); | 216 | rsi_dbg(INIT_ZONE, "%s: num blocks: %d\n", __func__, num_blocks); |
212 | 217 | ||
213 | status = rsi_copy_to_card(common, fw_entry->data, len, num_blocks); | 218 | status = rsi_copy_to_card(common, fw, len, num_blocks); |
219 | kfree(fw); | ||
214 | release_firmware(fw_entry); | 220 | release_firmware(fw_entry); |
215 | return status; | 221 | return status; |
216 | } | 222 | } |
diff --git a/drivers/net/wireless/rsi/rsi_91x_usb_ops.c b/drivers/net/wireless/rsi/rsi_91x_usb_ops.c index 1106ce76707e..30c2cf7fa93b 100644 --- a/drivers/net/wireless/rsi/rsi_91x_usb_ops.c +++ b/drivers/net/wireless/rsi/rsi_91x_usb_ops.c | |||
@@ -146,7 +146,10 @@ static int rsi_load_ta_instructions(struct rsi_common *common) | |||
146 | return status; | 146 | return status; |
147 | } | 147 | } |
148 | 148 | ||
149 | /* Copy firmware into DMA-accessible memory */ | ||
149 | fw = kmemdup(fw_entry->data, fw_entry->size, GFP_KERNEL); | 150 | fw = kmemdup(fw_entry->data, fw_entry->size, GFP_KERNEL); |
151 | if (!fw) | ||
152 | return -ENOMEM; | ||
150 | len = fw_entry->size; | 153 | len = fw_entry->size; |
151 | 154 | ||
152 | if (len % 4) | 155 | if (len % 4) |
@@ -158,6 +161,7 @@ static int rsi_load_ta_instructions(struct rsi_common *common) | |||
158 | rsi_dbg(INIT_ZONE, "%s: num blocks: %d\n", __func__, num_blocks); | 161 | rsi_dbg(INIT_ZONE, "%s: num blocks: %d\n", __func__, num_blocks); |
159 | 162 | ||
160 | status = rsi_copy_to_card(common, fw, len, num_blocks); | 163 | status = rsi_copy_to_card(common, fw, len, num_blocks); |
164 | kfree(fw); | ||
161 | release_firmware(fw_entry); | 165 | release_firmware(fw_entry); |
162 | return status; | 166 | return status; |
163 | } | 167 | } |
diff --git a/drivers/net/wireless/rtlwifi/core.c b/drivers/net/wireless/rtlwifi/core.c index 3b3a88b53b11..585d0883c7e5 100644 --- a/drivers/net/wireless/rtlwifi/core.c +++ b/drivers/net/wireless/rtlwifi/core.c | |||
@@ -1015,9 +1015,12 @@ static void send_beacon_frame(struct ieee80211_hw *hw, | |||
1015 | { | 1015 | { |
1016 | struct rtl_priv *rtlpriv = rtl_priv(hw); | 1016 | struct rtl_priv *rtlpriv = rtl_priv(hw); |
1017 | struct sk_buff *skb = ieee80211_beacon_get(hw, vif); | 1017 | struct sk_buff *skb = ieee80211_beacon_get(hw, vif); |
1018 | struct rtl_tcb_desc tcb_desc; | ||
1018 | 1019 | ||
1019 | if (skb) | 1020 | if (skb) { |
1020 | rtlpriv->intf_ops->adapter_tx(hw, NULL, skb, NULL); | 1021 | memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc)); |
1022 | rtlpriv->intf_ops->adapter_tx(hw, NULL, skb, &tcb_desc); | ||
1023 | } | ||
1021 | } | 1024 | } |
1022 | 1025 | ||
1023 | static void rtl_op_bss_info_changed(struct ieee80211_hw *hw, | 1026 | static void rtl_op_bss_info_changed(struct ieee80211_hw *hw, |
diff --git a/drivers/net/wireless/rtlwifi/rtl8723be/sw.c b/drivers/net/wireless/rtlwifi/rtl8723be/sw.c index 1017f02d7bf7..7bf88d9dcdc3 100644 --- a/drivers/net/wireless/rtlwifi/rtl8723be/sw.c +++ b/drivers/net/wireless/rtlwifi/rtl8723be/sw.c | |||
@@ -385,6 +385,7 @@ module_param_named(debug, rtl8723be_mod_params.debug, int, 0444); | |||
385 | module_param_named(ips, rtl8723be_mod_params.inactiveps, bool, 0444); | 385 | module_param_named(ips, rtl8723be_mod_params.inactiveps, bool, 0444); |
386 | module_param_named(swlps, rtl8723be_mod_params.swctrl_lps, bool, 0444); | 386 | module_param_named(swlps, rtl8723be_mod_params.swctrl_lps, bool, 0444); |
387 | module_param_named(fwlps, rtl8723be_mod_params.fwctrl_lps, bool, 0444); | 387 | module_param_named(fwlps, rtl8723be_mod_params.fwctrl_lps, bool, 0444); |
388 | module_param_named(msi, rtl8723be_mod_params.msi_support, bool, 0444); | ||
388 | module_param_named(disable_watchdog, rtl8723be_mod_params.disable_watchdog, | 389 | module_param_named(disable_watchdog, rtl8723be_mod_params.disable_watchdog, |
389 | bool, 0444); | 390 | bool, 0444); |
390 | MODULE_PARM_DESC(swenc, "Set to 1 for software crypto (default 0)\n"); | 391 | MODULE_PARM_DESC(swenc, "Set to 1 for software crypto (default 0)\n"); |