2021-09-15 16:05:12

by Fabio Estevam

[permalink] [raw]
Subject: [PATCH] ath10k: Clean the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE flag

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 [email protected]" 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 <[email protected]>
---
drivers/net/wireless/ath/ath10k/core.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)

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;
--
2.25.1


2021-11-15 20:26:28

by Fabio Estevam

[permalink] [raw]
Subject: Re: [PATCH] ath10k: Clean the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE flag

Hi Kalle,

On Wed, Sep 15, 2021 at 1:05 PM Fabio Estevam <[email protected]> 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 [email protected]" 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 <[email protected]>

A gentle ping on this one.

2021-11-24 03:26:45

by Fabio Estevam

[permalink] [raw]
Subject: Re: [PATCH] ath10k: Clean the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE flag

Hi Kalle,

On Mon, Nov 15, 2021 at 3:06 PM Fabio Estevam <[email protected]> wrote:
>
> Hi Kalle,
>
> On Wed, Sep 15, 2021 at 1:05 PM Fabio Estevam <[email protected]> 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 [email protected]" 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 <[email protected]>
>
> A gentle ping on this one.

Any comments, please? Without this fix, we can not log via ssh to other machine.

2021-11-24 07:46:26

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] ath10k: Clean the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE flag

Fabio Estevam <[email protected]> writes:

> Hi Kalle,
>
> On Mon, Nov 15, 2021 at 3:06 PM Fabio Estevam <[email protected]> wrote:
>>
>> Hi Kalle,
>>
>> On Wed, Sep 15, 2021 at 1:05 PM Fabio Estevam <[email protected]> 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 [email protected]" 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 <[email protected]>
>>
>> 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?

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2021-11-24 07:55:23

by Wen Gong

[permalink] [raw]
Subject: Re: [PATCH] ath10k: Clean the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE flag

On 11/24/2021 3:46 PM, Kalle Valo wrote:
> Fabio Estevam <[email protected]> writes:
>
>> Hi Kalle,
>>
>> On Mon, Nov 15, 2021 at 3:06 PM Fabio Estevam <[email protected]> wrote:
>>> Hi Kalle,
>>>
>>> On Wed, Sep 15, 2021 at 1:05 PM Fabio Estevam <[email protected]> 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 [email protected]" 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 <[email protected]>
>>> 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 <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
Link: https://lore.kernel.org/r/[email protected]


2021-11-24 08:05:28

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] ath10k: Clean the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE flag

Wen Gong <[email protected]> writes:

> On 11/24/2021 3:46 PM, Kalle Valo wrote:
>> Fabio Estevam <[email protected]> writes:
>>
>>> Hi Kalle,
>>>
>>> On Mon, Nov 15, 2021 at 3:06 PM Fabio Estevam <[email protected]> wrote:
>>>> Hi Kalle,
>>>>
>>>> On Wed, Sep 15, 2021 at 1:05 PM Fabio Estevam <[email protected]> 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 [email protected]" 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 <[email protected]>
>>>> 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.

Thanks, I was worried it's something like this. One way to solve this
would be to add a new field to ath10k_hw_params so that the workaround
is done only on QCA9377 SDIO.

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2021-11-24 14:21:52

by Fabio Estevam

[permalink] [raw]
Subject: Re: [PATCH] ath10k: Clean the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE flag

Hi Kalle and Wen,

On 24/11/2021 05:05, Kalle Valo wrote:

> Thanks, I was worried it's something like this. One way to solve this
> would be to add a new field to ath10k_hw_params so that the workaround
> is done only on QCA9377 SDIO.

Thanks for the feedback, appreciate it.

I have done as suggested in v2.

Thanks a lot,

Fabio Estevam
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-60 Fax: (+49)-8142-66989-80 Email:
[email protected]