2015-02-12 09:29:09

by SenthilKumar Jegadeesan

[permalink] [raw]
Subject: [PATCH] ath10k: Increase AST table SKID length limit

The current SKID length configuration causes firmware
to reject peer creation for not able to allocate
AST entries for peers. This issue is observed when
least significant 3 bytes are used ramdomly to create
client MAC addresses.

AST table SKID length configuration is increased to
maximum value to fix this issue.

Signed-off-by: SenthilKumar Jegadeesan <[email protected]>
---
drivers/net/wireless/ath/ath10k/hw.h | 1 +
drivers/net/wireless/ath/ath10k/wmi.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath10k/hw.h b/drivers/net/wireless/ath/ath10k/hw.h
index 460771f..b86996e 100644
--- a/drivers/net/wireless/ath/ath10k/hw.h
+++ b/drivers/net/wireless/ath/ath10k/hw.h
@@ -254,6 +254,7 @@ struct ath10k_pktlog_hdr {

/* 10.2 parameters */
#define TARGET_10_2_DMA_BURST_SIZE 1
+#define TARGET_10_2_AST_SKID_LIMIT 128

/* Target specific defines for WMI-TLV firmware */
#define TARGET_TLV_NUM_VDEVS 3
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
index aeea1c7..13290da 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -3920,7 +3920,7 @@ static struct sk_buff *ath10k_wmi_10_2_op_gen_init(struct ath10k *ar)
config.num_peers = __cpu_to_le32(TARGET_10X_NUM_PEERS);
config.num_peer_keys = __cpu_to_le32(TARGET_10X_NUM_PEER_KEYS);
config.num_tids = __cpu_to_le32(TARGET_10X_NUM_TIDS);
- config.ast_skid_limit = __cpu_to_le32(TARGET_10X_AST_SKID_LIMIT);
+ config.ast_skid_limit = __cpu_to_le32(TARGET_10_2_AST_SKID_LIMIT);
config.tx_chain_mask = __cpu_to_le32(TARGET_10X_TX_CHAIN_MASK);
config.rx_chain_mask = __cpu_to_le32(TARGET_10X_RX_CHAIN_MASK);
config.rx_timeout_pri_vo = __cpu_to_le32(TARGET_10X_RX_TIMEOUT_LO_PRI);
--
1.9.1



2015-02-13 14:04:15

by SenthilKumar Jegadeesan

[permalink] [raw]
Subject: Re: [PATCH] ath10k: Increase AST table SKID length limit

On Thu, Feb 12, 2015 at 05:13:21AM -0800, Ben Greear wrote:
>
>
> On 02/12/2015 01:28 AM, SenthilKumar Jegadeesan wrote:
> >The current SKID length configuration causes firmware
> >to reject peer creation for not able to allocate
> >AST entries for peers. This issue is observed when
> >least significant 3 bytes are used ramdomly to create
> >client MAC addresses.
> >
> >AST table SKID length configuration is increased to
> >maximum value to fix this issue.
>
> If your firmware is like 10.1, then probably AST length should
> really be same as config.num_peers?
>
> 10.1 firmware definitely has same or similar issue in it's
> AST table handling, for what that is worth.
>
> Thanks,
> Ben

I agree. New patch will address this case.

Thanks,
Senthil J

2015-02-12 13:13:22

by Ben Greear

[permalink] [raw]
Subject: Re: [PATCH] ath10k: Increase AST table SKID length limit



On 02/12/2015 01:28 AM, SenthilKumar Jegadeesan wrote:
> The current SKID length configuration causes firmware
> to reject peer creation for not able to allocate
> AST entries for peers. This issue is observed when
> least significant 3 bytes are used ramdomly to create
> client MAC addresses.
>
> AST table SKID length configuration is increased to
> maximum value to fix this issue.

If your firmware is like 10.1, then probably AST length should
really be same as config.num_peers?

10.1 firmware definitely has same or similar issue in it's
AST table handling, for what that is worth.

Thanks,
Ben


>
> Signed-off-by: SenthilKumar Jegadeesan <[email protected]>
> ---
> drivers/net/wireless/ath/ath10k/hw.h | 1 +
> drivers/net/wireless/ath/ath10k/wmi.c | 2 +-
> 2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/ath/ath10k/hw.h b/drivers/net/wireless/ath/ath10k/hw.h
> index 460771f..b86996e 100644
> --- a/drivers/net/wireless/ath/ath10k/hw.h
> +++ b/drivers/net/wireless/ath/ath10k/hw.h
> @@ -254,6 +254,7 @@ struct ath10k_pktlog_hdr {
>
> /* 10.2 parameters */
> #define TARGET_10_2_DMA_BURST_SIZE 1
> +#define TARGET_10_2_AST_SKID_LIMIT 128
>
> /* Target specific defines for WMI-TLV firmware */
> #define TARGET_TLV_NUM_VDEVS 3
> diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
> index aeea1c7..13290da 100644
> --- a/drivers/net/wireless/ath/ath10k/wmi.c
> +++ b/drivers/net/wireless/ath/ath10k/wmi.c
> @@ -3920,7 +3920,7 @@ static struct sk_buff *ath10k_wmi_10_2_op_gen_init(struct ath10k *ar)
> config.num_peers = __cpu_to_le32(TARGET_10X_NUM_PEERS);
> config.num_peer_keys = __cpu_to_le32(TARGET_10X_NUM_PEER_KEYS);
> config.num_tids = __cpu_to_le32(TARGET_10X_NUM_TIDS);
> - config.ast_skid_limit = __cpu_to_le32(TARGET_10X_AST_SKID_LIMIT);
> + config.ast_skid_limit = __cpu_to_le32(TARGET_10_2_AST_SKID_LIMIT);
> config.tx_chain_mask = __cpu_to_le32(TARGET_10X_TX_CHAIN_MASK);
> config.rx_chain_mask = __cpu_to_le32(TARGET_10X_RX_CHAIN_MASK);
> config.rx_timeout_pri_vo = __cpu_to_le32(TARGET_10X_RX_TIMEOUT_LO_PRI);
> --
> 1.9.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

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