Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp472132ybc; Tue, 19 Nov 2019 04:25:11 -0800 (PST) X-Google-Smtp-Source: APXvYqzJpnfyk01Iy7mrEbTS51isMmQ6OAVYAv0kQxKYdnT9tl2VYy6NaAfelgJjFss712kHL0Vs X-Received: by 2002:a5d:4381:: with SMTP id i1mr1917756wrq.292.1574166311840; Tue, 19 Nov 2019 04:25:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574166311; cv=none; d=google.com; s=arc-20160816; b=DozXSRgaJ/EwIZ/4bQMtPGwjQ0cAfApCLrXVXbqfX1MbPXP92zc+JOb3hVLNdK6qsj oxHdyf0jUST6fZDvlyBlgwUbit25VxFP63sICsEQQZN3qzWsa6d9QePGjUYaIfZRjKd3 RiCE4hjnJM01OWgNz77pg2HlcZVV8Cvp/zMP2UHCYu+q0kmaewPKXiAKiWkE55RIMi5B d1ilDJx9HjMqAXqnuAAs7JMvsQQAHBV5XDFJfjd124e73yx2x8tBE4/9ev5vZZ/PIq4C dYDpL1x/gIX6vygYjW2e0K9UyCiq5lzhzzEZf5DWz76if7rFVER9h7vJz39HqT91u9rL BnwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=vjyGxo/7PPl6eAnsh+D4eUdud8B3sovs2FLfqegOqIU=; b=RDb9ogiCVgnyqMgz2/6iUpofwfDdqbCdOumiJaDAyJ0ur+B7rEYcZ7wVLz29JSHr3a CbTDMO3SCX6+vQZAHrMk/59sZeIXggeKZ5URO/5OHd5c0J21NsMRSe5btdqOA87kFf2k O8MvAgUK2ET1mgDqnJ1Y/Qrj9nhIgGR+cq8iITgW5PHVq63Sxn+v/Impn122NDhg6Psq uPj9/0H4UkTCOE8+NF13keE5EKB+d6qAT6BeHeuRDoo99EzvISuaYGR6qja1HAvH7Js+ jRnUIi+Qhn+J5mHYd60aN9MKWHwr0U1cm5OuiwCJIA6sCvUSOr3KffWGNHJnf9MPG0+f 6yZA== 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 h43si15347412edb.89.2019.11.19.04.24.46; Tue, 19 Nov 2019 04:25:11 -0800 (PST) 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 S1728088AbfKSMYY (ORCPT + 99 others); Tue, 19 Nov 2019 07:24:24 -0500 Received: from smail.rz.tu-ilmenau.de ([141.24.186.67]:42610 "EHLO smail.rz.tu-ilmenau.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728016AbfKSMYV (ORCPT ); Tue, 19 Nov 2019 07:24:21 -0500 Received: from localhost.localdomain (unknown [141.24.207.101]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smail.rz.tu-ilmenau.de (Postfix) with ESMTPSA id 002C3580081; Tue, 19 Nov 2019 13:24:18 +0100 (CET) From: Markus Theil To: nbd@nbd.name Cc: linux-wireless@vger.kernel.org, lorenzo.bianconi@redhat.com, Stanislaw Gruszka , Markus Theil Subject: [PATCH v5 5/5] mt76: mt76x02: add channel switch support for usb interfaces Date: Tue, 19 Nov 2019 13:24:10 +0100 Message-Id: <20191119122410.12588-6-markus.theil@tu-ilmenau.de> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191119122410.12588-1-markus.theil@tu-ilmenau.de> References: <20191119122410.12588-1-markus.theil@tu-ilmenau.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org This patch enables channel switch support on mt76 usb interfaces. Signed-off-by: Markus Theil --- drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c | 7 +++++++ drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c b/drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c index 8a2a90fb5663..891825043117 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c @@ -182,6 +182,12 @@ static void mt76x02u_pre_tbtt_work(struct work_struct *work) /* Prevent corrupt transmissions during update */ mt76_set(dev, MT_BCN_BYPASS_MASK, 0xffff); + mt76_csa_check(&dev->mt76); + if (dev->mt76.csa_complete) { + mt76_csa_finish(&dev->mt76); + goto out; + } + ieee80211_iterate_active_interfaces(mt76_hw(dev), IEEE80211_IFACE_ITER_RESUME_ALL, mt76x02_update_beacon_iter, dev); @@ -196,6 +202,7 @@ static void mt76x02u_pre_tbtt_work(struct work_struct *work) mt76x02_mac_set_beacon_finish(dev); +out: mt76x02u_restart_pre_tbtt_timer(dev); } diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c index 414b22399d93..3f95e5b24e1d 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c @@ -174,7 +174,6 @@ void mt76x02_init_device(struct mt76x02_dev *dev) wiphy->reg_notifier = mt76x02_regd_notifier; wiphy->iface_combinations = mt76x02_if_comb; wiphy->n_iface_combinations = ARRAY_SIZE(mt76x02_if_comb); - wiphy->flags |= WIPHY_FLAG_HAS_CHANNEL_SWITCH; /* init led callbacks */ if (IS_ENABLED(CONFIG_MT76_LEDS)) { @@ -184,6 +183,7 @@ void mt76x02_init_device(struct mt76x02_dev *dev) } } + wiphy->flags |= WIPHY_FLAG_HAS_CHANNEL_SWITCH; wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_VHT_IBSS); hw->sta_data_size = sizeof(struct mt76x02_sta); -- 2.24.0