Commit d843246e authored by Chung-Hsien Hsu's avatar Chung-Hsien Hsu Committed by Kalle Valo

brcmfmac: update tx status flags to sync with firmware

There is a mismatch of tx status flag values between host and firmware.
It makes the host mistake the flags and have incorrect behavior of credit
returns. So update the flags to sync with the firmware ones.
Signed-off-by: default avatarChung-Hsien Hsu <stanley.hsu@cypress.com>
Signed-off-by: default avatarChi-hsien Lin <chi-hsien.lin@cypress.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20200610152106.175257-5-chi-hsien.lin@cypress.com
parent b41c232d
...@@ -323,6 +323,10 @@ struct brcmf_skbuff_cb { ...@@ -323,6 +323,10 @@ struct brcmf_skbuff_cb {
* firmware suppress the packet as device is already in PS mode. * firmware suppress the packet as device is already in PS mode.
* @BRCMF_FWS_TXSTATUS_FW_TOSSED: * @BRCMF_FWS_TXSTATUS_FW_TOSSED:
* firmware tossed the packet. * firmware tossed the packet.
* @BRCMF_FWS_TXSTATUS_FW_DISCARD_NOACK:
* firmware tossed the packet after retries.
* @BRCMF_FWS_TXSTATUS_FW_SUPPRESS_ACKED:
* firmware wrongly reported suppressed previously, now fixing to acked.
* @BRCMF_FWS_TXSTATUS_HOST_TOSSED: * @BRCMF_FWS_TXSTATUS_HOST_TOSSED:
* host tossed the packet. * host tossed the packet.
*/ */
...@@ -331,6 +335,8 @@ enum brcmf_fws_txstatus { ...@@ -331,6 +335,8 @@ enum brcmf_fws_txstatus {
BRCMF_FWS_TXSTATUS_CORE_SUPPRESS, BRCMF_FWS_TXSTATUS_CORE_SUPPRESS,
BRCMF_FWS_TXSTATUS_FW_PS_SUPPRESS, BRCMF_FWS_TXSTATUS_FW_PS_SUPPRESS,
BRCMF_FWS_TXSTATUS_FW_TOSSED, BRCMF_FWS_TXSTATUS_FW_TOSSED,
BRCMF_FWS_TXSTATUS_FW_DISCARD_NOACK,
BRCMF_FWS_TXSTATUS_FW_SUPPRESS_ACKED,
BRCMF_FWS_TXSTATUS_HOST_TOSSED BRCMF_FWS_TXSTATUS_HOST_TOSSED
}; };
...@@ -1455,6 +1461,10 @@ brcmf_fws_txs_process(struct brcmf_fws_info *fws, u8 flags, u32 hslot, ...@@ -1455,6 +1461,10 @@ brcmf_fws_txs_process(struct brcmf_fws_info *fws, u8 flags, u32 hslot,
remove_from_hanger = false; remove_from_hanger = false;
} else if (flags == BRCMF_FWS_TXSTATUS_FW_TOSSED) } else if (flags == BRCMF_FWS_TXSTATUS_FW_TOSSED)
fws->stats.txs_tossed += compcnt; fws->stats.txs_tossed += compcnt;
else if (flags == BRCMF_FWS_TXSTATUS_FW_DISCARD_NOACK)
fws->stats.txs_discard += compcnt;
else if (flags == BRCMF_FWS_TXSTATUS_FW_SUPPRESS_ACKED)
fws->stats.txs_discard += compcnt;
else if (flags == BRCMF_FWS_TXSTATUS_HOST_TOSSED) else if (flags == BRCMF_FWS_TXSTATUS_HOST_TOSSED)
fws->stats.txs_host_tossed += compcnt; fws->stats.txs_host_tossed += compcnt;
else else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment