From patchwork Tue Nov 3 12:17:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bryan O'Donoghue X-Patchwork-Id: 11877297 X-Patchwork-Delegate: kvalo@adurom.com Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9FB5192C for ; Tue, 3 Nov 2020 12:16:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7931B20714 for ; Tue, 3 Nov 2020 12:16:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="HHy0mndQ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728994AbgKCMQm (ORCPT ); Tue, 3 Nov 2020 07:16:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54852 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728520AbgKCMQl (ORCPT ); Tue, 3 Nov 2020 07:16:41 -0500 Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 08843C0617A6 for ; Tue, 3 Nov 2020 04:16:41 -0800 (PST) Received: by mail-wm1-x341.google.com with SMTP id k18so12551011wmj.5 for ; Tue, 03 Nov 2020 04:16:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KlmuRyRTsccQs11337/cNvBJ75DEr7vPuxm5KWIHi20=; b=HHy0mndQwujeOhiq71ViwLo1ljXcsNpMOf4lVqk7taZR2mz/fYRUPcYcta2AnF9VhT GNCNVZpcor4YukSqyJuRfzX4nadfkOBsfoHIIo35uG91+I0Rl/U75YNq4hup1iatiJdI TTH+XyxgT6oR4QudVLR0TADFXEthmKWyCM2nK4aBhX8U/wy34rIdMdO9FLRGyQ0Jj93e FAWVHpWqYPJFopI+oAhG1b9aOP9GGJI7HH+w8Ub7BOi9QA3VkOqMRwW4w8UdiXCkjTww /RGcsV9C4ScAle3/7Mq8Z7Tb7Wo5BM7EmnEgDBu9e7IIrpZaT5ydVeP9nVO42b5vBZ+7 KcYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KlmuRyRTsccQs11337/cNvBJ75DEr7vPuxm5KWIHi20=; b=aTNi8dI6ITdrAR/Sg2q8IGJZkfS0tvyrSRSEGPyWTDrWvkfdoDApkro9AkTtyAx0M6 Qx1uaKdHxieR/jd7exgMlWfxVYdtFU4LLpTQq0AYNvFT1bO3Ep7HFSbGWjIzrex/mdcJ /aT9vRJmzeUqIt4XP5BXi65ZIia94+/Ks3cGpb/jSEc0FFM8QbYm0Mkyd2Y8aGAxEwHu eEdMROuug7tmBkCQw+Y0lk7A1MfycHnkvPClSO1LSkesIa0SA6pC6gb15KAlSQiXqOB3 N3qdbYGJSjuHF0ot3b/NC1kY7gN5leOCtJftRDTIQww9RpBXIWtRCj6PK6MXY7+4aM4C JnRg== X-Gm-Message-State: AOAM533tbCJfZg3DyGvt5xwi69AuMdcE47UQH3NaSxwdiHpYPEJh7Ebc vRMfrVY2sW1ueVPmdpWt+TkvNA== X-Google-Smtp-Source: ABdhPJx6BZp9a/RMWVolQpA1tVInIu+8wj4IVPiMgKjERw9a9I4+DxyTUfc8Bb+GpDEVeeispgzk+Q== X-Received: by 2002:a1c:6643:: with SMTP id a64mr3426219wmc.142.1604405799770; Tue, 03 Nov 2020 04:16:39 -0800 (PST) Received: from sagittarius-a.chello.ie (188-141-3-169.dynamic.upc.ie. [188.141.3.169]) by smtp.gmail.com with ESMTPSA id z6sm2678210wmi.1.2020.11.03.04.16.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Nov 2020 04:16:39 -0800 (PST) From: Bryan O'Donoghue To: kvalo@codeaurora.org, wcn36xx@lists.infradead.org, linux-wireless@vger.kernel.org Cc: bryan.odonoghue@linaro.org, shawn.guo@linaro.org, loic.poulain@linaro.org Subject: [PATCH v2 1/3] wcn36xx: Set LINK_FAIL_TX_CNT to 1000 on all wcn36xx Date: Tue, 3 Nov 2020 12:17:33 +0000 Message-Id: <20201103121735.291324-2-bryan.odonoghue@linaro.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201103121735.291324-1-bryan.odonoghue@linaro.org> References: <20201103121735.291324-1-bryan.odonoghue@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org 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 --- drivers/net/wireless/ath/wcn36xx/smd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c index 766400f7b61c..8ff1eda8f942 100644 --- a/drivers/net/wireless/ath/wcn36xx/smd.c +++ b/drivers/net/wireless/ath/wcn36xx/smd.c @@ -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), From patchwork Tue Nov 3 12:17:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bryan O'Donoghue X-Patchwork-Id: 11877299 X-Patchwork-Delegate: kvalo@adurom.com Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6AA48921 for ; Tue, 3 Nov 2020 12:16:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4120A20757 for ; Tue, 3 Nov 2020 12:16:44 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="bqSQSaSz" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729030AbgKCMQn (ORCPT ); Tue, 3 Nov 2020 07:16:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54856 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728168AbgKCMQm (ORCPT ); Tue, 3 Nov 2020 07:16:42 -0500 Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 04134C0613D1 for ; Tue, 3 Nov 2020 04:16:42 -0800 (PST) Received: by mail-wr1-x443.google.com with SMTP id a9so18281169wrg.12 for ; Tue, 03 Nov 2020 04:16:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=AtYobGQeIsOA41x9xn4O9D84Sqas95KTsM7EDwW2NZ8=; b=bqSQSaSzFf2lIASC3v6o/0ubrIkOy+WrVQu6Zj5VP3mjYYKf6qsyFAIHwbqDtzTIPl q2eCzOTTPup91Qg/J6h/fcn585CWG4TgI3bbPzKUL7rWWpd21TayPVv7kX4tS8Id5/26 1AWAOnRcq/jwRRkvqrQ91703Adf6LYsbmIFSDwmigCeaFA60DSdD32LU25EhdeDElmf4 n0nTV4BIGYnwngGCRsJiE6gYp56wFSNsrgzDiVizpsHP4/DzKPaK0xbss0k4KEMVEknD Z0ORxG8eFHKkCHUvqWI5PhD5ZQdf0XDEAFosaius6KQbc+31s60CE6wZhOAf3JSQKv85 V+zQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=AtYobGQeIsOA41x9xn4O9D84Sqas95KTsM7EDwW2NZ8=; b=eePNvyQhv+8v8twdJtkbneuWW1/KrKsKRHt+9dV4ckdQezY5Y2t7CTrWoAGNV7wEfl YQLSqasWcrX6u3XZqmgPSKf8Fc3UBtdc7ljWfxFx7LPpvz0T0VgRq+9m/F1UH4nlB46I RusIWD1f8Be1yS3Fe44OVNrTlvTMbdiz0fbhqRKO/yk9rdoRABoUmpG6Z/uxD9QvOk2N NTpySSHJeWralxsasBBhSi04iI+WH+xyUWCVipOX/zI06uRzz3chQ7kNKjeU6MYtH4oS mWs85B1WX53SPmYKEZNk2gHFC9eFYXvPzPf/Ux7oBJGqsBE2X5diNknTNA9jc02lswLn 1pzw== X-Gm-Message-State: AOAM531b4F00kuuU6F79tWeisVjujCCGJxBBpFznxIyCPIkC+YTorEAD dMX7tEVZt9bGNBYGb2yQc+83Ag== X-Google-Smtp-Source: ABdhPJznFL0l7GIBMTCL4s6H9JUgbutaU6Aeb9w2VyMeeYMzIAJ8ITqnX8Wpee2NPWJUppf0Bh4rgg== X-Received: by 2002:a5d:5261:: with SMTP id l1mr27881738wrc.105.1604405800755; Tue, 03 Nov 2020 04:16:40 -0800 (PST) Received: from sagittarius-a.chello.ie (188-141-3-169.dynamic.upc.ie. [188.141.3.169]) by smtp.gmail.com with ESMTPSA id z6sm2678210wmi.1.2020.11.03.04.16.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Nov 2020 04:16:40 -0800 (PST) From: Bryan O'Donoghue To: kvalo@codeaurora.org, wcn36xx@lists.infradead.org, linux-wireless@vger.kernel.org Cc: bryan.odonoghue@linaro.org, shawn.guo@linaro.org, loic.poulain@linaro.org Subject: [PATCH v2 2/3] wcn36xx: Enable firmware link monitoring Date: Tue, 3 Nov 2020 12:17:34 +0000 Message-Id: <20201103121735.291324-3-bryan.odonoghue@linaro.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201103121735.291324-1-bryan.odonoghue@linaro.org> References: <20201103121735.291324-1-bryan.odonoghue@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org This patch switches on CONNECTION_MONITOR. Once done it is up to the firmware to send keep alive and to monitor the link state. Signed-off-by: Bryan O'Donoghue --- drivers/net/wireless/ath/wcn36xx/main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c index 706728fba72d..e924cc4acde0 100644 --- a/drivers/net/wireless/ath/wcn36xx/main.c +++ b/drivers/net/wireless/ath/wcn36xx/main.c @@ -1246,6 +1246,7 @@ static int wcn36xx_init_ieee80211(struct wcn36xx *wcn) ieee80211_hw_set(wcn->hw, HAS_RATE_CONTROL); ieee80211_hw_set(wcn->hw, SINGLE_SCAN_ON_ALL_BANDS); ieee80211_hw_set(wcn->hw, REPORTS_TX_ACK_STATUS); + ieee80211_hw_set(wcn->hw, CONNECTION_MONITOR); wcn->hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_AP) | From patchwork Tue Nov 3 12:17:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bryan O'Donoghue X-Patchwork-Id: 11877301 X-Patchwork-Delegate: kvalo@adurom.com Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A9E8492C for ; Tue, 3 Nov 2020 12:16:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 82B5220757 for ; Tue, 3 Nov 2020 12:16:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="eSU8lULd" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729033AbgKCMQp (ORCPT ); Tue, 3 Nov 2020 07:16:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54862 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728168AbgKCMQo (ORCPT ); Tue, 3 Nov 2020 07:16:44 -0500 Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 02449C0613D1 for ; Tue, 3 Nov 2020 04:16:43 -0800 (PST) Received: by mail-wr1-x444.google.com with SMTP id a9so18281236wrg.12 for ; Tue, 03 Nov 2020 04:16:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=B1scLjb8IcSGFznlQh5DO/IzLfMPdaRu0HzvgPpPq8k=; b=eSU8lULdC7t75XT/meQjIzmdPZKl9bATEW0ZqFenaU+w5PqCp5yXhSIrKeYfua5h6i 2URqPc8WkR+F1KEN2cc2QrmDe/fKrxoHLw1T4uuxd7OQ9X06eiKy992KZR70GolZImjn 2egajD+ARiLjjfCqiHi0KwglHmvfQZyMIFexCFJzPMhvoowcgtoqt8XaTpqbZ30pm4hu ksU/Nj5aMmkH4PNqmB0Nqj8gApwrDNJZxCk1po1kwiRHI/nzjsyKFxJDf+Ns68dPI2s4 HebsE3C/hcH1qYBHvY9GbPJ4GuWyteZ02LSQvCF5whqN20u1O46b2/1HXRekQinCFYkP R44g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=B1scLjb8IcSGFznlQh5DO/IzLfMPdaRu0HzvgPpPq8k=; b=nnzYUL65JMRlRLwr44JMy0298YvwVhLxVBFi+sKgIFuVtCmA6S0yL6shM9DfJqe+c1 TEEl2HgOMnhi2KUv7PqwK+Bs0qjAO/yCCDXKfE1q7wzZmB1oq2HLOR+1DvK79JgGJXXk 1qLed1xmFdknceQqWONCpqf4qFPHHkzs6JvQ2DxsCY44KYGkRcXeDMmPvNcsX+wX2kdd 4qh4pvy2Wm6dXfMOq0FXyQYywRStaTxruKFzZOrPeelW8W9mHbc1doTLxXTd2zDWKm6i MziX7eqs7nPCXqbCanaA1eLG8Pi4OeoIjo4/nodHfrC60gvbEiw5nUzfucVURs19lQQ/ f07g== X-Gm-Message-State: AOAM531+YpngJlvLv+vHAteXTXTZEhtpMMtBbMDP0miOna31H5UXis3S BDPe3+h/qY+VztLPzDAuXoR+WQ== X-Google-Smtp-Source: ABdhPJylNMFN7fvUvVgAL/F85cbTfmchIG2Q1SCfNvqstUOzF8gCQghfybokA9jnCL9mfkH6P+PYGw== X-Received: by 2002:adf:97cb:: with SMTP id t11mr27734648wrb.292.1604405801741; Tue, 03 Nov 2020 04:16:41 -0800 (PST) Received: from sagittarius-a.chello.ie (188-141-3-169.dynamic.upc.ie. [188.141.3.169]) by smtp.gmail.com with ESMTPSA id z6sm2678210wmi.1.2020.11.03.04.16.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Nov 2020 04:16:41 -0800 (PST) From: Bryan O'Donoghue To: kvalo@codeaurora.org, wcn36xx@lists.infradead.org, linux-wireless@vger.kernel.org Cc: bryan.odonoghue@linaro.org, shawn.guo@linaro.org, loic.poulain@linaro.org Subject: [PATCH v2 3/3] wcn36xx: Enable firmware offloaded keepalive Date: Tue, 3 Nov 2020 12:17:35 +0000 Message-Id: <20201103121735.291324-4-bryan.odonoghue@linaro.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201103121735.291324-1-bryan.odonoghue@linaro.org> References: <20201103121735.291324-1-bryan.odonoghue@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org This patch calls wcn36xx_smd_keep_alive_req() on the STA patch immediately after associating with an AP. This will cause the firmware to send a NULL packet out to the AP every 30 seconds, thus offloading keep-alive processing from the SoC to the firmware. Signed-off-by: Bryan O'Donoghue --- drivers/net/wireless/ath/wcn36xx/main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c index e924cc4acde0..5867bd9c2f64 100644 --- a/drivers/net/wireless/ath/wcn36xx/main.c +++ b/drivers/net/wireless/ath/wcn36xx/main.c @@ -910,6 +910,7 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw, * place where AID is available. */ wcn36xx_smd_config_sta(wcn, vif, sta); + wcn36xx_enable_keep_alive_null_packet(wcn, vif); } else { wcn36xx_dbg(WCN36XX_DBG_MAC, "disassociated bss %pM vif %pM AID=%d\n",