mirror of https://gitee.com/openkylin/linux.git
ath11k: set credit_update flag for flow controlled ep only
Firmware will check all the pipes before entering WoW mode during suspend. If ATH11K_HTC_FLAG_NEED_CREDIT_UPDATE is set, firmware treats this pipe needed to return credit even though it's actually not required. If any pipe needs to return credit, the suspend_complete message doesn't send to host but is dropped. So host gets time out and WoW suspend failed. Tested-on: QCA6390 hw2.0 PCI WLAN.HST.1.0.1-01740-QCAHSTSWPLZ_V2_TO_X86-1 Signed-off-by: Carl Huang <cjhuang@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/1607708150-21066-8-git-send-email-kvalo@codeaurora.org
This commit is contained in:
parent
840c36fa72
commit
2151ffde18
|
@ -60,9 +60,11 @@ static void ath11k_htc_prepare_tx_skb(struct ath11k_htc_ep *ep,
|
|||
memset(hdr, 0, sizeof(*hdr));
|
||||
hdr->htc_info = FIELD_PREP(HTC_HDR_ENDPOINTID, ep->eid) |
|
||||
FIELD_PREP(HTC_HDR_PAYLOADLEN,
|
||||
(skb->len - sizeof(*hdr))) |
|
||||
FIELD_PREP(HTC_HDR_FLAGS,
|
||||
ATH11K_HTC_FLAG_NEED_CREDIT_UPDATE);
|
||||
(skb->len - sizeof(*hdr)));
|
||||
|
||||
if (ep->tx_credit_flow_enabled)
|
||||
hdr->htc_info |= FIELD_PREP(HTC_HDR_FLAGS,
|
||||
ATH11K_HTC_FLAG_NEED_CREDIT_UPDATE);
|
||||
|
||||
spin_lock_bh(&ep->htc->tx_lock);
|
||||
hdr->ctrl_info = FIELD_PREP(HTC_HDR_CONTROLBYTES1, ep->seq_no++);
|
||||
|
|
Loading…
Reference in New Issue