wcn36xx: Set LINK_FAIL_TX_CNT to 1000 on all wcn36xx
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>
Tue, 3 Nov 2020 12:17:33 +0000 (12:17 +0000)
committerKalle Valo <kvalo@codeaurora.org>
Sat, 7 Nov 2020 08:09:15 +0000 (10:09 +0200)
The firmware parameter LINK_FAIL_TX_CNT maps to the prima configuration
file parameter gLinkFailTxCnt and is described as:

quote: " If within gLinkFailTimeout period(values is mentioned in msec) if
         FW doesn't receive acks for gLinkFailTxCnt number of packets, then
         link will be disconnected."

The downstream description sets a minimum value of 1000 a maximum value of
60000 and a default value of 6000, however it appears that unless we
actually set this value deliberately firmware defaults it to 0.

Setting this value to non-zero results in the firmware doing link
monitoring. The working example from downstream paradoxically sets the
value to 200, here we opt to set the value to the minimum stipulated in the
configuration file 1000.

In conjunction with ieee80211_hw_set(wcn->hw, CONNECTION_MONITOR); this
change effects offload of link monitoring to the firmware.

Tested with:
'CNSS-PR-2-0-1-2-c1-74-130449-3' wcn3620
'CNSS-PR-2-0-1-2-c1-00083'       wcn3680

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20201103121735.291324-2-bryan.odonoghue@linaro.org
drivers/net/wireless/ath/wcn36xx/smd.c

index 766400f..8ff1eda 100644 (file)
@@ -78,6 +78,7 @@ static struct wcn36xx_cfg_val wcn36xx_cfg_vals[] = {
        WCN36XX_CFG_VAL(MAX_ASSOC_LIMIT, 10),
        WCN36XX_CFG_VAL(ENABLE_MCC_ADAPTIVE_SCHEDULER, 0),
        WCN36XX_CFG_VAL(ENABLE_DYNAMIC_RA_START_RATE, 133), /* MCS 5 */
+       WCN36XX_CFG_VAL(LINK_FAIL_TX_CNT, 1000),
 };
 
 static struct wcn36xx_cfg_val wcn3680_cfg_vals[] = {
@@ -162,7 +163,7 @@ static struct wcn36xx_cfg_val wcn3680_cfg_vals[] = {
        WCN36XX_CFG_VAL(ENABLE_RTSCTS_HTVHT, 0),
        WCN36XX_CFG_VAL(BTC_STATIC_OPP_WLAN_IDLE_WLAN_LEN, 30000),
        WCN36XX_CFG_VAL(BTC_STATIC_OPP_WLAN_IDLE_BT_LEN, 120000),
-       WCN36XX_CFG_VAL(LINK_FAIL_TX_CNT, 200),
+       WCN36XX_CFG_VAL(LINK_FAIL_TX_CNT, 1000),
        WCN36XX_CFG_VAL(TOGGLE_ARP_BDRATES, 0),
        WCN36XX_CFG_VAL(OPTIMIZE_CA_EVENT, 0),
        WCN36XX_CFG_VAL(EXT_SCAN_CONC_MODE, 0),