2015-09-13 21:08:17

by Felix Fietkau

[permalink] [raw]
Subject: [PATCH 4.3] ath10k: fix DMA related firmware crashes on multiple devices

Some platforms really don't like DMA bursts of 256 bytes, and this
causes the firmware to crash when sending beacons.
Also, changing this based on the firmware version does not seem to make
much sense, so use 128 bytes for all versions.

Cc: [email protected]
Signed-off-by: Felix Fietkau <[email protected]>
---
drivers/net/wireless/ath/ath10k/hw.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/hw.h b/drivers/net/wireless/ath/ath10k/hw.h
index 23afcda..678d72a 100644
--- a/drivers/net/wireless/ath/ath10k/hw.h
+++ b/drivers/net/wireless/ath/ath10k/hw.h
@@ -337,7 +337,7 @@ enum ath10k_hw_rate_cck {
#define TARGET_10X_MAX_FRAG_ENTRIES 0

/* 10.2 parameters */
-#define TARGET_10_2_DMA_BURST_SIZE 1
+#define TARGET_10_2_DMA_BURST_SIZE 0

/* Target specific defines for WMI-TLV firmware */
#define TARGET_TLV_NUM_VDEVS 4
@@ -391,7 +391,7 @@ enum ath10k_hw_rate_cck {

#define TARGET_10_4_TX_DBG_LOG_SIZE 1024
#define TARGET_10_4_NUM_WDS_ENTRIES 32
-#define TARGET_10_4_DMA_BURST_SIZE 1
+#define TARGET_10_4_DMA_BURST_SIZE 0
#define TARGET_10_4_MAC_AGGR_DELIM 0
#define TARGET_10_4_RX_SKIP_DEFRAG_TIMEOUT_DUP_DETECTION_CHECK 1
#define TARGET_10_4_VOW_CONFIG 0
--
2.2.2



2015-09-13 22:08:27

by Ben Greear

[permalink] [raw]
Subject: Re: [PATCH 4.3] ath10k: fix DMA related firmware crashes on multiple devices



On 09/13/2015 01:35 PM, Felix Fietkau wrote:
> Some platforms really don't like DMA bursts of 256 bytes, and this
> causes the firmware to crash when sending beacons.
> Also, changing this based on the firmware version does not seem to make
> much sense, so use 128 bytes for all versions.

Is there any good reason to allow users to enable this with
module-param or similar on platforms that do support it?

Like better performance perhaps?

Thanks,
Ben

>
> Cc: [email protected]
> Signed-off-by: Felix Fietkau <[email protected]>
> ---
> drivers/net/wireless/ath/ath10k/hw.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath10k/hw.h b/drivers/net/wireless/ath/ath10k/hw.h
> index 23afcda..678d72a 100644
> --- a/drivers/net/wireless/ath/ath10k/hw.h
> +++ b/drivers/net/wireless/ath/ath10k/hw.h
> @@ -337,7 +337,7 @@ enum ath10k_hw_rate_cck {
> #define TARGET_10X_MAX_FRAG_ENTRIES 0
>
> /* 10.2 parameters */
> -#define TARGET_10_2_DMA_BURST_SIZE 1
> +#define TARGET_10_2_DMA_BURST_SIZE 0
>
> /* Target specific defines for WMI-TLV firmware */
> #define TARGET_TLV_NUM_VDEVS 4
> @@ -391,7 +391,7 @@ enum ath10k_hw_rate_cck {
>
> #define TARGET_10_4_TX_DBG_LOG_SIZE 1024
> #define TARGET_10_4_NUM_WDS_ENTRIES 32
> -#define TARGET_10_4_DMA_BURST_SIZE 1
> +#define TARGET_10_4_DMA_BURST_SIZE 0
> #define TARGET_10_4_MAC_AGGR_DELIM 0
> #define TARGET_10_4_RX_SKIP_DEFRAG_TIMEOUT_DUP_DETECTION_CHECK 1
> #define TARGET_10_4_VOW_CONFIG 0
>

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com

2015-09-14 07:00:45

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 4.3] ath10k: fix DMA related firmware crashes on multiple devices

Felix Fietkau <[email protected]> writes:

> Some platforms really don't like DMA bursts of 256 bytes, and this
> causes the firmware to crash when sending beacons.
> Also, changing this based on the firmware version does not seem to make
> much sense, so use 128 bytes for all versions.
>
> Cc: [email protected]
> Signed-off-by: Felix Fietkau <[email protected]>

Nice, good catch! Just to make sure, this fixes the issues some people
have reported that 10.1 firmware works but 10.2 firmware crashes when
starting beaconing?

--
Kalle Valo

2015-09-15 07:05:08

by Chris

[permalink] [raw]
Subject: Re: [PATCH 4.3] ath10k: fix DMA related firmware crashes on multiple devices

Hi,


Felix Fietkau <nbd@...> writes:

>
> Some platforms really don't like DMA bursts of 256 bytes, and this
> causes the firmware to crash when sending beacons.
> Also, changing this based on the firmware version does not seem to make
> much sense, so use 128 bytes for all version

i can confirm that now gateworks laguna / Ventana and Compex wpj344 (HW v1
and v2) is how working with one and more 9880 cards, using actual firmwares
(tested firmware-5.bin_10.2.4.70-2 + firmware-5.bin_10.2.4.70.6-2 )





2015-09-13 22:16:15

by Felix Fietkau

[permalink] [raw]
Subject: Re: [PATCH 4.3] ath10k: fix DMA related firmware crashes on multiple devices

On 2015-09-14 00:08, Ben Greear wrote:
>
>
> On 09/13/2015 01:35 PM, Felix Fietkau wrote:
>> Some platforms really don't like DMA bursts of 256 bytes, and this
>> causes the firmware to crash when sending beacons.
>> Also, changing this based on the firmware version does not seem to make
>> much sense, so use 128 bytes for all versions.
>
> Is there any good reason to allow users to enable this with
> module-param or similar on platforms that do support it?
>
> Like better performance perhaps?
Maybe, though I expect the performance gain to be small.

- Felix

2015-09-14 07:12:36

by Felix Fietkau

[permalink] [raw]
Subject: Re: [PATCH 4.3] ath10k: fix DMA related firmware crashes on multiple devices

On 2015-09-14 09:00, Kalle Valo wrote:
> Felix Fietkau <[email protected]> writes:
>
>> Some platforms really don't like DMA bursts of 256 bytes, and this
>> causes the firmware to crash when sending beacons.
>> Also, changing this based on the firmware version does not seem to make
>> much sense, so use 128 bytes for all versions.
>>
>> Cc: [email protected]
>> Signed-off-by: Felix Fietkau <[email protected]>
>
> Nice, good catch! Just to make sure, this fixes the issues some people
> have reported that 10.1 firmware works but 10.2 firmware crashes when
> starting beaconing?
Yes. I was able to reproduce that issue myself on a Gateworks Laguna
device, which is among the affected devices reported in that email
thread. This patch fixes it for me.

- Felix

2015-09-14 07:47:19

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 4.3] ath10k: fix DMA related firmware crashes on multiple devices

Felix Fietkau <[email protected]> writes:

> On 2015-09-14 09:00, Kalle Valo wrote:
>> Felix Fietkau <[email protected]> writes:
>>
>>> Some platforms really don't like DMA bursts of 256 bytes, and this
>>> causes the firmware to crash when sending beacons.
>>> Also, changing this based on the firmware version does not seem to make
>>> much sense, so use 128 bytes for all versions.
>>>
>>> Cc: [email protected]
>>> Signed-off-by: Felix Fietkau <[email protected]>
>>
>> Nice, good catch! Just to make sure, this fixes the issues some people
>> have reported that 10.1 firmware works but 10.2 firmware crashes when
>> starting beaconing?
>
> Yes. I was able to reproduce that issue myself on a Gateworks Laguna
> device, which is among the affected devices reported in that email
> thread. This patch fixes it for me.

Awesome. Can you please resend this and CC [email protected]
(as well as linux-wireless) so that I get this to the correct patchwork
project? I'll then send it forward to 4.3.

--
Kalle Valo