diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/iwlwifi/dvm/agn.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/dvm/debugfs.c | 16 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/dvm/main.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/dvm/sta.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/mac80211.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/phy-ctxt.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/power.c | 16 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/utils.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/pcie/drv.c | 1 |
9 files changed, 24 insertions, 34 deletions
diff --git a/drivers/net/wireless/iwlwifi/dvm/agn.h b/drivers/net/wireless/iwlwifi/dvm/agn.h index e575b9b0cda8..48545ab00311 100644 --- a/drivers/net/wireless/iwlwifi/dvm/agn.h +++ b/drivers/net/wireless/iwlwifi/dvm/agn.h | |||
@@ -172,7 +172,7 @@ int iwl_calib_set(struct iwl_priv *priv, | |||
172 | const struct iwl_calib_hdr *cmd, int len); | 172 | const struct iwl_calib_hdr *cmd, int len); |
173 | void iwl_calib_free_results(struct iwl_priv *priv); | 173 | void iwl_calib_free_results(struct iwl_priv *priv); |
174 | int iwl_dump_nic_event_log(struct iwl_priv *priv, bool full_log, | 174 | int iwl_dump_nic_event_log(struct iwl_priv *priv, bool full_log, |
175 | char **buf, bool display); | 175 | char **buf); |
176 | int iwlagn_hw_valid_rtc_data_addr(u32 addr); | 176 | int iwlagn_hw_valid_rtc_data_addr(u32 addr); |
177 | 177 | ||
178 | /* lib */ | 178 | /* lib */ |
diff --git a/drivers/net/wireless/iwlwifi/dvm/debugfs.c b/drivers/net/wireless/iwlwifi/dvm/debugfs.c index 7b8178be119f..d5329489245a 100644 --- a/drivers/net/wireless/iwlwifi/dvm/debugfs.c +++ b/drivers/net/wireless/iwlwifi/dvm/debugfs.c | |||
@@ -2237,15 +2237,13 @@ static ssize_t iwl_dbgfs_log_event_read(struct file *file, | |||
2237 | size_t count, loff_t *ppos) | 2237 | size_t count, loff_t *ppos) |
2238 | { | 2238 | { |
2239 | struct iwl_priv *priv = file->private_data; | 2239 | struct iwl_priv *priv = file->private_data; |
2240 | char *buf; | 2240 | char *buf = NULL; |
2241 | int pos = 0; | 2241 | ssize_t ret; |
2242 | ssize_t ret = -ENOMEM; | ||
2243 | 2242 | ||
2244 | ret = pos = iwl_dump_nic_event_log(priv, true, &buf, true); | 2243 | ret = iwl_dump_nic_event_log(priv, true, &buf); |
2245 | if (buf) { | 2244 | if (ret > 0) |
2246 | ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos); | 2245 | ret = simple_read_from_buffer(user_buf, count, ppos, buf, ret); |
2247 | kfree(buf); | 2246 | kfree(buf); |
2248 | } | ||
2249 | return ret; | 2247 | return ret; |
2250 | } | 2248 | } |
2251 | 2249 | ||
@@ -2269,7 +2267,7 @@ static ssize_t iwl_dbgfs_log_event_write(struct file *file, | |||
2269 | if (sscanf(buf, "%d", &event_log_flag) != 1) | 2267 | if (sscanf(buf, "%d", &event_log_flag) != 1) |
2270 | return -EFAULT; | 2268 | return -EFAULT; |
2271 | if (event_log_flag == 1) | 2269 | if (event_log_flag == 1) |
2272 | iwl_dump_nic_event_log(priv, true, NULL, false); | 2270 | iwl_dump_nic_event_log(priv, true, NULL); |
2273 | 2271 | ||
2274 | return count; | 2272 | return count; |
2275 | } | 2273 | } |
diff --git a/drivers/net/wireless/iwlwifi/dvm/main.c b/drivers/net/wireless/iwlwifi/dvm/main.c index b9e3517652d6..74d7572e7091 100644 --- a/drivers/net/wireless/iwlwifi/dvm/main.c +++ b/drivers/net/wireless/iwlwifi/dvm/main.c | |||
@@ -1795,7 +1795,7 @@ static int iwl_print_last_event_logs(struct iwl_priv *priv, u32 capacity, | |||
1795 | #define DEFAULT_DUMP_EVENT_LOG_ENTRIES (20) | 1795 | #define DEFAULT_DUMP_EVENT_LOG_ENTRIES (20) |
1796 | 1796 | ||
1797 | int iwl_dump_nic_event_log(struct iwl_priv *priv, bool full_log, | 1797 | int iwl_dump_nic_event_log(struct iwl_priv *priv, bool full_log, |
1798 | char **buf, bool display) | 1798 | char **buf) |
1799 | { | 1799 | { |
1800 | u32 base; /* SRAM byte address of event log header */ | 1800 | u32 base; /* SRAM byte address of event log header */ |
1801 | u32 capacity; /* event log capacity in # entries */ | 1801 | u32 capacity; /* event log capacity in # entries */ |
@@ -1866,7 +1866,7 @@ int iwl_dump_nic_event_log(struct iwl_priv *priv, bool full_log, | |||
1866 | size); | 1866 | size); |
1867 | 1867 | ||
1868 | #ifdef CONFIG_IWLWIFI_DEBUG | 1868 | #ifdef CONFIG_IWLWIFI_DEBUG |
1869 | if (display) { | 1869 | if (buf) { |
1870 | if (full_log) | 1870 | if (full_log) |
1871 | bufsz = capacity * 48; | 1871 | bufsz = capacity * 48; |
1872 | else | 1872 | else |
@@ -1962,7 +1962,7 @@ static void iwl_nic_error(struct iwl_op_mode *op_mode) | |||
1962 | priv->fw->fw_version); | 1962 | priv->fw->fw_version); |
1963 | 1963 | ||
1964 | iwl_dump_nic_error_log(priv); | 1964 | iwl_dump_nic_error_log(priv); |
1965 | iwl_dump_nic_event_log(priv, false, NULL, false); | 1965 | iwl_dump_nic_event_log(priv, false, NULL); |
1966 | 1966 | ||
1967 | iwlagn_fw_error(priv, false); | 1967 | iwlagn_fw_error(priv, false); |
1968 | } | 1968 | } |
diff --git a/drivers/net/wireless/iwlwifi/dvm/sta.c b/drivers/net/wireless/iwlwifi/dvm/sta.c index b775769f8322..db183b44e038 100644 --- a/drivers/net/wireless/iwlwifi/dvm/sta.c +++ b/drivers/net/wireless/iwlwifi/dvm/sta.c | |||
@@ -695,6 +695,7 @@ void iwl_clear_ucode_stations(struct iwl_priv *priv, | |||
695 | void iwl_restore_stations(struct iwl_priv *priv, struct iwl_rxon_context *ctx) | 695 | void iwl_restore_stations(struct iwl_priv *priv, struct iwl_rxon_context *ctx) |
696 | { | 696 | { |
697 | struct iwl_addsta_cmd sta_cmd; | 697 | struct iwl_addsta_cmd sta_cmd; |
698 | static const struct iwl_link_quality_cmd zero_lq = {}; | ||
698 | struct iwl_link_quality_cmd lq; | 699 | struct iwl_link_quality_cmd lq; |
699 | int i; | 700 | int i; |
700 | bool found = false; | 701 | bool found = false; |
@@ -733,7 +734,9 @@ void iwl_restore_stations(struct iwl_priv *priv, struct iwl_rxon_context *ctx) | |||
733 | else | 734 | else |
734 | memcpy(&lq, priv->stations[i].lq, | 735 | memcpy(&lq, priv->stations[i].lq, |
735 | sizeof(struct iwl_link_quality_cmd)); | 736 | sizeof(struct iwl_link_quality_cmd)); |
736 | send_lq = true; | 737 | |
738 | if (!memcmp(&lq, &zero_lq, sizeof(lq))) | ||
739 | send_lq = true; | ||
737 | } | 740 | } |
738 | spin_unlock_bh(&priv->sta_lock); | 741 | spin_unlock_bh(&priv->sta_lock); |
739 | ret = iwl_send_add_sta(priv, &sta_cmd, CMD_SYNC); | 742 | ret = iwl_send_add_sta(priv, &sta_cmd, CMD_SYNC); |
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c index fe031608fd91..dd158ec571fb 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c | |||
@@ -207,7 +207,7 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm) | |||
207 | 207 | ||
208 | hw->wiphy->hw_version = mvm->trans->hw_id; | 208 | hw->wiphy->hw_version = mvm->trans->hw_id; |
209 | 209 | ||
210 | if (iwlwifi_mod_params.power_save) | 210 | if (iwlmvm_mod_params.power_scheme != IWL_POWER_SCHEME_CAM) |
211 | hw->wiphy->flags |= WIPHY_FLAG_PS_ON_BY_DEFAULT; | 211 | hw->wiphy->flags |= WIPHY_FLAG_PS_ON_BY_DEFAULT; |
212 | else | 212 | else |
213 | hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; | 213 | hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; |
diff --git a/drivers/net/wireless/iwlwifi/mvm/phy-ctxt.c b/drivers/net/wireless/iwlwifi/mvm/phy-ctxt.c index 0f0b44eabd93..a28a1d1f23eb 100644 --- a/drivers/net/wireless/iwlwifi/mvm/phy-ctxt.c +++ b/drivers/net/wireless/iwlwifi/mvm/phy-ctxt.c | |||
@@ -153,11 +153,6 @@ static void iwl_mvm_phy_ctxt_cmd_data(struct iwl_mvm *mvm, | |||
153 | cmd->ci.ctrl_pos = iwl_mvm_get_ctrl_pos(chandef); | 153 | cmd->ci.ctrl_pos = iwl_mvm_get_ctrl_pos(chandef); |
154 | 154 | ||
155 | /* Set rx the chains */ | 155 | /* Set rx the chains */ |
156 | |||
157 | /* TODO: | ||
158 | * Need to add on chain noise calibration limitations, and | ||
159 | * BT coex considerations. | ||
160 | */ | ||
161 | idle_cnt = chains_static; | 156 | idle_cnt = chains_static; |
162 | active_cnt = chains_dynamic; | 157 | active_cnt = chains_dynamic; |
163 | 158 | ||
diff --git a/drivers/net/wireless/iwlwifi/mvm/power.c b/drivers/net/wireless/iwlwifi/mvm/power.c index 9395ab2a1af2..ed77e437aac4 100644 --- a/drivers/net/wireless/iwlwifi/mvm/power.c +++ b/drivers/net/wireless/iwlwifi/mvm/power.c | |||
@@ -111,8 +111,7 @@ void iwl_mvm_power_build_cmd(struct iwl_mvm *mvm, struct ieee80211_vif *vif, | |||
111 | */ | 111 | */ |
112 | cmd->keep_alive_seconds = POWER_KEEP_ALIVE_PERIOD_SEC; | 112 | cmd->keep_alive_seconds = POWER_KEEP_ALIVE_PERIOD_SEC; |
113 | 113 | ||
114 | if ((iwlmvm_mod_params.power_scheme == IWL_POWER_SCHEME_CAM) || | 114 | if (iwlmvm_mod_params.power_scheme == IWL_POWER_SCHEME_CAM) |
115 | !iwlwifi_mod_params.power_save) | ||
116 | return; | 115 | return; |
117 | 116 | ||
118 | cmd->flags |= cpu_to_le16(POWER_FLAGS_POWER_SAVE_ENA_MSK); | 117 | cmd->flags |= cpu_to_le16(POWER_FLAGS_POWER_SAVE_ENA_MSK); |
@@ -146,14 +145,8 @@ void iwl_mvm_power_build_cmd(struct iwl_mvm *mvm, struct ieee80211_vif *vif, | |||
146 | keep_alive = DIV_ROUND_UP(keep_alive, MSEC_PER_SEC); | 145 | keep_alive = DIV_ROUND_UP(keep_alive, MSEC_PER_SEC); |
147 | cmd->keep_alive_seconds = keep_alive; | 146 | cmd->keep_alive_seconds = keep_alive; |
148 | 147 | ||
149 | if (iwlmvm_mod_params.power_scheme == IWL_POWER_SCHEME_LP) { | 148 | cmd->rx_data_timeout = cpu_to_le32(100 * USEC_PER_MSEC); |
150 | /* TODO: Also for D3 (device sleep / WoWLAN) */ | 149 | cmd->tx_data_timeout = cpu_to_le32(100 * USEC_PER_MSEC); |
151 | cmd->rx_data_timeout = cpu_to_le32(10 * USEC_PER_MSEC); | ||
152 | cmd->tx_data_timeout = cpu_to_le32(10 * USEC_PER_MSEC); | ||
153 | } else { | ||
154 | cmd->rx_data_timeout = cpu_to_le32(100 * USEC_PER_MSEC); | ||
155 | cmd->tx_data_timeout = cpu_to_le32(100 * USEC_PER_MSEC); | ||
156 | } | ||
157 | } | 150 | } |
158 | 151 | ||
159 | int iwl_mvm_power_update_mode(struct iwl_mvm *mvm, struct ieee80211_vif *vif) | 152 | int iwl_mvm_power_update_mode(struct iwl_mvm *mvm, struct ieee80211_vif *vif) |
@@ -177,8 +170,7 @@ int iwl_mvm_power_disable(struct iwl_mvm *mvm, struct ieee80211_vif *vif) | |||
177 | if (vif->type != NL80211_IFTYPE_STATION || vif->p2p) | 170 | if (vif->type != NL80211_IFTYPE_STATION || vif->p2p) |
178 | return 0; | 171 | return 0; |
179 | 172 | ||
180 | if ((iwlmvm_mod_params.power_scheme != IWL_POWER_SCHEME_CAM) && | 173 | if (iwlmvm_mod_params.power_scheme != IWL_POWER_SCHEME_CAM) |
181 | iwlwifi_mod_params.power_save) | ||
182 | cmd.flags |= cpu_to_le16(POWER_FLAGS_POWER_SAVE_ENA_MSK); | 174 | cmd.flags |= cpu_to_le16(POWER_FLAGS_POWER_SAVE_ENA_MSK); |
183 | 175 | ||
184 | iwl_mvm_power_log(mvm, &cmd); | 176 | iwl_mvm_power_log(mvm, &cmd); |
diff --git a/drivers/net/wireless/iwlwifi/mvm/utils.c b/drivers/net/wireless/iwlwifi/mvm/utils.c index 0cc8d8c0d393..687b34e387ac 100644 --- a/drivers/net/wireless/iwlwifi/mvm/utils.c +++ b/drivers/net/wireless/iwlwifi/mvm/utils.c | |||
@@ -253,8 +253,9 @@ int iwl_mvm_rx_fw_error(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb, | |||
253 | u8 first_antenna(u8 mask) | 253 | u8 first_antenna(u8 mask) |
254 | { | 254 | { |
255 | BUILD_BUG_ON(ANT_A != BIT(0)); /* using ffs is wrong if not */ | 255 | BUILD_BUG_ON(ANT_A != BIT(0)); /* using ffs is wrong if not */ |
256 | WARN_ON_ONCE(!mask); /* ffs will return 0 if mask is zeroed */ | 256 | if (WARN_ON_ONCE(!mask)) /* ffs will return 0 if mask is zeroed */ |
257 | return (u8)(BIT(ffs(mask))); | 257 | return BIT(0); |
258 | return BIT(ffs(mask) - 1); | ||
258 | } | 259 | } |
259 | 260 | ||
260 | /* | 261 | /* |
diff --git a/drivers/net/wireless/iwlwifi/pcie/drv.c b/drivers/net/wireless/iwlwifi/pcie/drv.c index 0016bb24b3d7..8cb53ec2b77b 100644 --- a/drivers/net/wireless/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/iwlwifi/pcie/drv.c | |||
@@ -256,6 +256,7 @@ static DEFINE_PCI_DEVICE_TABLE(iwl_hw_card_ids) = { | |||
256 | 256 | ||
257 | /* 7000 Series */ | 257 | /* 7000 Series */ |
258 | {IWL_PCI_DEVICE(0x08B1, 0x4070, iwl7260_2ac_cfg)}, | 258 | {IWL_PCI_DEVICE(0x08B1, 0x4070, iwl7260_2ac_cfg)}, |
259 | {IWL_PCI_DEVICE(0x08B1, 0x4062, iwl7260_2ac_cfg)}, | ||
259 | {IWL_PCI_DEVICE(0x08B1, 0xC070, iwl7260_2ac_cfg)}, | 260 | {IWL_PCI_DEVICE(0x08B1, 0xC070, iwl7260_2ac_cfg)}, |
260 | {IWL_PCI_DEVICE(0x08B3, 0x0070, iwl3160_ac_cfg)}, | 261 | {IWL_PCI_DEVICE(0x08B3, 0x0070, iwl3160_ac_cfg)}, |
261 | {IWL_PCI_DEVICE(0x08B3, 0x8070, iwl3160_ac_cfg)}, | 262 | {IWL_PCI_DEVICE(0x08B3, 0x8070, iwl3160_ac_cfg)}, |