From: Lukas F. Hartmann <lukas@mntre.com>
To: Kalle Valo <kvalo@kernel.org>,
Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
jernej.skrabec@gmail.com, pkshih@realtek.com,
ulf.hansson@linaro.org, tony0620emma@gmail.com,
Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Subject: Re: [PATCH v3] wifi: rtw88: sdio: Honor the host max_req_size in the RX path
Date: Thu, 30 Nov 2023 20:30:33 +0100 [thread overview]
Message-ID: <87edg7ujhi.fsf@mntre.com> (raw)
In-Reply-To: <170137159397.1963309.4329648460865757143.kvalo@kernel.org>
Hi Ping-Ke, Kalle, Martin,
sorry for my late reply. Yes, this patch fixes my original problems and
I have usable WiFi now. There are still some remaining problems like
connection dropouts every minute or so, but it's unrelated and a topic
of further investigation.
Tested-by: Lukas F. Hartmann <lukas@mntre.com>
Best
Lukas
--
Lukas F. Hartmann, CEO
MNT Research GmbH
https://mntre.com
Kalle Valo <kvalo@kernel.org> writes:
> Martin Blumenstingl <martin.blumenstingl@googlemail.com> wrote:
>
>> Lukas reports skb_over_panic errors on his Banana Pi BPI-CM4 which comes
>> with an Amlogic A311D (G12B) SoC and a RTL8822CS SDIO wifi/Bluetooth
>> combo card. The error he observed is identical to what has been fixed
>> in commit e967229ead0e ("wifi: rtw88: sdio: Check the HISR RX_REQUEST
>> bit in rtw_sdio_rx_isr()") but that commit didn't fix Lukas' problem.
>>
>> Lukas found that disabling or limiting RX aggregation works around the
>> problem for some time (but does not fully fix it). In the following
>> discussion a few key topics have been discussed which have an impact on
>> this problem:
>> - The Amlogic A311D (G12B) SoC has a hardware bug in the SDIO controller
>> which prevents DMA transfers. Instead all transfers need to go through
>> the controller SRAM which limits transfers to 1536 bytes
>> - rtw88 chips don't split incoming (RX) packets, so if a big packet is
>> received this is forwarded to the host in it's original form
>> - rtw88 chips can do RX aggregation, meaning more multiple incoming
>> packets can be pulled by the host from the card with one MMC/SDIO
>> transfer. This Depends on settings in the REG_RXDMA_AGG_PG_TH
>> register (BIT_RXDMA_AGG_PG_TH limits the number of packets that will
>> be aggregated, BIT_DMA_AGG_TO_V1 configures a timeout for aggregation
>> and BIT_EN_PRE_CALC makes the chip honor the limits more effectively)
>>
>> Use multiple consecutive reads in rtw_sdio_read_port() and limit the
>> number of bytes which are copied by the host from the card in one
>> MMC/SDIO transfer. This allows receiving a buffer that's larger than
>> the hosts max_req_size (number of bytes which can be transferred in
>> one MMC/SDIO transfer). As a result of this the skb_over_panic error
>> is gone as the rtw88 driver is now able to receive more than 1536 bytes
>> from the card (either because the incoming packet is larger than that
>> or because multiple packets have been aggregated).
>>
>> In case of an receive errors (-EILSEQ has been observed by Lukas) we
>> need to drain the remaining data from the card's buffer, otherwise the
>> card will return corrupt data for the next rtw_sdio_read_port() call.
>>
>> Fixes: 65371a3f14e7 ("wifi: rtw88: sdio: Add HCI implementation for SDIO based chipsets")
>> Reported-by: Lukas F. Hartmann <lukas@mntre.com>
>> Closes: https://lore.kernel.org/linux-wireless/CAFBinCBaXtebixKbjkWKW_WXc5k=NdGNaGUjVE8NCPNxOhsb2g@mail.gmail.com/
>> Suggested-by: Ping-Ke Shih <pkshih@realtek.com>
>> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
>> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
>> Acked-by: Ping-Ke Shih <pkshih@realtek.com>
>
> Did this fix Lukas' problem? I couldn't see any answer to Ping's
> question.
>
> Patch set to Deferred.
>
> --
> https://patchwork.kernel.org/project/linux-wireless/patch/20231120115726.1569323-1-martin.blumenstingl@googlemail.com/
>
> https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
>
next prev parent reply other threads:[~2023-11-30 19:40 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-20 11:57 [PATCH v3] wifi: rtw88: sdio: Honor the host max_req_size in the RX path Martin Blumenstingl
2023-11-21 12:24 ` Ulf Hansson
2023-11-22 0:47 ` Ping-Ke Shih
2023-11-30 19:13 ` Kalle Valo
2023-11-30 19:30 ` Lukas F. Hartmann [this message]
2023-12-01 0:33 ` Ping-Ke Shih
2023-12-01 6:31 ` Kalle Valo
2023-12-01 12:40 ` Kalle Valo
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=87edg7ujhi.fsf@mntre.com \
--to=lukas@mntre.com \
--cc=jernej.skrabec@gmail.com \
--cc=kvalo@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=martin.blumenstingl@googlemail.com \
--cc=pkshih@realtek.com \
--cc=tony0620emma@gmail.com \
--cc=ulf.hansson@linaro.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.