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 |
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?
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 --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;
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(-)