From nobody Mon Feb 24 03:08:18 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z1QfW2CKJz5pY3y; Mon, 24 Feb 2025 03:08:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z1QfV6zJtz47v6; Mon, 24 Feb 2025 03:08:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740366499; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5c7AARLVBBmMZmr2rpNlRXk/hWjYfO74Vq8WVisPcPE=; b=c0FD1xFRxVkIqpj75Sv/eFAYtBD6l0HAQjqprK6r4+rHu7L6Xm7A1YOEPff7IdQZKYf294 wiSeGB6FiyizG6R+ggMSnwCPxq/rVxnI8+G26NFqIDsXRu+DiE36by1pBwhxI0uVamUVAu FA7P9C7/dxNVVirml5g/NyI0KhvHfZvAf7durkRu8VkUgLL/FZrAsccDU569qVaylvhByy /aj3eolSebCEBXEeX7AjonZiSJOg34qvtZsE1ZXT7PqI6uLYGAlt+y1HPrPkYwDhCc9SYz wKIz6k6DDplADxsNIfDbbVSU/m5NqoRFAH1TlGsrOSN6WQeOj8awb1MkH5goTg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1740366499; a=rsa-sha256; cv=none; b=YvaTEmKvtvtw3aznGokHla0JrVEdO1Fr02trgDRnL7kRzavAMkMDVlMMveECPX5H1+CGu3 bKwMurGNA6HN/4qzcIdYf+iUjPg9bI2RzNW3MUXTIEVGLandfbQLKp3XvYUB83VluZVWgr uMndrLly7NVIvjGTeengDiVXcH+keoGyM8T326prIW7GTjmhmfiCde1Mbk678W3w7I6WFI TsdbCzExo3gQG+Hy82VWC8IcnZIZHr6mc/MEGE+bQ6u3WLLsDoA5uZCNGBJW6d4b0FYMuI gZQWsFhoyA6SRUKl8qxAF9fTJ624ZZQ+McIdWI7VUwtNBAmWfdZU50tjfzFRTQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740366499; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5c7AARLVBBmMZmr2rpNlRXk/hWjYfO74Vq8WVisPcPE=; b=v5GtWc0DXZLQJEjkP3wg8PLlT3HeFzJZSL9jos1Mnt3I5K5ZVAjYrrRTmY3g2QYZI3VewN zD3YuULnQdNg68wF/mHAe64Ee56ecFe0zCT5fbZkJbnvE4+pr/VJbqpo0zhcA8YDVV5Kk3 AVhxjU6yilY+TOeVd83q/kmUaPwvw8KpNfxdJnJRG2osyWIkl38XZmcPNNppgRat6mzagj CAKDGNYFq/vLKzZB085/rdSLwyu1XD3ZQ0wkPY5sengjHd98Qj11mrf5U3nBHNw5nv/7og H1K2i5OKzNY4zeJOpiH2mJ/R23hgBcR7nQH1CdBV4A5EEVdiIb4t9/JkvbIxgA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z1QfV60xbz74G; Mon, 24 Feb 2025 03:08:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 51O38IRZ083341; Mon, 24 Feb 2025 03:08:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 51O38I5p083338; Mon, 24 Feb 2025 03:08:18 GMT (envelope-from git) Date: Mon, 24 Feb 2025 03:08:18 GMT Message-Id: <202502240308.51O38I5p083338@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 389265e3ca82 - main - LinuxKPI: 802.11: factor out dynamic_rx_chains computation List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 389265e3ca827ad88b3b8ad787251471161d6634 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=389265e3ca827ad88b3b8ad787251471161d6634 commit 389265e3ca827ad88b3b8ad787251471161d6634 Author: Bjoern A. Zeeb AuthorDate: 2025-02-24 02:43:27 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-02-24 02:56:18 +0000 LinuxKPI: 802.11: factor out dynamic_rx_chains computation For the moment we set dynamic_rx_chains to the rx_nss value which should be correct given we count from 1 there too and we call lkpi_get_max_rx_chains() after we synced ht/vht initially already. Long-term some of these counting bits should be further factored out into their own functions and used both here and for the sync code. This will likely want to change as well once more dyamic synncronization takes place. Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/compat/linuxkpi/common/src/linux_80211.c | 30 +++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 66c1fa29615a..63f6f5a182b5 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -509,6 +509,33 @@ lkpi_sta_sync_from_ni(struct ieee80211_sta *sta, struct ieee80211_node *ni) #endif } +static uint8_t +lkpi_get_max_rx_chains(struct ieee80211_node *ni) +{ + uint8_t chains; +#if defined(LKPI_80211_HT) || defined(LKPI_80211_VHT) + struct lkpi_sta *lsta; + struct ieee80211_sta *sta; + + lsta = ni->ni_drv_data; + sta = LSTA_TO_STA(lsta); +#endif + + chains = 1; +#if defined(LKPI_80211_HT) + IMPROVE("We should factor counting MCS/NSS out for sync and here"); + if (sta->deflink.ht_cap.ht_supported) + chains = MAX(chains, sta->deflink.rx_nss); +#endif + +#if defined(LKPI_80211_VHT) + if (sta->deflink.vht_cap.vht_supported) + chains = MAX(chains, sta->deflink.rx_nss); +#endif + + return (chains); +} + static void lkpi_lsta_dump(struct lkpi_sta *lsta, struct ieee80211_node *ni, const char *_f, int _l) @@ -1726,8 +1753,8 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int chanctx_conf = &lchanctx->chanctx_conf; } - chanctx_conf->rx_chains_dynamic = 1; chanctx_conf->rx_chains_static = 1; + chanctx_conf->rx_chains_dynamic = 1; chanctx_conf->radar_enabled = (chan->flags & IEEE80211_CHAN_RADAR) ? true : false; chanctx_conf->def.chan = chan; @@ -1758,6 +1785,7 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int chanctx_conf->def.width = NL80211_CHAN_WIDTH_80; } #endif + chanctx_conf->rx_chains_dynamic = lkpi_get_max_rx_chains(ni); /* Responder ... */ #if 0 chanctx_conf->min_def.chan = chanctx_conf->def.chan;