diff mbox

ath10k: Increase AST table SKID length limit

Message ID 1423733322-31113-1-git-send-email-sjegadee@qti.qualcomm.com (mailing list archive)
State Superseded
Headers show

Commit Message

SenthilKumar Jegadeesan Feb. 12, 2015, 9:28 a.m. UTC
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 <sjegadee@qti.qualcomm.com>
---
 drivers/net/wireless/ath/ath10k/hw.h  | 1 +
 drivers/net/wireless/ath/ath10k/wmi.c | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

--
1.9.1

Comments

Ben Greear Feb. 12, 2015, 1:13 p.m. UTC | #1
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 <sjegadee@qti.qualcomm.com>
> ---
>   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 majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
SenthilKumar Jegadeesan Feb. 13, 2015, 2:03 p.m. UTC | #2
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
diff mbox

Patch

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