From: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
To: Kalle Valo <kvalo@codeaurora.org>
Cc: linux-wireless@vger.kernel.org, brcm80211-dev-list@broadcom.com,
brcm80211-dev-list@cypress.com,
Arend van Spriel <arend.vanspriel@broadcom.com>,
Franky Lin <franky.lin@broadcom.com>,
Hante Meuleman <hante.meuleman@broadcom.com>,
Wright Feng <wright.feng@cypress.com>,
Amar Shankar <amsr@cypress.com>,
Jia-Shyr Chuang <saint.chuang@cypress.com>
Subject: Re: [PATCH 3/6] brcmfmac: reserve 2 credits for host tx control path
Date: Wed, 10 Jun 2020 13:19:04 +0800 [thread overview]
Message-ID: <d9985b4e-992f-cd08-c2d6-b2b3c3834706@cypress.com> (raw)
In-Reply-To: <873674o3t3.fsf@codeaurora.org>
On 06/09/2020 7:51, Kalle Valo wrote:
> Chi-Hsien Lin <chi-hsien.lin@cypress.com> writes:
>
>> From: Amar Shankar <amsr@cypress.com>
>>
>> It is observed that sometimes when sdiod is low in tx credits in low
>> rssi scenarios, the data path consumes all sdiod rx all credits and
>> there is no sdiod rx credit available for control path causing host
>> and card to go out of sync resulting in link loss between host and
>> card. So in order to prevent it some credits are reserved for control
>> path.
>>
>> Note that TXCTL_CREDITS can't be larger than the firmware default
>> credit update threshold 2; otherwise there will be a deadlock for both
>> side waiting for each other.
>>
>> Signed-off-by: Amar Shankar <amsr@cypress.com>
>> Signed-off-by: Jia-Shyr Chuang <saint.chuang@cypress.com>
>> Signed-off-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
>> ---
>> .../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 15 ++++++++++++++-
>> 1 file changed, 14 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
>> index ce6f15284277..163bb7f41e44 100644
>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
>> @@ -635,6 +635,8 @@ static const struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = {
>> BRCMF_FW_ENTRY(CY_CC_43012_CHIP_ID, 0xFFFFFFFF, 43012)
>> };
>>
>> +#define TXCTL_CREDITS 2
>> +
>> static void pkt_align(struct sk_buff *p, int len, int align)
>> {
>> uint datalign;
>> @@ -647,6 +649,14 @@ static void pkt_align(struct sk_buff *p, int len, int align)
>>
>> /* To check if there's window offered */
>> static bool data_ok(struct brcmf_sdio *bus)
>> +{
>> + /* Reserve TXCTL_CREDITS credits for txctl */
>> + return (u8)(bus->tx_max - bus->tx_seq) > TXCTL_CREDITS &&
>> + ((u8)(bus->tx_max - bus->tx_seq) & 0x80) == 0;
>> +}
>
> Why casting to u8? Is it really necessary?
I don't think the casting is necessary since tx_max and tx_seq are both u8.
The code is taken from a similar function data_ok(). I'll remove the
casting from both functions in V2.
>
next prev parent reply other threads:[~2020-06-10 5:19 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-09 10:59 [PATCH 0/6] brcmfmac: flow control and p2p fix series Chi-Hsien Lin
2020-06-09 10:59 ` [PATCH 1/6] brcmfmac: allow credit borrowing for all access categories Chi-Hsien Lin
2020-06-09 10:59 ` [PATCH 2/6] brcmfmac: increase message buffer size for control packets Chi-Hsien Lin
2020-06-09 10:59 ` [PATCH 3/6] brcmfmac: reserve 2 credits for host tx control path Chi-Hsien Lin
2020-06-09 11:51 ` Kalle Valo
2020-06-10 5:19 ` Chi-Hsien Lin [this message]
2020-06-09 10:59 ` [PATCH 4/6] brcmfmac: update tx status flags to sync with firmware Chi-Hsien Lin
2020-06-09 10:59 ` [PATCH 5/6] brcmfmac: fix throughput zero stalls on PM 1 mode due to credit map Chi-Hsien Lin
2020-06-09 10:59 ` [PATCH 6/6] brcmfmac: initialize the requested dwell time Chi-Hsien Lin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d9985b4e-992f-cd08-c2d6-b2b3c3834706@cypress.com \
--to=chi-hsien.lin@cypress.com \
--cc=amsr@cypress.com \
--cc=arend.vanspriel@broadcom.com \
--cc=brcm80211-dev-list@broadcom.com \
--cc=brcm80211-dev-list@cypress.com \
--cc=franky.lin@broadcom.com \
--cc=hante.meuleman@broadcom.com \
--cc=kvalo@codeaurora.org \
--cc=linux-wireless@vger.kernel.org \
--cc=saint.chuang@cypress.com \
--cc=wright.feng@cypress.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).