Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp1247995ybi; Sun, 16 Jun 2019 00:34:36 -0700 (PDT) X-Google-Smtp-Source: APXvYqyaUyFHfJ2hXfhUjqW7BKf8ruok+j1n9i3ar7JM09GiWe2tFwQTOTsMbrt+l/0FQ9rnaqWV X-Received: by 2002:a62:874f:: with SMTP id i76mr24542447pfe.118.1560670476703; Sun, 16 Jun 2019 00:34:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560670476; cv=none; d=google.com; s=arc-20160816; b=fApfHiTiZyZ7sht2h7WBYOjNg7mNL0ZCC5rejS+pGBYpjoPEyZh2hac3uejvGnoASr 8cId5B2QljEBOQva//6NzjgywA/ASwRcIHNDctp0y6No1Cbp5Z2rWlLLJUf0Ac9/+s6B sVSmsgpLZ0nTC2OZG8t6OPXldA8hlCGi5JWl0Z0/J8h3PZ6/E1rofAhjZ0xpBYuswatY 5PKAYsgS1l6QyXdtuFZ5R2EBRQn27HZafz8SiaNYj+73iJW7G2ASv+dz+lvnN+GQGrSx Nv7UqLjVOv7xrmBZLYm0DGVLRbpRFtisD8Z8I+J1hfzJNXmRU6sM0uy5AvVGvN3qkAc3 En5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=a2ZezJj7L0qc4RKInHG/YapEVv5Zs0ViY/Cx7TAxhss=; b=VqH8mOgppzqMDuwh9yg3LDx/yeOvJZwE+pVx9FNQ18/IL8VftRgWy7qBi9LTE2wN2t Q6kvVP4zXAIo1flXvd4Vsrds6sllHGAuJOIwRloconbInN14Zmn/n+07RvaBU9YsTYGA PhKw4DjYXtFj/jkxVcqH6lOJ0RUrEJ5KfXQ397p1SZMOy6dQC+omLwo+nbNF86hZRbta Ysd1xdzL2+O3drDHBzLdKAfiNTiysZz7pYQPQ4Qkp1bjghYlfoGf4D2dT+KfUaKZfoMJ dq5i6nrYcZtYxoea203PTJoNIBWu0OjQlVjEd1t33TXHK3YJ//jBnPmieFGzcP/Rt8yC WIIA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s10si6788308plq.129.2019.06.16.00.34.22; Sun, 16 Jun 2019 00:34:36 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726038AbfFPHeQ (ORCPT + 99 others); Sun, 16 Jun 2019 03:34:16 -0400 Received: from alexa-out-ams-02.qualcomm.com ([185.23.61.163]:36718 "EHLO alexa-out-ams-02.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725874AbfFPHeP (ORCPT ); Sun, 16 Jun 2019 03:34:15 -0400 Received: from ironmsg02-ams.qualcomm.com ([10.251.56.3]) by alexa-out-ams-02.qualcomm.com with ESMTP; 16 Jun 2019 09:26:15 +0200 X-IronPort-AV: E=McAfee;i="6000,8403,9289"; a="8499831" Received: from lx-merez1.mea.qualcomm.com ([10.18.173.103]) by ironmsg02-ams.qualcomm.com with ESMTP; 16 Jun 2019 09:26:10 +0200 From: Maya Erez To: Kalle Valo Cc: Alexei Avshalom Lazar , linux-wireless@vger.kernel.org, wil6210@qti.qualcomm.com, Maya Erez Subject: [PATCH 01/11] wil6210: do not reset FW in STA to P2P client interface switch Date: Sun, 16 Jun 2019 10:25:57 +0300 Message-Id: <1560669967-23706-2-git-send-email-merez@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1560669967-23706-1-git-send-email-merez@codeaurora.org> References: <1560669967-23706-1-git-send-email-merez@codeaurora.org> Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Alexei Avshalom Lazar Currently the FW is reset on every interface type change, because of various FW bugs. FW reset is not required when switching from STA to P2P client, hence can be skipped. Signed-off-by: Alexei Avshalom Lazar Signed-off-by: Maya Erez --- drivers/net/wireless/ath/wil6210/cfg80211.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/ath/wil6210/cfg80211.c b/drivers/net/wireless/ath/wil6210/cfg80211.c index e9780fc..1a4223f 100644 --- a/drivers/net/wireless/ath/wil6210/cfg80211.c +++ b/drivers/net/wireless/ath/wil6210/cfg80211.c @@ -643,6 +643,16 @@ static int wil_cfg80211_del_iface(struct wiphy *wiphy, return rc; } +static bool wil_is_safe_switch(enum nl80211_iftype from, + enum nl80211_iftype to) +{ + if (from == NL80211_IFTYPE_STATION && + to == NL80211_IFTYPE_P2P_CLIENT) + return true; + + return false; +} + static int wil_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev, enum nl80211_iftype type, @@ -668,7 +678,8 @@ static int wil_cfg80211_change_iface(struct wiphy *wiphy, * because it can cause significant disruption */ if (!wil_has_other_active_ifaces(wil, ndev, true, false) && - netif_running(ndev) && !wil_is_recovery_blocked(wil)) { + netif_running(ndev) && !wil_is_recovery_blocked(wil) && + !wil_is_safe_switch(wdev->iftype, type)) { wil_dbg_misc(wil, "interface is up. resetting...\n"); mutex_lock(&wil->mutex); __wil_down(wil); -- 1.9.1