summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorRakesh Pillai <pillair@codeaurora.org>2017-04-13 17:09:58 +0530
committerRakesh Pillai <pillair@codeaurora.org>2017-04-13 17:22:36 +0530
commit6079be7471c0c568a20127680157bb1bb7f4e069 (patch)
tree06dc58299cd867bd6e236ee648318a610b201a1f /drivers/net
parent4a4051e573b6896ba047fd2a1f6163c6165f8fb7 (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.c1
-rw-r--r--drivers/net/wireless/ath/ath10k/qmi.h2
-rw-r--r--drivers/net/wireless/ath/ath10k/snoc.c3
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;