ath10k: request credit report if flow control enabled on ep
authorGovind Singh <govinds@codeaurora.org>
Fri, 8 Feb 2019 12:55:35 +0000 (14:55 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Mon, 11 Feb 2019 16:29:59 +0000 (18:29 +0200)
FW credit flow control is enabled for only WMI ctrl
service(CE3) but credit update is requested unconditionally
on all HTC services as part of HTC tx in CE3/CE0/CE4.

This is causing WOW failure as FW is not expecting credit
report request on other end-points(CE0/CE4).

Request credit report only on those endpoints where
credit flow control is enabled.

Testing:
    Tested on WCN3990 HW.
    Tested FW: WLAN.HL.2.0-01192-QCAHLSWMTPLZ-1.

Signed-off-by: Govind Singh <govinds@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/ath10k/htc.c

index 7654a21323ceba05eeb6934cbe7a3247783ead0b..5aa57a01c033ea29af76c948df6f57e7dbd53056 100644 (file)
@@ -88,7 +88,8 @@ static void ath10k_htc_prepare_tx_skb(struct ath10k_htc_ep *ep,
        hdr->eid = ep->eid;
        hdr->len = __cpu_to_le16(skb->len - sizeof(*hdr));
        hdr->flags = 0;
-       hdr->flags |= ATH10K_HTC_FLAG_NEED_CREDIT_UPDATE;
+       if (ep->tx_credit_flow_enabled)
+               hdr->flags |= ATH10K_HTC_FLAG_NEED_CREDIT_UPDATE;
 
        spin_lock_bh(&ep->htc->tx_lock);
        hdr->seq_no = ep->seq_no++;