From patchwork Wed Jul 3 10:18:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sven Eckelmann X-Patchwork-Id: 11029293 X-Patchwork-Delegate: kvalo@adurom.com Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AB67A112C for ; Wed, 3 Jul 2019 10:19:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9A989288E2 for ; Wed, 3 Jul 2019 10:19:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8F0AE288E6; Wed, 3 Jul 2019 10:19:07 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.4 required=2.0 tests=BAYES_00,DKIM_ADSP_ALL, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 319C4288E2 for ; Wed, 3 Jul 2019 10:19:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=0P/vmUL+hqMUifpQezhtis1q3uCZmsiYvU1FvC/WR2g=; b=dfq3b69ebSjtoh MWsttFaLl4kXFoF1FOTol8uFPRjc6R+8G3ABw4mNchaoX1DlAu+u7eEjjtojumlnjJ451aKgGMAo+ Q6jJdQQtlbS+/hjmG8WjGwERIQw62vAgLox9j4cOrM0ReOKmJBl8AjCO/GHbINLxfFoXhBn4hZeRW h5qvja7Teg8HMyGnxFHf6QtZHyyxqPG3Y0Xdr3HxSNQbn8547jun5G9IGyM2Gfm9i/Ya8Ev03g7Mb jyXH2CoEzIGXrx21IKZQCZ8xXrfAOKFE5fcso44o15Mt0iBJLpzZ2yuCk1T0ORp1MBuIIyYu2G6pG zfNMi5rWLI6GLDxDWPIA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hicLy-0003sB-BL; Wed, 03 Jul 2019 10:19:06 +0000 Received: from dvalin.narfation.org ([2a00:17d8:100::8b1]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hicLu-0003pv-Gi for ath11k@lists.infradead.org; Wed, 03 Jul 2019 10:19:04 +0000 Received: from sven-desktop.home.narfation.org (p4FCB2E24.dip0.t-ipconnect.de [79.203.46.36]) by dvalin.narfation.org (Postfix) with ESMTPSA id 2E40D208EF; Wed, 3 Jul 2019 10:19:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=narfation.org; s=20121; t=1562149141; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=uFAdpu5W5pgQ6uC26s/F+q3bqzvGHMyyPnsJBTH91CQ=; b=WVk7kiZT2kKKR4ul2q9Dobvf/5d2rZnR2mczLfh6cwfAkJWr14odlqZmkusLnim8bCrJG5 sFa6vfiSSsYyPcvES9lM23sQT5dzJPlfbrIl/1DE1Xz/dSzUlvsPYj+Rygz9WbNeWVFbbE qY6smh/1Es5k0pH1U4Eltq4kmZ2bvcI= From: Sven Eckelmann To: linux-wireless@vger.kernel.org Subject: [PATCH v4 3/3] ath11k: register HE mesh capabilities Date: Wed, 3 Jul 2019 12:18:39 +0200 Message-Id: <20190703101839.18827-4-sven@narfation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190703101839.18827-1-sven@narfation.org> References: <20190703101839.18827-1-sven@narfation.org> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=narfation.org; s=20121; t=1562149141; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=uFAdpu5W5pgQ6uC26s/F+q3bqzvGHMyyPnsJBTH91CQ=; b=bwpqJgV4P50rRq2lVxlp2l6x//rW6P7T2MLqGjV10xckf69FiTjbpJnWtZG7Uqktl//SsN xo72nd30DsZBkrpeFcrjWFOTXBnk9svP+vSMu8rLuDcfKWValG8rgBPMX/DMT6LFLHSUbm WkUAxfAtMXvN1P14hWTdiBSu9hwYc8s= ARC-Seal: i=1; s=20121; d=narfation.org; t=1562149141; a=rsa-sha256; cv=none; b=It4DZ7T36hhcIZT1lNYNGnoQtrpnEIRjTUA/ulbueIj7vZAC3jIe0RoMAl6bMq1Cz3sYiE 2BM62NGMSL2b9d/xKQJAh3BYhEOSQ5oYVyguzCsWam+i+3k2enxYbNaj+tC0BDyTtmRr5R 2xixP/IIQfE++yrOKc3yZs07zdFXkpM= ARC-Authentication-Results: i=1; ORIGINATING; auth=pass smtp.auth=sven smtp.mailfrom=sven@narfation.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190703_031902_872228_D06D8808 X-CRM114-Status: UNSURE ( 7.09 ) X-CRM114-Notice: Please train this message. X-BeenThere: ath11k@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ath11k@lists.infradead.org, Sven Eckelmann Sender: "ath11k" Errors-To: ath11k-bounces+patchwork-ath11k=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP From: Sven Eckelmann The capabilities for the HE mesh are generated from the capabilities reported by the fw. But the firmware only reports the overall capabilities and not the one which are specific for mesh. Some of them (TWT, MU UL/DL, TB PPDU, ...) require an infrastructure setup with a main STA (AP) controlling the operations. This is not the case for mesh and thus these capabilities are removed from the list of capabilities. Signed-off-by: Sven Eckelmann --- drivers/net/wireless/ath/ath11k/mac.c | 56 +++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c index dd164b5bb51a..3a3296b83cc1 100644 --- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c @@ -3150,6 +3150,7 @@ static int ath11k_mac_copy_he_cap(struct ath11k *ar, switch (i) { case NL80211_IFTYPE_STATION: case NL80211_IFTYPE_AP: + case NL80211_IFTYPE_MESH_POINT: break; default: @@ -3190,6 +3191,61 @@ static int ath11k_mac_copy_he_cap(struct ath11k *ar, he_cap_elem->phy_cap_info[9] |= IEEE80211_HE_PHY_CAP9_TX_1024_QAM_LESS_THAN_242_TONE_RU; break; + case NL80211_IFTYPE_MESH_POINT: + he_cap_elem->mac_cap_info[0] &= + ~(IEEE80211_HE_MAC_CAP0_TWT_RES | + IEEE80211_HE_MAC_CAP0_TWT_REQ); + he_cap_elem->mac_cap_info[2] &= + ~(IEEE80211_HE_MAC_CAP2_TRS | + IEEE80211_HE_MAC_CAP2_BCAST_TWT | + IEEE80211_HE_MAC_CAP2_MU_CASCADING); + he_cap_elem->mac_cap_info[3] &= + ~(IEEE80211_HE_MAC_CAP3_FLEX_TWT_SCHED | + IEEE80211_HE_MAC_CAP2_BCAST_TWT | + IEEE80211_HE_MAC_CAP2_MU_CASCADING); + he_cap_elem->mac_cap_info[4] &= + ~(IEEE80211_HE_MAC_CAP4_BSRP_BQRP_A_MPDU_AGG | + IEEE80211_HE_MAC_CAP4_BQR); + he_cap_elem->mac_cap_info[5] &= + ~(IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION | + IEEE80211_HE_MAC_CAP5_UL_2x996_TONE_RU | + IEEE80211_HE_MAC_CAP5_PUNCTURED_SOUNDING | + IEEE80211_HE_MAC_CAP5_HT_VHT_TRIG_FRAME_RX); + + he_cap_elem->phy_cap_info[2] &= + ~(IEEE80211_HE_PHY_CAP2_UL_MU_FULL_MU_MIMO | + IEEE80211_HE_PHY_CAP2_UL_MU_PARTIAL_MU_MIMO); + he_cap_elem->phy_cap_info[3] &= + ~(IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA | + IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_MASK | + IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_MASK); + he_cap_elem->phy_cap_info[4] &= + ~IEEE80211_HE_PHY_CAP4_MU_BEAMFORMER; + he_cap_elem->phy_cap_info[5] &= + ~IEEE80211_HE_PHY_CAP5_NG16_MU_FEEDBACK; + he_cap_elem->phy_cap_info[6] &= + ~(IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_75_MU | + IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB | + IEEE80211_HE_PHY_CAP6_TRIG_CQI_FB | + IEEE80211_HE_PHY_CAP6_PARTIAL_BANDWIDTH_DL_MUMIMO); + he_cap_elem->phy_cap_info[7] &= + ~(IEEE80211_HE_PHY_CAP7_SRP_BASED_SR | + IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR | + IEEE80211_HE_PHY_CAP7_STBC_TX_ABOVE_80MHZ | + IEEE80211_HE_PHY_CAP7_STBC_RX_ABOVE_80MHZ); + he_cap_elem->phy_cap_info[8] &= + ~(IEEE80211_HE_PHY_CAP8_HE_ER_SU_PPDU_4XLTF_AND_08_US_GI | + IEEE80211_HE_PHY_CAP8_20MHZ_IN_40MHZ_HE_PPDU_IN_2G | + IEEE80211_HE_PHY_CAP8_20MHZ_IN_160MHZ_HE_PPDU | + IEEE80211_HE_PHY_CAP8_80MHZ_IN_160MHZ_HE_PPDU); + he_cap_elem->phy_cap_info[9] &= + ~(IEEE80211_HE_PHY_CAP9_LONGER_THAN_16_SIGB_OFDM_SYM | + IEEE80211_HE_PHY_CAP9_NON_TRIGGERED_CQI_FEEDBACK | + IEEE80211_HE_PHY_CAP9_RX_1024_QAM_LESS_THAN_242_TONE_RU | + IEEE80211_HE_PHY_CAP9_TX_1024_QAM_LESS_THAN_242_TONE_RU | + IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_COMP_SIGB | + IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_NON_COMP_SIGB); + break; } he_cap->he_mcs_nss_supp.rx_mcs_80 =