Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp8191501pxb; Fri, 19 Feb 2021 09:33:32 -0800 (PST) X-Google-Smtp-Source: ABdhPJyh116mLRBHyIDRMhx79hYikHB7fdzZzM0MurPBxu+5oYHtEfKpwb0mmihPvUsClrYz4F3o X-Received: by 2002:a17:907:262b:: with SMTP id aq11mr9467074ejc.360.1613756012683; Fri, 19 Feb 2021 09:33:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613756012; cv=none; d=google.com; s=arc-20160816; b=mvDXyqE4y9X2YqzEdQUni3pOGZHEjGs8Z55+NjAQ7i2OGA3F2Dx1fpYGHzp+QznFrx Yc9NnkJJOE3R2PeYW9w+fXepuYuQUX9IZlG81L3RD1/m8C/dNdI/uE/giNeRyeqcjtLS mjawXdfjDxSdm222lyZV3zuHoYqsfXPCuXZPXW1p+eszJGGRPV3Zq3FfG0bKiwjXUZ/d IyfHffNDIDuglRz26ryaMTlWuwEB10Vz1c51bWs570+YprHG2yYT6u5QNcxNphxjvlfH cWhSS/fhwGNwzN/pzhwifyBDroH1BiuOT/aDBAURFHABDGTN06GxPLgVmz+wL2Anly/o ppbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=jbGXqNIKHAZ6j1XOyS3KPxYL/cyYHWaED61qqg7OADk=; b=A6oAspejwRRZn9hq/lScCwDomLqs/8LdtKHLI7BHeEOTV1j/SaRP2WLRavxK1GUG2r syvJU1kl3PrbBoDjM+wWBrENUgyPBHTirP2bzp5xnHWFZx1w/f86GW6cfjzX1Iaqmagc PKFrU16Toj+A6ObPt7im2dtRcaV9AAqOKx6EAj4e7d5XZHD5tJwsvq0GsBBrHBfUlHrp OmsT8ycaNYPkICuG34pV+8hT7WkjEqExpz0FnS5ZJWOvX9uVh1LJKPIl2f4yw/tH15yi Mio7Bwuovsx/lC6lePEV2HkVcoc5n52/8rbjS9BSWjGIgTMs7TwXnp5enCpvEwS2+JLV TfDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=IEV4sNK1; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u20si5472412ejz.339.2021.02.19.09.33.04; Fri, 19 Feb 2021 09:33:32 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=IEV4sNK1; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229766AbhBSRaa (ORCPT + 99 others); Fri, 19 Feb 2021 12:30:30 -0500 Received: from mail.kernel.org ([198.145.29.99]:35828 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229752AbhBSRa3 (ORCPT ); Fri, 19 Feb 2021 12:30:29 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id B012364EB4; Fri, 19 Feb 2021 17:29:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1613755770; bh=9Kt1iqIuF9uVtbjCLpleISU4jYP/aYv06sPpjwtAk3I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IEV4sNK1rJKxUePBBCs8Z72O0vmofd4HUbHzw1WJEl/WsCcihZpGOBLvJreRA58ae PKvPcOMqnyTUotZuYHyGKTBFgo+09IHNqoMxoQFn38jgUrwjPLxLrNLFPQjCLhhtfA 4eVes7WpTa4T58YJ0ooHJOwWvgGDvuE38baSj7fJa2dmG7oA9L3lqBzda7ZjtdV9mn HMvywVlyv/i9z32IYFg/jTxp8zx9b0w6EAOZH/8rxCoKf/tr4Bil1tAy0nzwqhcqlD q517v37TbvXlny5/szMqhmKeLbXMcA5xtiLgdzKKtXpNB53vELJCi5DZ6NpZH+k3/A vweTGadjIQqvA== From: Lorenzo Bianconi To: nbd@nbd.name Cc: linux-wireless@vger.kernel.org, lorenzo.bianconi@redhat.com, sean.wang@mediatek.com Subject: [PATCH v2 8/8] mt76: connac: update sched_scan cmd usage Date: Fri, 19 Feb 2021 18:28:51 +0100 Message-Id: X-Mailer: git-send-email 2.29.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Sean Wang Update sched_scan command usage according to the current firmware submitted into linux-firmware.git. Fixes: 80fc1e37c0eb ("mt76: mt7921: rely on mt76_connac_mcu module for sched_scan and hw_scan") Co-developed-by: Soul Huang Signed-off-by: Soul Huang Signed-off-by: Sean Wang Signed-off-by: Lorenzo Bianconi --- drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h | 5 ----- drivers/net/wireless/mediatek/mt76/mt76_connac.h | 5 +++++ .../net/wireless/mediatek/mt76/mt76_connac_mcu.c | 7 +++++-- .../net/wireless/mediatek/mt76/mt76_connac_mcu.h | 14 +++++++++++--- 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h b/drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h index 491841bc6291..5ef19fbee6bd 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h +++ b/drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h @@ -408,11 +408,6 @@ static inline bool is_mt7615(struct mt76_dev *dev) return mt76_chip(dev) == 0x7615 || mt76_chip(dev) == 0x7611; } -static inline bool is_mt7663(struct mt76_dev *dev) -{ - return mt76_chip(dev) == 0x7663; -} - static inline bool is_mt7611(struct mt76_dev *dev) { return mt76_chip(dev) == 0x7611; diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac.h b/drivers/net/wireless/mediatek/mt76/mt76_connac.h index 0d58606391b0..b811f3c410a1 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76_connac.h +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac.h @@ -73,6 +73,11 @@ static inline bool is_mt7921(struct mt76_dev *dev) return mt76_chip(dev) == 0x7961; } +static inline bool is_mt7663(struct mt76_dev *dev) +{ + return mt76_chip(dev) == 0x7663; +} + int mt76_connac_pm_wake(struct mt76_phy *phy, struct mt76_connac_pm *pm); void mt76_connac_power_save_sched(struct mt76_phy *phy, struct mt76_connac_pm *pm); diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c index 81515419b5b6..125e02b34a5f 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c @@ -1438,10 +1438,13 @@ int mt76_connac_mcu_sched_scan_req(struct mt76_phy *phy, req->version = 1; req->seq_num = mvif->scan_seq_num | ext_phy << 7; - if (sreq->flags & NL80211_SCAN_FLAG_RANDOM_ADDR) { - get_random_mask_addr(req->random_mac, sreq->mac_addr, + if (is_mt7663(phy->dev) && + (sreq->flags & NL80211_SCAN_FLAG_RANDOM_ADDR)) { + get_random_mask_addr(req->mt7663.random_mac, sreq->mac_addr, sreq->mac_addr_mask); req->scan_func = 1; + } else if (is_mt7921(phy->dev)) { + req->mt7921.bss_idx = mvif->idx; } req->ssids_num = sreq->n_ssids; diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h index 9c26b90655a7..8478f019f5d3 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h @@ -756,11 +756,19 @@ struct mt76_connac_sched_scan_req { u8 channel_type; u8 channels_num; u8 intervals_num; - u8 scan_func; /* BIT(0) eable random mac address */ + u8 scan_func; /* MT7663: BIT(0) eable random mac address */ struct mt76_connac_mcu_scan_channel channels[64]; __le16 intervals[MT76_CONNAC_MAX_SCHED_SCAN_INTERVAL]; - u8 random_mac[ETH_ALEN]; /* valid when BIT(0) in scan_func is set */ - u8 pad2[58]; + union { + struct { + u8 random_mac[ETH_ALEN]; + u8 pad2[58]; + } mt7663; + struct { + u8 bss_idx; + u8 pad2[63]; + } mt7921; + }; } __packed; struct mt76_connac_sched_scan_done { -- 2.29.2