diff mbox series

ath10k: Clean the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE flag

Message ID 20210915160422.2839595-1-festevam@denx.de
State New
Headers show
Series ath10k: Clean the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE flag | expand

Commit Message

Fabio Estevam Sept. 15, 2021, 4:04 p.m. UTC
On an imx6dl-pico-pi board with a QCA9377 SDIO chip, the following
errors are observed when the board works in STA mode:

Simply running "ssh user@192.168.0.1" causes:

[   55.824159] ath10k_sdio mmc1:0001:1: failed to transmit packet, dropping: -12
[   55.832169] ath10k_sdio mmc1:0001:1: failed to submit frame: -12
[   55.838529] ath10k_sdio mmc1:0001:1: failed to push frame: -12
[   55.905863] ath10k_sdio mmc1:0001:1: failed to transmit packet, dropping: -12
[   55.913650] ath10k_sdio mmc1:0001:1: failed to submit frame: -12
[   55.919887] ath10k_sdio mmc1:0001:1: failed to push frame: -12

and it is not possible to connect via ssh to the other machine.

One user inspected the size of frames on Wireshark and reported
the followig:

"I was able to narrow the issue down to the mtu. If I set the mtu for
the wlan0 device to 1486 instead of 1500, the issue does not happen.

The size of frames that I see on Wireshark is exactly 1500 after
setting it to 1486."

Clearing the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE avoids the problem and
the ssh command works successfully after that.

Tested with QCA9377 SDIO with firmware WLAN.TF.1.1.1-00061-QCATFSWPZ-1.

Fixes: 2f918ea98606 ("ath10k: enable alt data of TX path for sdio")
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 drivers/net/wireless/ath/ath10k/core.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

Comments

Kalle Valo Nov. 24, 2021, 7:46 a.m. UTC | #1
Fabio Estevam <festevam@gmail.com> writes:

> Hi Kalle,
>
> On Mon, Nov 15, 2021 at 3:06 PM Fabio Estevam <festevam@gmail.com> wrote:
>>
>> Hi Kalle,
>>
>> On Wed, Sep 15, 2021 at 1:05 PM Fabio Estevam <festevam@denx.de> wrote:
>> >
>> > On an imx6dl-pico-pi board with a QCA9377 SDIO chip, the following
>> > errors are observed when the board works in STA mode:
>> >
>> > Simply running "ssh user@192.168.0.1" causes:
>> >
>> > [   55.824159] ath10k_sdio mmc1:0001:1: failed to transmit packet, dropping: -12
>> > [   55.832169] ath10k_sdio mmc1:0001:1: failed to submit frame: -12
>> > [   55.838529] ath10k_sdio mmc1:0001:1: failed to push frame: -12
>> > [   55.905863] ath10k_sdio mmc1:0001:1: failed to transmit packet, dropping: -12
>> > [   55.913650] ath10k_sdio mmc1:0001:1: failed to submit frame: -12
>> > [   55.919887] ath10k_sdio mmc1:0001:1: failed to push frame: -12
>> >
>> > and it is not possible to connect via ssh to the other machine.
>> >
>> > One user inspected the size of frames on Wireshark and reported
>> > the followig:
>> >
>> > "I was able to narrow the issue down to the mtu. If I set the mtu for
>> > the wlan0 device to 1486 instead of 1500, the issue does not happen.
>> >
>> > The size of frames that I see on Wireshark is exactly 1500 after
>> > setting it to 1486."
>> >
>> > Clearing the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE avoids the problem and
>> > the ssh command works successfully after that.
>> >
>> > Tested with QCA9377 SDIO with firmware WLAN.TF.1.1.1-00061-QCATFSWPZ-1.
>> >
>> > Fixes: 2f918ea98606 ("ath10k: enable alt data of TX path for sdio")
>> > Signed-off-by: Fabio Estevam <festevam@denx.de>
>>
>> A gentle ping on this one.
>
> Any comments, please? Without this fix, we can not log via ssh to other machine.

I don't have much time for ath10k nowadays, so expect long delays in
reviews.

