2021-08-18 23:27:34

by Fabio Estevam

[permalink] [raw]
Subject: [PATCH v3] ath10k: high latency fixes for beacon buffer

From: Alagu Sankar <[email protected]>

Beacon buffer for high latency devices does not use DMA. other similar
buffer allocation methods in the driver have already been modified for
high latency path. Fix the beacon buffer allocation left out in the
earlier high latency changes.

Signed-off-by: Alagu Sankar <[email protected]>
Signed-off-by: Erik Stromdahl <[email protected]>
[fabio: adapt it to use ar->bus_param.dev_type ]
Signed-off-by: Fabio Estevam <[email protected]>
---
Changes since v2:
- Pick Alagu's patch:
https://patchwork.kernel.org/project/ath10k/patch/[email protected]/

drivers/net/wireless/ath/ath10k/mac.c | 31 ++++++++++++++++++++-------
1 file changed, 23 insertions(+), 8 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index c272b290fa73..7ca68c81d9b6 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -993,8 +993,12 @@ static void ath10k_mac_vif_beacon_cleanup(struct ath10k_vif *arvif)
ath10k_mac_vif_beacon_free(arvif);

if (arvif->beacon_buf) {
- dma_free_coherent(ar->dev, IEEE80211_MAX_FRAME_LEN,
- arvif->beacon_buf, arvif->beacon_paddr);
+ if (ar->bus_param.dev_type == ATH10K_DEV_TYPE_HL)
+ kfree(arvif->beacon_buf);
+ else
+ dma_free_coherent(ar->dev, IEEE80211_MAX_FRAME_LEN,
+ arvif->beacon_buf,
+ arvif->beacon_paddr);
arvif->beacon_buf = NULL;
}
}
@@ -5576,10 +5580,17 @@ static int ath10k_add_interface(struct ieee80211_hw *hw,
if (vif->type == NL80211_IFTYPE_ADHOC ||
vif->type == NL80211_IFTYPE_MESH_POINT ||
vif->type == NL80211_IFTYPE_AP) {
- arvif->beacon_buf = dma_alloc_coherent(ar->dev,
- IEEE80211_MAX_FRAME_LEN,
- &arvif->beacon_paddr,
- GFP_ATOMIC);
+ if (ar->bus_param.dev_type == ATH10K_DEV_TYPE_HL) {
+ arvif->beacon_buf = kmalloc(IEEE80211_MAX_FRAME_LEN,
+ GFP_KERNEL);
+ arvif->beacon_paddr = (dma_addr_t)arvif->beacon_buf;
+ } else {
+ arvif->beacon_buf =
+ dma_alloc_coherent(ar->dev,
+ IEEE80211_MAX_FRAME_LEN,
+ &arvif->beacon_paddr,
+ GFP_ATOMIC);
+ }
if (!arvif->beacon_buf) {
ret = -ENOMEM;
ath10k_warn(ar, "failed to allocate beacon buffer: %d\n",
@@ -5794,8 +5805,12 @@ static int ath10k_add_interface(struct ieee80211_hw *hw,

err:
if (arvif->beacon_buf) {
- dma_free_coherent(ar->dev, IEEE80211_MAX_FRAME_LEN,
- arvif->beacon_buf, arvif->beacon_paddr);
+ if (ar->bus_param.dev_type == ATH10K_DEV_TYPE_HL)
+ kfree(arvif->beacon_buf);
+ else
+ dma_free_coherent(ar->dev, IEEE80211_MAX_FRAME_LEN,
+ arvif->beacon_buf,
+ arvif->beacon_paddr);
arvif->beacon_buf = NULL;
}

--
2.25.1


2021-08-26 20:03:26

by Fabio Estevam

[permalink] [raw]
Subject: Re: [PATCH v3] ath10k: high latency fixes for beacon buffer

Hello Kalle,

On Wed, Aug 18, 2021 at 8:27 PM Fabio Estevam <[email protected]> wrote:
>
> From: Alagu Sankar <[email protected]>
>
> Beacon buffer for high latency devices does not use DMA. other similar
> buffer allocation methods in the driver have already been modified for
> high latency path. Fix the beacon buffer allocation left out in the
> earlier high latency changes.
>
> Signed-off-by: Alagu Sankar <[email protected]>
> Signed-off-by: Erik Stromdahl <[email protected]>
> [fabio: adapt it to use ar->bus_param.dev_type ]
> Signed-off-by: Fabio Estevam <[email protected]>
> ---
> Changes since v2:
> - Pick Alagu's patch:
> https://patchwork.kernel.org/project/ath10k/patch/[email protected]/

A gentle ping on this one.

2021-09-16 12:42:11

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH v3] ath10k: high latency fixes for beacon buffer

Fabio Estevam <[email protected]> writes:

> Hello Kalle,
>
> On Wed, Aug 18, 2021 at 8:27 PM Fabio Estevam <[email protected]> wrote:
>>
>> From: Alagu Sankar <[email protected]>
>>
>> Beacon buffer for high latency devices does not use DMA. other similar
>> buffer allocation methods in the driver have already been modified for
>> high latency path. Fix the beacon buffer allocation left out in the
>> earlier high latency changes.
>>
>> Signed-off-by: Alagu Sankar <[email protected]>
>> Signed-off-by: Erik Stromdahl <[email protected]>
>> [fabio: adapt it to use ar->bus_param.dev_type ]
>> Signed-off-by: Fabio Estevam <[email protected]>
>> ---
>> Changes since v2:
>> - Pick Alagu's patch:
>> https://patchwork.kernel.org/project/ath10k/patch/[email protected]/
>
> A gentle ping on this one.

This is on my queue, it's just that the queue is quite long at the
moment.

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

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

2021-09-28 14:39:19

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH v3] ath10k: high latency fixes for beacon buffer

Fabio Estevam <[email protected]> wrote:

> Beacon buffer for high latency devices does not use DMA. other similar
> buffer allocation methods in the driver have already been modified for
> high latency path. Fix the beacon buffer allocation left out in the
> earlier high latency changes.
>
> Signed-off-by: Alagu Sankar <[email protected]>
> Signed-off-by: Erik Stromdahl <[email protected]>
> [fabio: adapt it to use ar->bus_param.dev_type ]
> Signed-off-by: Fabio Estevam <[email protected]>
> Signed-off-by: Kalle Valo <[email protected]>

Patch applied to ath-next branch of ath.git, thanks.

e263bdab9c0e ath10k: high latency fixes for beacon buffer

--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

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