diff options
author | Rakesh Pillai <pillair@codeaurora.org> | 2017-04-13 17:09:58 +0530 |
---|---|---|
committer | Rakesh Pillai <pillair@codeaurora.org> | 2017-04-13 17:22:36 +0530 |
commit | 6079be7471c0c568a20127680157bb1bb7f4e069 (patch) | |
tree | 06dc58299cd867bd6e236ee648318a610b201a1f /drivers/net | |
parent | 4a4051e573b6896ba047fd2a1f6163c6165f8fb7 (diff) |
ath10k: Fix crash when SSR is done during packet transfer
If any data traffic is ON, when SSR is triggered there is a crash
since we allowed HTT packets to go through.
Stopping these packets to go through fixes this crash.
Also changing the QMI client ID for the qmi client.
CRs-Fixed: 2033262
Change-Id: I1236ef901fd8943f228497a79f11feaec1c16d8e
Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/ath/ath10k/qmi.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath10k/qmi.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath10k/snoc.c | 3 |
3 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath10k/qmi.c b/drivers/net/wireless/ath/ath10k/qmi.c index f172671cb00f..84a9b1a9577c 100644 --- a/drivers/net/wireless/ath/ath10k/qmi.c +++ b/drivers/net/wireless/ath/ath10k/qmi.c @@ -854,7 +854,6 @@ int ath10k_snoc_start_qmi_service(struct ath10k *ar) goto out_destroy_wq; } - atomic_set(&qmi_cfg->fw_ready, 1); ath10k_dbg(ar, ATH10K_DBG_SNOC, "QMI service started successfully\n"); return 0; diff --git a/drivers/net/wireless/ath/ath10k/qmi.h b/drivers/net/wireless/ath/ath10k/qmi.h index c8bc26bb96b2..29ad5acdf414 100644 --- a/drivers/net/wireless/ath/ath10k/qmi.h +++ b/drivers/net/wireless/ath/ath10k/qmi.h @@ -18,7 +18,7 @@ #define ATH10K_SNOC_WLAN_FW_READY_TIMEOUT 8000 #define WLFW_SERVICE_INS_ID_V01 0 -#define WLFW_CLIENT_ID 0x4b4e454c +#define WLFW_CLIENT_ID 0x41544851 #define WLFW_TIMEOUT_MS 20000 enum ath10k_snoc_driver_event_type { diff --git a/drivers/net/wireless/ath/ath10k/snoc.c b/drivers/net/wireless/ath/ath10k/snoc.c index add0a7cd9edb..2cbc8ee9abf9 100644 --- a/drivers/net/wireless/ath/ath10k/snoc.c +++ b/drivers/net/wireless/ath/ath10k/snoc.c @@ -650,6 +650,9 @@ static int ath10k_snoc_hif_tx_sg(struct ath10k *ar, u8 pipe_id, if (!ar_snoc) return -EINVAL; + if (atomic_read(&ar_snoc->fw_crashed)) + return -ESHUTDOWN; + snoc_pipe = &ar_snoc->pipe_info[pipe_id]; ce_pipe = snoc_pipe->ce_hdl; src_ring = ce_pipe->src_ring; |