Skip to content

Commit

Permalink
Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kva…
Browse files Browse the repository at this point in the history
…lo/ath.git

ath.git patches for v5.5. Major changes:

ath10k

* request for PM_QOS_CPU_DMA_LATENCY to improve firmware initialisation time
  • Loading branch information
Kalle Valo committed Nov 15, 2019
2 parents 7937fd3 + 3c33a11 commit 8550179
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 8 deletions.
12 changes: 10 additions & 2 deletions drivers/net/wireless/ath/ath10k/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include <linux/property.h>
#include <linux/dmi.h>
#include <linux/ctype.h>
#include <linux/pm_qos.h>
#include <asm/byteorder.h>

#include "core.h"
Expand Down Expand Up @@ -1027,6 +1028,7 @@ static int ath10k_download_fw(struct ath10k *ar)
u32 address, data_len;
const void *data;
int ret;
struct pm_qos_request latency_qos;

address = ar->hw_params.patch_load_addr;

Expand Down Expand Up @@ -1060,8 +1062,14 @@ static int ath10k_download_fw(struct ath10k *ar)
ret);
}

return ath10k_bmi_fast_download(ar, address,
data, data_len);
memset(&latency_qos, 0, sizeof(latency_qos));
pm_qos_add_request(&latency_qos, PM_QOS_CPU_DMA_LATENCY, 0);

ret = ath10k_bmi_fast_download(ar, address, data, data_len);

pm_qos_remove_request(&latency_qos);

return ret;
}

void ath10k_core_free_board_files(struct ath10k *ar)
Expand Down
7 changes: 2 additions & 5 deletions drivers/net/wireless/ath/ath10k/mac.c
Original file line number Diff line number Diff line change
Expand Up @@ -6604,6 +6604,7 @@ static int ath10k_sta_state(struct ieee80211_hw *hw,
arsta->tx_stats = kzalloc(sizeof(*arsta->tx_stats),
GFP_KERNEL);
if (!arsta->tx_stats) {
ath10k_mac_dec_num_stations(arvif, sta);
ret = -ENOMEM;
goto exit;
}
Expand Down Expand Up @@ -6638,12 +6639,8 @@ static int ath10k_sta_state(struct ieee80211_hw *hw,

spin_unlock_bh(&ar->data_lock);

if (!sta->tdls) {
ath10k_peer_delete(ar, arvif->vdev_id, sta->addr);
ath10k_mac_dec_num_stations(arvif, sta);
kfree(arsta->tx_stats);
if (!sta->tdls)
goto exit;
}

ret = ath10k_wmi_update_fw_tdls_state(ar, arvif->vdev_id,
WMI_TDLS_ENABLE_ACTIVE);
Expand Down
7 changes: 7 additions & 0 deletions drivers/net/wireless/ath/ath10k/qmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -773,6 +773,13 @@ static void ath10k_qmi_event_server_arrive(struct ath10k_qmi *qmi)
if (ret)
return;

/*
* HACK: sleep for a while inbetween receiving the msa info response
* and the XPU update to prevent SDM845 from crashing due to a security
* violation, when running MPSS.AT.4.0.c2-01184-SDM845_GEN_PACK-1.
*/
msleep(20);

ret = ath10k_qmi_setup_msa_permissions(qmi);
if (ret)
return;
Expand Down
2 changes: 2 additions & 0 deletions drivers/net/wireless/ath/ath10k/txrx.c
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ int ath10k_txrx_tx_unref(struct ath10k_htt *htt,

info = IEEE80211_SKB_CB(msdu);
memset(&info->status, 0, sizeof(info->status));
info->status.rates[0].idx = -1;

trace_ath10k_txrx_tx_unref(ar, tx_done->msdu_id);

if (!(info->flags & IEEE80211_TX_CTL_NO_ACK))
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/wireless/ath/wcn36xx/hal.h
Original file line number Diff line number Diff line change
Expand Up @@ -2091,7 +2091,7 @@ struct wcn36xx_hal_set_bss_key_rsp_msg {
/*
* This is used configure the key information on a given station.
* When the sec_type is WEP40 or WEP104, the def_wep_idx is used to locate
* a preconfigured key from a BSS the station assoicated with; otherwise
* a preconfigured key from a BSS the station associated with; otherwise
* a new key descriptor is created based on the key field.
*/
struct wcn36xx_hal_set_sta_key_req_msg {
Expand Down

0 comments on commit 8550179

Please sign in to comment.