Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp2608663pxb; Tue, 24 Aug 2021 03:24:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxODcrEz0cpRM02yJiiMsJoN0Q2X6Llt6TsAT/l2YY0pWeZGVe7jmxVJs2NIcGOSWW7o736 X-Received: by 2002:a92:c5a7:: with SMTP id r7mr26612458ilt.11.1629800652952; Tue, 24 Aug 2021 03:24:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629800652; cv=none; d=google.com; s=arc-20160816; b=HK4hPnoVBVr31JcaT93pPmN+h77xSBcPdKbh9CSBtGOpKcxB0Ren8H6U8afJ9zOtmD 83u/f1UwvUU3udUh5Q1uPDuYJlW64TNy3BFX9AK0VIfLQdj/k2L2cjZeliFFx1RQSYye lP2w46RM2FDYioonMrU61Zhxm6d7qrfQoUu+eavPv82khEmn4wM7v6q5c5Sa0GM3lU0+ icVcceSRPM4+i3T5nGqtFQM5EC1eU+8+JS6CgS7umpyBCxZ6+53XK42tmyyN161YeNpD KPmRAgFXyrbV8AjCMDb0r2Z3da8qFRG2WqyGOkZdQhxUgqOCbLVMjmnNGfWuH9jAiJH3 rOYQ== 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=L8n4dF/s7KWStwlX0eJjHmcN7zwC/Nx2kw21JRk4m/0=; b=nKqfN9Ym1d65sHCklkzUCCHnIMaJd7vwmG283XWtTLt5cFgjanlKECe0q7lAk8e+Yt SqW9X2zAXonq7wSRKW6wV1RCrmumJfW6HLHlWQjIp6U6qLoM9eqFn4RDet/a6MCkWFJC NULEZyLQDDVMu+AV8otvcPjm8beDHLQtpjXAOjsQiO+XGRn61CAgIOMrL87/KNAu7enp THfFJKNFLmQIo80L3fZM1z328d+yYOLgNtEzzWNKuXfqxE+fwob2HKN6fmhQCW5pEXG5 cJ/ODSd1qelzlVJkNkTS5j2n9HThtuUdl0PII4CKuxdvbGW31dc3nEl9sCZn4Um0M7wH jkSw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=WjXkXCZX; 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 i4si4950404ila.157.2021.08.24.03.24.01; Tue, 24 Aug 2021 03:24:12 -0700 (PDT) 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=WjXkXCZX; 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 S236249AbhHXKXu (ORCPT + 99 others); Tue, 24 Aug 2021 06:23:50 -0400 Received: from mail.kernel.org ([198.145.29.99]:59494 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236257AbhHXKXt (ORCPT ); Tue, 24 Aug 2021 06:23:49 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id C4AA861357; Tue, 24 Aug 2021 10:23:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1629800585; bh=+327ZNOld72HlUPOg4sSvBzyK9vK8+RH7mIh6t3SQg0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WjXkXCZXr4zC5KwI1reIuYtbE1aTekY/F3dtYA9g/AbSx6mMfsZFjCrTaP7nhSiQI 5gQfW9EOw+e9EdJcdwRWsO7dpnWpqRg9ZiRUCyyCahgCjhQtgJrIvj2wpWpMg8d3Ml GGrA+nNWyRfXFbTrNrr2ld1Ex8hO9LhAZ8V4RVq2H8PHEwuUx6x5i6D8f+UCc2D8q+ ZsvDlUR/8ND5OjSqbXBIpcy+g01gmYtkVxic3PjmkCjvmP8buDEu+Jg72C83BumJ9J IfbAyiNueqkg5LOWx2ZOvudF7oSjH6rXPBhLKSzzhrmQP7R3TbGObYJs9V8tM8gtbl INaHB5XbBI00g== From: Lorenzo Bianconi To: nbd@nbd.name Cc: linux-wireless@vger.kernel.org, lorenzo.bianconi@redhat.com, sean.wang@mediatek.com, Deren.Wu@mediatek.com Subject: [PATCH 5/9] mt76: connac: add 6GHz support to mt76_connac_mcu_sta_tlv Date: Tue, 24 Aug 2021 12:22:23 +0200 Message-Id: X-Mailer: git-send-email 2.31.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Introduce sta_rec_he_6g_capa tlv in order configure the mcu with 6GHz capabilities. This is a preliminary patch to enable 6GHz band for mt7921 devices. Tested-by: Deren Wu Signed-off-by: Lorenzo Bianconi --- drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c | 12 +++++++++++- drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h | 9 +++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c index 8e1475aa35ac..ab44e61e3aaf 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c @@ -770,8 +770,18 @@ void mt76_connac_mcu_sta_tlv(struct mt76_phy *mphy, struct sk_buff *skb, mt76_connac_mcu_sta_amsdu_tlv(skb, sta, vif); /* starec he */ - if (sta->he_cap.has_he) + if (sta->he_cap.has_he) { mt76_connac_mcu_sta_he_tlv(skb, sta); + if (band == NL80211_BAND_6GHZ && + sta_state == MT76_STA_INFO_STATE_ASSOC) { + struct sta_rec_he_6g_capa *he_6g_capa; + + tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_HE_6G, + sizeof(*he_6g_capa)); + he_6g_capa = (struct sta_rec_he_6g_capa *)tlv; + he_6g_capa->capa = sta->he_6ghz_capa.capa; + } + } tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_PHY, sizeof(*phy)); phy = (struct sta_rec_phy *)tlv; diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h index 0f11574af535..5ab5e185a8bb 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h @@ -145,6 +145,13 @@ struct sta_rec_phy { u8 rsv[2]; } __packed; +struct sta_rec_he_6g_capa { + __le16 tag; + __le16 len; + __le16 capa; + u8 rsv[2]; +} __packed; + /* wtbl_rec */ struct wtbl_req_hdr { @@ -303,6 +310,7 @@ struct wtbl_raw { sizeof(struct sta_rec_vht) + \ sizeof(struct sta_rec_uapsd) + \ sizeof(struct sta_rec_amsdu) + \ + sizeof(struct sta_rec_he_6g_capa) + \ sizeof(struct tlv) + \ MT76_CONNAC_WTBL_UPDATE_MAX_SIZE) @@ -329,6 +337,7 @@ enum { STA_REC_MUEDCA, STA_REC_BFEE, STA_REC_PHY = 0x15, + STA_REC_HE_6G = 0x17, STA_REC_MAX_NUM }; -- 2.31.1