I'm worried that this breaks QCA6174 SDIO support. Wen, what do you
think of this? Is this because of differences between firmware versions
or what?
Wen Gong Nov. 24, 2021, 7:55 a.m. UTC | #2
On 11/24/2021 3:46 PM, Kalle Valo wrote:
> Fabio Estevam <festevam@gmail.com> writes:
>
>> Hi Kalle,
>>
>> On Mon, Nov 15, 2021 at 3:06 PM Fabio Estevam <festevam@gmail.com> wrote:
>>> Hi Kalle,
>>>
>>> On Wed, Sep 15, 2021 at 1:05 PM Fabio Estevam <festevam@denx.de> wrote:
>>>> On an imx6dl-pico-pi board with a QCA9377 SDIO chip, the following
>>>> errors are observed when the board works in STA mode:
>>>>
>>>> Simply running "ssh user@192.168.0.1" causes:
>>>>
>>>> [   55.824159] ath10k_sdio mmc1:0001:1: failed to transmit packet, dropping: -12
>>>> [   55.832169] ath10k_sdio mmc1:0001:1: failed to submit frame: -12
>>>> [   55.838529] ath10k_sdio mmc1:0001:1: failed to push frame: -12
>>>> [   55.905863] ath10k_sdio mmc1:0001:1: failed to transmit packet, dropping: -12
>>>> [   55.913650] ath10k_sdio mmc1:0001:1: failed to submit frame: -12
>>>> [   55.919887] ath10k_sdio mmc1:0001:1: failed to push frame: -12
>>>>
>>>> and it is not possible to connect via ssh to the other machine.
>>>>
>>>> One user inspected the size of frames on Wireshark and reported
>>>> the followig:
>>>>
>>>> "I was able to narrow the issue down to the mtu. If I set the mtu for
>>>> the wlan0 device to 1486 instead of 1500, the issue does not happen.
>>>>
>>>> The size of frames that I see on Wireshark is exactly 1500 after
>>>> setting it to 1486."
>>>>
>>>> Clearing the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE avoids the problem and
>>>> the ssh command works successfully after that.
>>>>
>>>> Tested with QCA9377 SDIO with firmware WLAN.TF.1.1.1-00061-QCATFSWPZ-1.
>>>>
>>>> Fixes: 2f918ea98606 ("ath10k: enable alt data of TX path for sdio")
>>>> Signed-off-by: Fabio Estevam <festevam@denx.de>
>>> A gentle ping on this one.
>> Any comments, please? Without this fix, we can not log via ssh to other machine.
> I don't have much time for ath10k nowadays, so expect long delays in
> reviews.
>
> I'm worried that this breaks QCA6174 SDIO support. Wen, what do you
> think of this? Is this because of differences between firmware versions
> or what?

it is added by below commit, if disable it, will significant effect 
performance.

https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/drivers/net/wireless/ath/ath11k?id=2f918ea98606100f3a6d47db7ff7c200838ec4f3

ath10k: enable alt data of TX path for sdio

The default credit size is 1792 bytes, but the IP mtu is 1500 bytes,
then it has about 290 bytes's waste for each data packet on sdio
transfer path for TX bundle, it will reduce the transmission utilization
ratio for data packet.

This patch enable the small credit size in firmware, firmware will use
the new credit size 1556 bytes, it will increase the transmission
utilization ratio for data packet on TX patch. It results in significant
performance improvement on TX path.

This patch only effect sdio chip, it will not effect PCI, SNOC etc.

Tested with QCA6174 SDIO with firmware
WLAN.RMH.4.4.1-00017-QCARMSWP-1.

Signed-off-by: Wen Gong <wgong@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20200410061400.14231-3-wgong@codeaurora.org
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
index 2f9be182fbfb..728a18b3b462 100644
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -730,11 +730,7 @@  static int ath10k_init_sdio(struct ath10k *ar, enum ath10k_firmware_mode mode)
 		return ret;
 
 	param |= HI_ACS_FLAGS_SDIO_REDUCE_TX_COMPL_SET;
-
-	if (mode == ATH10K_FIRMWARE_MODE_NORMAL)
-		param |= HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE;
-	else
-		param &= ~HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE;
+	param &= ~HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE;
 
 	if (mode == ATH10K_FIRMWARE_MODE_UTF)
 		param &= ~HI_ACS_FLAGS_SDIO_SWAP_MAILBOX_SET;